【发布时间】:2011-09-26 01:21:03
【问题描述】:
我可以使用数百个 JSON 字符串。每一个都包含一个由 15-20 个单词组成的数组,这些单词按预先确定的权重排序。如果值得注意的话,这个权重是这些词在某个文本块中出现的次数。在这种结构的单词数组之间找到相似度的最佳方法是什么?
我想到的第一个想法是创建所有单词的数字哈希值,然后基本上比较这些值以确定相似度。我不是很成功,因为非常相似的字符串的结果哈希值不是很接近。在对字符串比较算法进行了一些研究之后,我来到了 Stackoverflow,希望得到更多的指导。提前致谢,如果您需要有关问题的更多详细信息,请告诉我。
编辑 1:澄清我想要做的事情:我想根据每个数组的单词来确定两个数组的相似程度。我还想考虑每个单词在每个数组中的权重。例如:
var array1 = [{"word":"hill","count":5},{"word":"head","count":5}];
var array2 = [{"word":"valley","count":7},{"word":"head","count":5}];
var array3 = [{"word":"head", "count": 6}, {"word": "valley", "count": 5}];
var array4 = [{"word": "valley", "count": 7}, {"word":"head", "count": 5}];
在该示例中,数组 4 和数组 2 比数组 2 和数组 3 更相似,因为即使它们具有相同的单词,它们在数组 4 和 2 中的权重也是相同的。我希望这使得它更容易理解。提前致谢。
【问题讨论】:
-
所以你有 N 个数组,每个数组有 Nm 个单词,你想确定到底是什么?
-
我编辑了我的原始帖子并进行了一些澄清。希望对您有所帮助并感谢您的关注。
-
什么是头和哈德或头和洞穴更相似?
-
嗨 Itay,我对两个词的相似之处不感兴趣,我对两个数组的相似之处感兴趣,因为它们共享一些词。
-
您是在寻找一种算法来确定两个字符串的整体相似性,还是在寻找如何遍历所有数组来进行比较?还是两者兼而有之?
标签: javascript arrays string comparison similarity