【发布时间】:2011-06-25 23:38:54
【问题描述】:
我想得到两个词的相似度百分比,例如)
abcd versus zzabcdzz == 50% similarity
不需要非常准确。有没有办法做到这一点?我正在使用 python,但请随意推荐其他语言。
【问题讨论】:
-
Text difference algorithm 的可能重复项
标签: python search search-engine similarity
我想得到两个词的相似度百分比,例如)
abcd versus zzabcdzz == 50% similarity
不需要非常准确。有没有办法做到这一点?我正在使用 python,但请随意推荐其他语言。
【问题讨论】:
标签: python search search-engine similarity
尝试使用python-Levenshtein 计算edit distance。
Levenshtein Python C 扩展模块包含用于快速计算的函数
- Levenshtein(编辑)距离和编辑操作
- 字符串相似度
- 近似中值字符串,通常是字符串平均
- 字符串序列和集合相似度
您可以通过计算两个字符串之间的编辑距离除以最长字符串的长度来大致了解相似度。在您的示例中,编辑距离为 4,最大可能的编辑距离为 8,因此相似度为 50%。
【讨论】:
【讨论】:
来自 nltk 库的一些相似性指标:
http://www.opendocs.net/nltk/0.9.5/api/nltk.wordnet.similarity-module.html
【讨论】:
复制自that答案:
在 Python 中,有difflib。
difflib 提供SequenceMatcher 类,可用于为您提供相似度。示例函数:
def text_compare(text1, text2, isjunk=None):
return difflib.SequenceMatcher(isjunk, text1, text2).ratio()
【讨论】: