A Fuzzy Matching Approach for Clustering Strings
Project description
Fuzz Up [W.I.P.]
fuzzup
offers a simple approach for clustering string entitities based on
Levenshtein Distance using
Fuzzy Matching
in conjunction with a simple rule-based clustering method.
fuzzup
also provides functions for computing the prominence of the resulting
entity clusters and to match them with entity whitelists.
An important use-case for fuzzup
is organizing, structuring and analyzing output from Named-Entity Recognition(=NER).
fuzzup
also provides (2) functions for computing the prominence of the resulting
entity clusters resulting from (1) as well as whitelist matching (3).
fuzzup
has been designed to fit the output from NER predictions from the Hugging Face transformers NER pipeline specifically.
Installation guide
fuzzup
can be installed from the Python Package Index (PyPI) by:
pip install fuzzup
If you want the development version then install directly from Github.
Workflow
fuzzup
offers functionality for:
- Computing all of the mutual string distances (Levensteihn Distances/fuzzy ratios) between the string entities
- Forming clusters of string entities based on the distances from (1)
- Computing prominence of the clusters from (2) based on the number of entity occurrences, their positions in the text etc.
- Matching entities (clusters) with entity whitelists
Together these steps constitute an end-to-end approach for organizing and structuring the output from NER. Here is an example of how to use fuzzup
for forming entity clusters based on edit distances.
To do
- document whitelist matching in showcase
- update readme with workflow
- tests for whitelist
- cutoff_threshold -> score_cutoff -> cdist
try and tune on junges entititesrun against tores listdocument whitelistupdate docs
Background
fuzzup
is developed as a part of Ekstra Bladet’s activities on Platform Intelligence in News (PIN). PIN is an industrial research project that is carried out in collaboration between the Technical University of Denmark, University of Copenhagen and Copenhagen Business School with funding from Innovation Fund Denmark. The project runs from 2020-2023 and develops recommender systems and natural language processing systems geared for news publishing, some of which are open sourced like fuzzup
.
Read more
The detailed documentation and motivation for fuzzup
including code references and
extended workflow examples can be accessed here.
Contact
We hope, that you will find fuzzup
useful.
Please direct any questions and feedbacks to us!
If you want to contribute (which we encourage you to), open a PR.
If you encounter a bug or want to suggest an enhancement, please open an issue.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fuzzup-0.4.4.tar.gz
.
File metadata
- Download URL: fuzzup-0.4.4.tar.gz
- Upload date:
- Size: 410.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68fbd87860e9ed202983218fc9c18ee2750ac05c128eddd9a789cd7fb3963fca |
|
MD5 | dcce1d054b095e46c3deeca78245217f |
|
BLAKE2b-256 | ad9fd036dab0717631a5f8d0e767544d2903f3918a648f9d4a30bb3e4c4ae48f |
File details
Details for the file fuzzup-0.4.4-py3-none-any.whl
.
File metadata
- Download URL: fuzzup-0.4.4-py3-none-any.whl
- Upload date:
- Size: 417.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72c31f1d4763c972b115d23a82d40479f754585aff9e9a8fe6a75168eae2c748 |
|
MD5 | cad2a94633ddb78b4c91a17dbae1b851 |
|
BLAKE2b-256 | eac7a9c346aa318c1b9e190a1694c0994f94d602b51c000539dcaaca09f3e8a9 |