相关疑难解决方法(0)

Python中的模糊字符串比较,与使用哪个库相混淆

我想做模糊字符串比较,但与使用哪个库混淆.

选项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 string-matching difflib levenshtein-distance

119
推荐指数
2
解决办法
6万
查看次数

Python中的字符串相似性度量

我想找到两个字符串之间的字符串相似性.页面包含其中一些示例.Python有Levenshtein算法的实现.在这些约束下,是否有更好的算法(并且希望是python库).

  1. 我想在字符串之间进行模糊匹配.例如匹配('Hello,All you people','hello,all you peopl')应该返回True
  2. 假阴性是可以接受的,假阳性,除非极少数情况下不是.
  3. 这是在非实时设置中完成的,因此速度不是(非常)关注的.
  4. [编辑]我正在比较多字串.

除了Levenshtein距离(或Levenshtein比率)以外的其他东西对我的情况更好吗?

python string algorithm levenshtein-distance

43
推荐指数
5
解决办法
4万
查看次数

如何计算python-Levenshtein.ratio

根据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呢?

python levenshtein-distance

25
推荐指数
4
解决办法
1万
查看次数