【问题标题】:python search technology: word similaritypython搜索技术:词相似度
【发布时间】:2011-06-25 23:38:54
【问题描述】:

我想得到两个词的相似度百分比,例如)

abcd versus zzabcdzz == 50% similarity

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

【问题讨论】:

标签: python search search-engine similarity


【解决方案1】:

尝试使用python-Levenshtein 计算edit distance

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

  • Levenshtein(编辑)距离和编辑操作
  • 字符串相似度
  • 近似中值字符串,通常是字符串平均
  • 字符串序列和集合相似度

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

【讨论】:

    【解决方案2】:

    你可以使用python内置模块difflib

    这是该页面的示例

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

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

        复制自that答案:

        在 Python 中,有difflib

        difflib 提供SequenceMatcher 类,可用于为您提供相似度。示例函数:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-12-18
          • 1970-01-01
          • 2017-09-09
          • 2013-04-26
          • 2013-12-19
          • 1970-01-01
          • 2017-06-07
          相关资源
          最近更新 更多