试图计算搜索词之间的相似性

时间:2017-07-02 17:59:54

标签: algorithm text machine-learning

我想为谷歌搜索的搜索查询计算某种相似性得分。

除其他外,这意味着单词的顺序不一定重要。例如:

" adidas shoes blue"和"蓝色鞋adidas"

应该被认为是完全相同的序列,在我认为的许多传统距离算法中并非如此。

上面的例子我可以用余弦相似性来解决,但如果我有:

" adiddas shoes blue"

我希望算法能够产生与原始算法非常相似的距离"" adidas shoes blue"

这种算法是否存在?

1 个答案:

答案 0 :(得分:2)

使用Soft Cosine Similarity并将术语之间的相似性度量设置为Levenshtein distance。 Soft Cosine Similarity通过考虑术语对之间的编辑距离来概括传统的余弦相似性度量。换句话说,软余弦相似性度量补偿了向量空间的不同维度不是真正正交的事实。

请注意,您必须将Levenshtein距离标准化,使得类似术语的相似度为1(即,如果术语之间的距离为0,则它​​们的相似度必须为1)。

更多详细信息,请参阅the paper suggesting the soft similarity measure