快速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 |