我想做模糊字符串比较,但与使用哪个库混淆.
选项1:
import Levenshtein
Levenshtein.ratio('hello world', 'hello')
Result: 0.625
Run Code Online (Sandbox Code Playgroud)
选项2:
import difflib
difflib.SequenceMatcher(None, 'hello world', 'hello').ratio()
Result: 0.625
Run Code Online (Sandbox Code Playgroud)
在这个例子中,两者给出了相同的答案.但我更喜欢使用__CODE__.专家的任何建议.谢谢.
__CODE__
我正在进行临床信息规范化(拼写检查),其中我检查每个给定的单词对900,000字的医学词典.我更关注时间复杂度/性能.
在这种情况下,你认为两者都表现相似吗?
我想找到两个字符串之间的字符串相似性.此页面包含其中一些示例.Python有Levenshtein算法的实现.在这些约束下,是否有更好的算法(并且希望是python库).
除了Levenshtein距离(或Levenshtein比率)以外的其他东西对我的情况更好吗?
根据python-Levenshtein.ratio消息来源:
https://github.com/miohtama/python-Levenshtein/blob/master/Levenshtein.c#L722
它被计算为(lensum - ldist) / lensum.这适用于
distance('ab', 'a') = 1
ratio('ab', 'a') = 0.666666
Run Code Online (Sandbox Code Playgroud)
但是,它似乎打破了
distance('ab', 'ac') = 1
ratio('ab', 'ac') = 0.5
Run Code Online (Sandbox Code Playgroud)
我觉得我必须遗漏一些非常简单的事情......但为什么不0.75呢?