快速Python音韵算法
项目描述
Fuzzy是一个快速实现常见音韵算法的Python库。通常这用于字符串相似度练习,但它们相当灵活。
它使用C扩展(通过Cython)来提高速度。
算法包括
双Metaphone 基于Maurice Aubrey的C代码,其来自他的Perl实现。
使用方法
函数的使用相当简单!
>>> 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的字符串距离/相似度度量。它包括其他功能,如
Levenshtein 编辑距离
Jaro 距离
Jaro-Winkler 距离
在测试中,它比那些算法的纯Python实现快了好几倍。
项目详情
关闭
Fuzzy-1.2.2.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 6b240e630235f183730b27fcb70fdd0d409bee2c3a4e7a964eeae093a28c4f38 |
|
| MD5 | 300a8fc0542000c96009d82481d0bd67 |
|
| BLAKE2b-256 | adb0210f790e81e3c9f86a740f5384c758ad6c7bc1958332cf64263a9d3cf336 |