• Stars
    star
    4,080
  • Rank 10,642 (Top 0.3 %)
  • Language
    Python
  • License
    MIT License
  • Created over 12 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🆔 A python library for accurate and scalable fuzzy matching, record deduplication and entity-resolution.

Dedupe Python Library

Tests Passingcodecov

dedupe is a python library that uses machine learning to perform fuzzy matching, deduplication and entity resolution quickly on structured data.

dedupe will help you:

  • remove duplicate entries from a spreadsheet of names and addresses
  • link a list with customer information to another with order history, even without unique customer IDs
  • take a database of campaign contributions and figure out which ones were made by the same person, even if the names were entered slightly differently for each record

dedupe takes in human training data and comes up with the best rules for your dataset to quickly and automatically find similar records, even with very large databases.

Important links

dedupe library consulting

If you or your organization would like professional assistance in working with the dedupe library, Dedupe.io LLC offers consulting services. Read more about pricing and available services here.

Tools built with dedupe

Dedupe.io

A cloud service powered by the dedupe library for de-duplicating and finding matches in your data. It provides a step-by-step wizard for uploading your data, setting up a model, training, clustering and reviewing the results.

Dedupe.io also supports record linkage across data sources and continuous matching and training through an API.

For more, see the Dedupe.io product site, tutorials on how to use it, and differences between it and the dedupe library.

Dedupe is well adopted by the Python community. Check out this blogpost, a YouTube video on how to use Dedupe with Python and a Youtube video on how to apply Dedupe at scale using Spark.

csvdedupe

Command line tool for de-duplicating and linking CSV files. Read about it on Source Knight-Mozilla OpenNews.

Installation

Using dedupe

If you only want to use dedupe, install it this way:

pip install dedupe

Familiarize yourself with dedupe's API, and get started on your project. Need inspiration? Have a look at some examples.

Developing dedupe

We recommend using virtualenv and virtualenvwrapper for working in a virtualized development environment. Read how to set up virtualenv.

Once you have virtualenvwrapper set up,

mkvirtualenv dedupe
git clone https://github.com/dedupeio/dedupe.git
cd dedupe
pip install -e . --config-settings editable_mode=compat
pip install -r requirements.txt

If these tests pass, then everything should have been installed correctly!

pytest

Afterwards, whenever you want to work on dedupe,

workon dedupe

Testing

Unit tests of core dedupe functions

pytest

Test using canonical dataset from Bilenko's research

Using Deduplication

python -m pip install -e ./benchmarks
python benchmarks/benchmarks/canonical.py

Using Record Linkage

python -m pip install -e ./benchmarks
python benchmarks/benchmarks/canonical_matching.py

Team

  • Forest Gregg, DataMade
  • Derek Eder, DataMade

Credits

Dedupe is based on Mikhail Yuryevich Bilenko's Ph.D. dissertation: Learnable Similarity Functions and their Application to Record Linkage and Clustering.

Errors / Bugs

If something is not behaving intuitively, it is a bug, and should be reported. Report it here

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Send us a pull request. Bonus points for topic branches.

Copyright

Copyright (c) 2022 Forest Gregg and Derek Eder. Released under the MIT License.

Third-party copyright in this distribution is noted where applicable.

Citing Dedupe

If you use Dedupe in an academic work, please give this citation:

Forest Gregg and Derek Eder. 2022. Dedupe. https://github.com/dedupeio/dedupe.

More Repositories

1

csvdedupe

🆔 Command line tool for deduplicating CSV files
Python
409
star
2

dedupe-examples

🆔 Examples for using the dedupe library
Python
403
star
3

address-matching

Python script for matching a list of messy addresses against a gazetteer using dedupe.
Python
60
star
4

affinegap

📐 A Cython implementation of the affine gap string distance
Cython
58
star
5

hcluster

Hierarchical Clustering Algorithms
Python
35
star
6

dedupe-geocoder

📍 Demonstration of how dedupe might be used as geocoder
Python
17
star
7

doublemetaphone

🔉 Python wrapper for a C++ Double Metaphone
C++
15
star
8

fuzzycategory

📐 Fuzzy Categorical Distances
Python
14
star
9

rlr

Regularized Logistic Regression
Python
11
star
10

dedupe-variable-address

Address Variable Type for dedupe
Python
9
star
11

dedupe-variable-person

Dedupe variable for person names. just people. no companies.
Python
9
star
12

dedupe-variable-name

name variable type for dedupe
Python
8
star
13

soft-tfidf

Mispelling tolerant tf-idf similarity metric
6
star
14

highered

CRF Edit Distance
Python
6
star
15

dedupeio-web-api-docs

Dedupe.io web API allows for matching and training against projects using a standard RESTful framework.
Python
6
star
16

dedupe-variable-employer

Python
5
star
17

dedupe-vowpal

Vowpal Wabbit Active Labeler for Dedupe
Python
4
star
18

dedupe-variable-datetime

DateTime variable for dedupe
Python
4
star
19

dedupe-variable-fuzzycategory

Dedupe Variable for Fuzzy Categories
Python
4
star
20

categorical-distance

📐 Compare categorical variables
Python
4
star
21

parseratorvariable

Base class for dedupe variables for parsed fields
Python
3
star
22

simplecosine

📐 simple cosine distance
Python
3
star
23

dedupe-variable-number

Try to cast strings to numbers, then compare
Python
3
star
24

datetime-distance

 📐 Compare dates and times
Python
3
star
25

dedupe-variable-ilcs

Dedupe variable for Illinois Compiled Statute (ILCS) codes
Python
2
star