Skip to main content

Fuzzy string matching in python

Project description

https://travis-ci.org/seatgeek/fuzzywuzzy.svg?branch=master

FuzzyWuzzy

Fuzzy string matching like a boss. It uses Levenshtein Distance to calculate the differences between sequences in a simple-to-use package.

Requirements

Installation

Using PIP via PyPI

pip install fuzzywuzzy

Using PIP via Github

pip install git+git://github.com/seatgeek/fuzzywuzzy.git@0.13.0#egg=fuzzywuzzy

Adding to your requirements.txt file (run pip install -r requirements.txt afterwards)

git+ssh://git@github.com/seatgeek/fuzzywuzzy.git@0.13.0#egg=fuzzywuzzy

Manually via GIT

git clone git://github.com/seatgeek/fuzzywuzzy.git fuzzywuzzy
cd fuzzywuzzy
python setup.py install

Usage

>>> from fuzzywuzzy import fuzz
>>> from fuzzywuzzy 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

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)

Known Ports

FuzzyWuzzy is being ported to other languages too! Here is one port we know about:

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

fuzzywuzzy-0.13.0.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

fuzzywuzzy-0.13.0-py2.py3-none-any.whl (27.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file fuzzywuzzy-0.13.0.tar.gz.

File metadata

  • Download URL: fuzzywuzzy-0.13.0.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for fuzzywuzzy-0.13.0.tar.gz
Algorithm Hash digest
SHA256 7f6c17f00af1f3032cadeeffe897639590ef89825b37d5076c3ec40fa0a305d9
MD5 bad6176afe6918c846a8ce1374a9a316
BLAKE2b-256 7fab313b824746b7e9d704ebfec2d52bc1f0d37974f23ead58dbc8173bb69c62

See more details on using hashes here.

File details

Details for the file fuzzywuzzy-0.13.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for fuzzywuzzy-0.13.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c7b2583f2d693659e8e87053f110a3b82ca22e7ea12cc09ab600850552f376eb
MD5 4fe758c938fe5e0b456123250ce70d08
BLAKE2b-256 413f7d4c38dda29bec632ce8bf454703f3975df54e4d21961a6ea27556164514

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page