快速实现编辑距离(Levenshtein distance)
项目描述
快速实现编辑距离(Levenshtein 距离)。
该库仅使用 C++ 和 Cython实现Levenshtein 距离。
该库中使用的算法由 Heikki Hyyrö 提出,“解释和扩展 Myers 的位并行近似字符串匹配算法”,(2001 年)。
二元轮
感谢joerick/cibuildwheel,在 Linux、Mac OS 和 Windows 上有二进制轮子。
安装
您可以通过 pip 安装:
pip install editdistance
用法
这很简单:
import editdistance
editdistance.eval('banana', 'bahama')
# 2L
简单基准
使用 IPython,我尝试了几个库:
在 Python 2.7.5 上:
a = 'fsffvfdsbbdfvvdavavavavavava'
b = 'fvdaabavvvvvadvdvavavadfsfsdafvvav'
import pylev
timeit pylev.levenshtein(a, b)
# 100 loops, best of 3: 7.48 ms per loop
from pyxdameraulevenshtein import damerau_levenshtein_distance
timeit damerau_levenshtein_distance(a, b)
# 100000 loops, best of 3: 11.4 µs per loop
timeit editdistance.eval(a, b) # my library
# 100000 loops, best of 3: 3.5 µs per loop
import Levenshtein
timeit Levenshtein.distance(a, b)
# 100000 loops, best of 3: 3.21 µs per loop
与任何物体的距离
以上库仅支持字符串。但有时其他类型的对象,如字符串列表(单词)。我支持任何可迭代的,只需要它的可散列对象:
Levenshtein.distance(['spam', 'egg'], ['spam', 'ham'])
# ---------------------------------------------------------------------------
# TypeError Traceback (most recent call last)
# <ipython-input-22-3e0b30d145ac> in <module>()
# ----> 1 Levenshtein.distance(['spam', 'egg'], ['spam', 'ham'])
#
# TypeError: distance expected two Strings or two Unicodes
editdistance.eval(['spam', 'egg'], ['spam', 'ham'])
# 1L
因此,如果对象的哈希相同,则它是相同的。您可以为您的对象实例提供__hash__方法。
享受!
执照
它是在 MIT 许可下发布的。
版权所有 (c) 2013 Hiroyuki Tanaka
特此免费授予任何人获得本软件和相关文档文件(“软件”)的副本,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。
本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。软件。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
editdistance-0.6.0.tar.gz
(29.5 kB
查看哈希)
内置发行版
editdistance-0.6.0-cp39-cp39-win32.whl
(25.9 kB
查看哈希)
editdistance-0.6.0-cp38-cp38-win32.whl
(26.0 kB
查看哈希)
editdistance-0.6.0-cp37-cp37m-win32.whl
(25.7 kB
查看哈希)
editdistance-0.6.0-cp36-cp36m-win32.whl
(25.6 kB
查看哈希)
editdistance-0.6.0-cp35-cp35m-win32.whl
(25.6 kB
查看哈希)