Fuzzy is a python library implementing common phonetic algorithms quickly. Typically this is in string similarity exercises, but they’re pretty versatile.
It uses C Extensions (via Cython) for speed.
The algorithms are:
Double Metaphone Based on Maurice Aubrey’s C code from his perl implementation.
Usage
The functions are quite easy to use!
>>> import fuzzy
>>> soundex = fuzzy.Soundex(4)
>>> soundex('fuzzy')
'F200'
>>> dmeta = fuzzy.DMetaphone()
>>> dmeta('fuzzy')
['FS', None]
>>> fuzzy.nysiis('fuzzy')
'FASY'
Performance
Fuzzy’s Double Metaphone was ~10 times faster than the pure python implementation by Andrew Collins in some recent testing. Soundex and NYSIIS should be similarly faster. Using iPython’s 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
Distance Metrics
We recommend the Python-Levenshtein module for fast, C based string distance/similarity metrics. Among others functions it includes:
Levenshtein edit distance
Jaro distance
Jaro-Winkler distance
In testing it’s been several times faster than comparable pure python implementations of those algorithms.
Metadata
Release files for Fuzzy 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| Fuzzy-1.2.2.tar.gz | 14.8 kB | Without provenance | Details |
Release files / Fuzzy-1.2.2.tar.gz
| Download URL | Fuzzy-1.2.2.tar.gz |
|---|---|
| Size | 14.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b240e630235f183730b27fcb70fdd0d409bee2c3a4e7a964eeae093a28c4f38
|
|
BLAKE2b-256 checksum How to use checksums |
adb0210f790e81e3c9f86a740f5384c758ad6c7bc1958332cf64263a9d3cf336
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for Fuzzy 1.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.