我想为谷歌搜索的搜索查询计算某种相似性得分。
除其他外,这意味着单词的顺序不一定重要。例如:
" adidas shoes blue"和"蓝色鞋adidas"
应该被认为是完全相同的序列,在我认为的许多传统距离算法中并非如此。
上面的例子我可以用余弦相似性来解决,但如果我有:
" adiddas shoes blue"
我希望算法能够产生与原始算法非常相似的距离"" adidas shoes blue"
这种算法是否存在?
答案 0 :(得分:2)
使用Soft Cosine Similarity并将术语之间的相似性度量设置为Levenshtein distance。 Soft Cosine Similarity通过考虑术语对之间的编辑距离来概括传统的余弦相似性度量。换句话说,软余弦相似性度量补偿了向量空间的不同维度不是真正正交的事实。
请注意,您必须将Levenshtein距离标准化,使得类似术语的相似度为1(即,如果术语之间的距离为0,则它们的相似度必须为1)。