GraphCanon updated 3d · GitHub synced 3d · 26 views this month
Decision brief
PolyFuzz leverages advanced methods like BERT embeddings, edit distance, Levenshtein distance, and TF-IDF for sophisticated fuzzy string matching in Python datasets.
Good fit when
- Use PolyFuzz when your project requires deep semantic similarity detection with BERT embeddings alongside traditional string metrics.
- Consider it for projects where the robust evaluation of match quality is essential through integrated scoring methods.
Avoid when
- Avoid using PolyFuzz if you aim to match very short strings since Levenshtein distance and edit distance may dominate over BERT's nuances.
- Steer clear if runtime speed is a priority, as embedding computations can be resource-intensive compared to purely algorithmic methods.
Observed Jul 17, 2026 · Source: enrich:decision_facts
Verify the decision
Maintenance and security
Full trust report- Maintenance
- Dormant (408d since push)
- As of 3d
- Provenance
- Not a fork · Personal account
- As of 3d
- Security (OSV)
- No lockfile
- As of 1mo
Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.
Install
pip install PolyFuzz PyPISimilar tools
Same-category neighbours. No typed graph edges are catalogued for this tool yet.
Evidence and technical details
Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.
Overview
PolyFuzz is a Python library for fuzzy string matching which leverages methods such as BERT embeddings, edit distance, Levenshtein distance, and TF-IDF to match strings within datasets.
Capability facts
- Languages
- python
Source: github.language · Aug 22, 2026
Categories
Compatibility
Sourced claims from the README excerpt - not unsourced marketing copy.
Source: README excerpt (regex_v1, Aug 22, 2026)
```python pip install polyfuzz[sbert]Source link
Tags
README
Installation
You can install PolyFuzz via pip:
pip install polyfuzz
You may want to install more depending on the transformers and language backends that you will be using. The possible installations are:
pip install polyfuzz[sbert]
pip install polyfuzz[flair]
pip install polyfuzz[gensim]
pip install polyfuzz[spacy]
pip install polyfuzz[use]
If you want to speed up the cosine similarity comparison and decrease memory usage when using embedding models,
you can use sparse_dot_topn which is installed via:
pip install polyfuzz[fast]
Installation Issues
You might run into installation issues with sparse_dot_topn. If so, one solution that has worked for many
is by installing it via conda first before installing PolyFuzz:
conda install -c conda-forge sparse_dot_topn
If that does not work, I would advise you to look through their
issues](https://github.com/ing-bank/sparse_dot_topn/issues) page or continue to use PolyFuzz without sparse_dot_topn.
Getting Started
For an in-depth overview of the possibilities of PolyFuzz
you can check the full documentation here or you can follow along
with the notebook here.
Quick Start
The main goal of PolyFuzz is to allow the user to perform different methods for matching strings.
We start by defining two lists, one to map from and one to map to. We are going to be using TF-IDF to create
n-grams on a character level in order to compare similarity between strings. Then, we calculate the similarity
between strings by calculating the cosine similarity between vector representations.
We only have to instantiate PolyFuzz with TF-IDF and match the lists:
from polyfuzz import PolyFuzz
from_list = ["apple", "apples", "appl", "recal", "house", "similarity"]
to_list = ["apple", "apples", "mouse"]
model = PolyFuzz("TF-IDF")
model.match(from_list, to_list)
The resulting matches can be accessed through model.get_matches():
>>> model.get_matches()
From To Similarity
0 apple apple 1.000000
1 apples apples 1.000000
2 appl apple 0.783751
3 recal None 0.000000
4 house mouse 0.587927
5 similarity None 0.000000
NOTE 1: If you want to compare distances within a single list, you can simply pass that list as such: model.match(from_list)
NOTE 2: When instantiating PolyFuzz we also could have used "EditDistance" or "Embeddings" to quickly
access Levenshtein and FastText (English) respectively.
For agents
This page has a .md twin and JSON over the API.