我有火花工作来计算文本文档之间的相似度:

RowMatrix rowMatrix = new RowMatrix(vectorsRDD.rdd());
CoordinateMatrix  rowsimilarity=rowMatrix.columnSimilarities(0.5);
JavaRDD<MatrixEntry> entries = rowsimilarity.entries().toJavaRDD();

List<MatrixEntry> list = entries.collect();

for(MatrixEntry s : list) System.out.println(s);

MatrixEntry(i,j,value)表示列之间的相似性(假设文档的特征)。但是,如何显示行之间的相似性呢?
假设我有五个文档Doc1,..... Doc5,我们想证明所有这些文档之间的相似性。
我们如何得到的?
有什么帮助吗?

最佳答案

您必须转置矩阵:
您应该从RowMaxtrix-> IndexedRowMatrix-> BlockMatrix->转置-> BlockMatrix-> IndexedRowMatrix-> RowMatrix开始

IndexedRowMatrix rowMatrix = new IndexedRowMatrix(vectorsRDD.rdd());
CoordinateMatrix  rowsimilarity= rowMatrix.toBlockMatrix().transpose().toIndexedRowMatrix().toRowMatrix().columnSimilarities(0.5);
JavaRDD<MatrixEntry> entries = rowsimilarity.entries().toJavaRDD();
List<MatrixEntry> list = entries.collect();
for(MatrixEntry s : list) System.out.println(s);

09-25 20:33