我有一些我正在处理的 hadoop 文档相似性项目,但我陷入了某些困境。情况看起来像这样(我有一个存储在 csv 文件中的文档术语索引表
"", t1,t2,t3,t4,....
doc1,f11,f12,f13,f14,....
doc2,f21,f22,f23,f24,....
doc3,f31,f32,f33,f34,....
.
.
.
其中 f12 表示 document1(doc1) 中 term2(t2) 的频率
另一方面,我有一个查询文件,其中包含需要搜索其最近或类似文档的查询
"", t1,t3,t122,t34,....
q1,f11,f12,f13,f14,....
q2,f21,f22,f23,f24,....
q3,f31,f32,f33,f34,....
.
.
. 但是这里的术语可能包含不同的术语,所以我需要找到这两个(术语索引和查询)的叉积,以便找到查询和现有文档之间的距离
问题包含两部分: 首先,考虑到文件将被拆分到不同的机器中,如何读取每个 csv 文件的标题以将它们存储在某个 termvector 中。
第二,如何对这两个文件进行叉积,以找到相似度(创建一个可以包含所有可能术语(维度)的新文档以找到相似度)
我正计划编写一些 K-最近邻算法来查找相似性我应该使用哪些工具或工具,Pig,Hive,Mahout。