Fuzzy string matching in python
Project description
TheFuzz
Fuzzy string matching like a boss. It uses Levenshtein Distance to calculate the differences between sequences in a simple-to-use package.
Requirements
Python 3.7 or higher
For testing
pycodestyle
hypothesis
pytest
Installation
Using PIP via PyPI
pip install thefuzz
Using PIP via Github
pip install git+git://github.com/seatgeek/thefuzz.git@0.20.0#egg=thefuzz
Adding to your requirements.txt file (run pip install -r requirements.txt afterwards)
git+ssh://git@github.com/seatgeek/thefuzz.git@0.20.0#egg=thefuzz
Manually via GIT
git clone git://github.com/seatgeek/thefuzz.git thefuzz
cd thefuzz
python setup.py install
Usage
>>> from thefuzz import fuzz
>>> from thefuzz import process
Simple Ratio
>>> fuzz.ratio("this is a test", "this is a test!")
97
Partial Ratio
>>> fuzz.partial_ratio("this is a test", "this is a test!")
100
Token Sort Ratio
>>> fuzz.ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
91
>>> fuzz.token_sort_ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
100
Token Set Ratio
>>> fuzz.token_sort_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear")
84
>>> fuzz.token_set_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear")
100
Partial Token Sort Ratio
>>> fuzz.token_sort_ratio("fuzzy was a bear", "wuzzy fuzzy was a bear")
84
>>> fuzz.partial_token_sort_ratio("fuzzy was a bear", "wuzzy fuzzy was a bear")
100
Process
>>> choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]
>>> process.extract("new york jets", choices, limit=2)
[('New York Jets', 100), ('New York Giants', 78)]
>>> process.extractOne("cowboys", choices)
("Dallas Cowboys", 90)
You can also pass additional parameters to extractOne method to make it use a specific scorer. A typical use case is to match file paths:
>>> process.extractOne("System of a down - Hypnotize - Heroin", songs)
('/music/library/good/System of a Down/2005 - Hypnotize/01 - Attack.mp3', 86)
>>> process.extractOne("System of a down - Hypnotize - Heroin", songs, scorer=fuzz.token_sort_ratio)
("/music/library/good/System of a Down/2005 - Hypnotize/10 - She's Like Heroin.mp3", 61)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
thefuzz-0.20.0.tar.gz
(25.5 kB
view details)
Built Distribution
thefuzz-0.20.0-py3-none-any.whl
(15.8 kB
view details)
File details
Details for the file thefuzz-0.20.0.tar.gz
.
File metadata
- Download URL: thefuzz-0.20.0.tar.gz
- Upload date:
- Size: 25.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a25e49786b1c4603c7fc6e2d69e6bc660982a2919698b536ff8354e0631cc40d |
|
MD5 | 1e1b64f392dd05e30d1c0ecb342406c3 |
|
BLAKE2b-256 | 75e19859c094bb47674c2e9b3f51518f488d665941422352f9f7880b72bc86f4 |
File details
Details for the file thefuzz-0.20.0-py3-none-any.whl
.
File metadata
- Download URL: thefuzz-0.20.0-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd2b657a12bd8518917d2d71c53125368706233b822fac688fca956730154388 |
|
MD5 | 1818e08e409a701a0c713824344ccf9d |
|
BLAKE2b-256 | 197dca50835332895beb87e663f9a610a7e0a7335b69e31177aee87acc3db9bd |