python搜索技术:单词相似度

时间:2011-02-12 06:01:34

标签: python search search-engine similarity

我希望获得两个单词的相似百分比,例如

abcd versus zzabcdzz == 50% similarity

不需要非常准确。有没有办法做到这一点?我正在使用python,但随时可以推荐其他语言。

4 个答案:

答案 0 :(得分:6)

尝试使用python-Levenshtein来计算edit distance

  

Levenshtein Python C扩展模块包含用于快速计算

的函数      
      
  • Levenshtein(编辑)距离和编辑操作
  •   
  • 字符串相似度
  •   
  • 近似中值字符串,通常字符串平均值
  •   
  • 字符串序列和设置相似度
  •   

您可以通过计算两个字符串之间的编辑距离除以最长字符串的长度来粗略了解相似性。在您的示例中,编辑距离为4,最大可能编辑距离为8,因此相似度为50%。

答案 1 :(得分:3)

您可以使用python内置模块difflib

以下是该页面的示例

>>> s = SequenceMatcher(None, "abcd", "bcde")
>>> s.ratio()
0.75

答案 2 :(得分:1)

答案 3 :(得分:0)

that回复

复制

在Python中,有difflib

difflib提供SequenceMatcher类,可用于为您提供相似比率。示例功能:

def text_compare(text1, text2, isjunk=None):
    return difflib.SequenceMatcher(isjunk, text1, text2).ratio()