返回信息流文本相似度计算的时候,文本Fi(i=1,2,3....)需要与文本Fj(j!=i && j=1,2,3...)做一个相似度对比,Spilt的过程中虽然已经把所有的文本进行划分了,即分成 F1~ Fn Fn+1~ F2n 等等。但是这些还是要和其他所有数据进行对比(F1要与F2,F3....对比,F2与F1,F3...对比),等于每个Map里面可能我都要存一份这样的数据,当分成多份的时候,每个Map都要存一份所有的数据,感觉空间开销太大了,有什么方法可以减小开销的吗?
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #13779同步于 2014/7/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
[问题]MapReduce 文本相似度计算
nashiyue
2014/7/8镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 loseboy163 的大作中提到: 】
: http://blog.csdn.net/stdcoutzyx/article/details/9288589
大赞师兄,前面的已经明了,再看下进一步优化的~[ema20]
【 在 loseboy163 的大作中提到: 】
: http://blog.csdn.net/stdcoutzyx/article/details/9288589
师兄,那怎么处理增量文本数据呢?有什么好的建议吗?
增量是实时的?如果是离线的话可以把倒排表存一下,新增文档来了后更新一下
【 在 nashiyue 的大作中提到: 】
: 师兄,那怎么处理增量文本数据呢?有什么好的建议吗?
【 在 loseboy163 的大作中提到: 】
: 增量是实时的?如果是离线的话可以把倒排表存一下,新增文档来了后更新一下
但是,新增文档跟之前所有的文档对比,很耗时间,也不值得。而且计算相似度肯定是为了聚类或者说分类,提取类别的关键字做一个对比的话,又比较麻烦。
不是和之前所有文档对比,是更新倒排表,倒排表是[S,(f1,v),(f2,v)]这种形式的,对新来的文档只需要判断一个词是否在倒排表的KEY里面,有就加在那个Key/Value对的尾部,没有就加入新Key/Value对,这个过程可以先用一个mapreduce来完成,时间消耗不会很大。
【 在 nashiyue 的大作中提到: 】
: 但是,新增文档跟之前所有的文档对比,很耗时间,也不值得。而且计算相似度肯定是为了聚类或者说分类,提取类别的关键字做一个对比的话,又比较麻烦。