跳转到主要内容

快速Python音韵算法

项目描述

https://img.shields.io/pypi/v/Fuzzy.svg https://img.shields.io/pypi/pyversions/Fuzzy.svg https://img.shields.io/travis/yougov/fuzzy/master.svg

Fuzzy是一个快速实现常见音韵算法的Python库。通常这用于字符串相似度练习,但它们相当灵活。

它使用C扩展(通过Cython)来提高速度。

算法包括

使用方法

函数的使用相当简单!

>>> import fuzzy
>>> soundex = fuzzy.Soundex(4)
>>> soundex('fuzzy')
'F200'
>>> dmeta = fuzzy.DMetaphone()
>>> dmeta('fuzzy')
['FS', None]
>>> fuzzy.nysiis('fuzzy')
'FASY'

性能

Fuzzy的双Metaphone在某些最近的测试中比Andrew Collins的纯Python实现快了大约10倍。Soundex和NYSIIS应该有类似的性能。使用iPython的timeit

In [3]: timeit soundex('fuzzy')
1000000 loops, best of 3: 326 ns per loop

In [4]: timeit dmeta('fuzzy')
100000 loops, best of 3: 2.18 us per loop

In [5]: timeit fuzzy.nysiis('fuzzy')
100000 loops, best of 3: 13.7 us per loop

距离度量

我们推荐使用Python-Levenshtein模块来快速、基于C的字符串距离/相似度度量。它包括其他功能,如

在测试中,它比那些算法的纯Python实现快了好几倍。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

Fuzzy-1.2.2.tar.gz (14.8 kB 查看哈希值)

上传时间 源代码

由以下组织支持