我有一些正在处理的 hadoop 文档相似性项目,但我被困在了某个部分。情况看起来像这样(我有一个文档术语索引表存储在一个 csv 文件中
"", t1,t2,t3,t4,....
doc1,f11,f12,f13,f14,....
doc2,f21,f22,f23,f24,....
doc3,f31,f32,f33,f34,....
.
.
.
其中 f12 表示 term2(t2) 在 document1(doc1) 中出现的频率
另一方面,我有一个查询文件包含需要搜索其最近或相似文档的查询
"", t1,t3,t122,t34,....
q1,f11,f12,f13,f14,....
q2,f21,f22,f23,f24,....
q3,f31,f32,f33,f34,....
.
.
. 但是这里的术语可能包含不同的术语,所以我需要找到这两个(术语索引和查询)的叉积,以便找到查询与现有文档之间的距离
问题包含两部分: 首先,考虑到文件将被拆分到不同的机器中,如何读取每个这些 csv 文件的 header 以将它们存储在某个术语向量中。
第二,如何对这两个文件进行叉积,以找到相似性(创建一个可以包含所有可能的术语(维度)的新文档以找到相似性)
我打算编写一些 K 最近邻算法来查找相似性 我应该使用哪个或哪些工具,Pig、Hive、Mahout。
最佳答案
书上有单独的章节MapReduce Design Patterns在笛卡尔积上,给出了源代码。
关于hadoop - hadoop 中的交叉积和阅读标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326956/