java – 如何有效地计算数百万字符串之间的余弦相似度

前端之家收集整理的这篇文章主要介绍了java – 如何有效地计算数百万字符串之间的余弦相似度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要计算列表中字符串之间的余弦相似度.例如,我有一个超过1000万个字符串的列表,每个字符串必须确定它自己与列表中的每个其他字符串之间的相似性.什么是我可以用来有效和快速完成这项任务的最佳算法?分而治之算法是否适用?

编辑

我想确定哪些字符串与给定字符串最相似,并且能够获得与相似性相关的度量/分数.我认为我想做的事情与群集相符合,群集的数量最初并不为人所知.

解决方法

使用转置矩阵.这就是Mahout在Hadoop上做的快速完成这种任务(或者只是使用Mahout).

从本质上讲,计算余弦相似性的天真方式是不好的.因为你最终计算了很多0 *的东西.相反,你最好在列中工作,并在那里留下所有0.

猜你在找的Java相关文章