我想找到两个字符串之间的字符串相似度。 en.wikipedia 有其中一些示例。 code.google 有 Levenshtein distance 的 Python 实现。
在这些约束下,是否有更好的算法(希望是 Python 库):
- 我想在字符串之间进行模糊匹配。例如 matches(‘Hello, All you people’, ‘hello, all You peopl’) 应该返回 True
- 假阴性是可以接受的,假阳性,除非在极少数情况下是不可接受的。
- 这是在非实时设置中完成的,因此速度不是(太多)关注的问题。
- [编辑] 我正在比较多字串。
除了 Levenshtein 距离(或 Levenshtein 比率)之外的其他算法对我的情况来说会是更好的算法吗?
原文由 agiliq 发布,翻译遵循 CC BY-SA 4.0 许可协议
谢菲尔德大学提供了有关字符串相似性指标的大量资源。它有一个各种指标的列表(不仅仅是 Levenshtein)并且有它们的开源实现。看起来它们中的许多应该很容易适应 Python。
http://web.archive.org/web/20081224234350/http://www.dcs.shef.ac.uk/~sam/stringmetrics.html
这是列表的一部分: