Metadata-Version: 2.1
Name: DedupliPy
Version: 0.6.2
Summary: End-to-end deduplication solution
Home-page: https://github.com/fritshermans/deduplipy
Author: Frits Hermans
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: scikit-learn
Requires-Dist: networkx
Requires-Dist: python-Levenshtein
Requires-Dist: fuzzywuzzy
Requires-Dist: modAL
Requires-Dist: openpyxl
Requires-Dist: pytest
Requires-Dist: fancyimpute
Provides-Extra: base
Requires-Dist: pandas ; extra == 'base'
Requires-Dist: numpy ; extra == 'base'
Requires-Dist: scipy ; extra == 'base'
Requires-Dist: scikit-learn ; extra == 'base'
Requires-Dist: networkx ; extra == 'base'
Requires-Dist: python-Levenshtein ; extra == 'base'
Requires-Dist: fuzzywuzzy ; extra == 'base'
Requires-Dist: modAL ; extra == 'base'
Requires-Dist: openpyxl ; extra == 'base'
Requires-Dist: pytest ; extra == 'base'
Requires-Dist: fancyimpute ; extra == 'base'
Provides-Extra: dev
Requires-Dist: pandas ; extra == 'dev'
Requires-Dist: numpy ; extra == 'dev'
Requires-Dist: scipy ; extra == 'dev'
Requires-Dist: scikit-learn ; extra == 'dev'
Requires-Dist: networkx ; extra == 'dev'
Requires-Dist: python-Levenshtein ; extra == 'dev'
Requires-Dist: fuzzywuzzy ; extra == 'dev'
Requires-Dist: modAL ; extra == 'dev'
Requires-Dist: openpyxl ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: fancyimpute ; extra == 'dev'
Requires-Dist: matplotlib ; extra == 'dev'
Requires-Dist: jupyterlab ; extra == 'dev'
Requires-Dist: sphinx (==3.5.4) ; extra == 'dev'
Requires-Dist: nbsphinx ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: sphinx (==3.5.4) ; extra == 'docs'
Requires-Dist: nbsphinx ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'

[![Version](https://img.shields.io/pypi/v/deduplipy)](https://pypi.org/project/deduplipy/)
![](https://img.shields.io/github/license/fritshermans/deduplipy)
[![Downloads](https://pepy.tech/badge/deduplipy)](https://pepy.tech/project/deduplipy)

# DedupliPy

<a href="https://deduplipy.readthedocs.io/en/latest/"><img src="https://deduplipy.readthedocs.io/en/latest/_images/logo.png" width="15%" height="15%" align="left" /></a>

Deduplication is the task to combine different representations of the same real world entity. This package implements
deduplication using active learning. Active learning allows for rapid training without having to provide a large,
manually labelled dataset.

DedupliPy is an end-to-end solution with advantages over existing solutions:

- active learning; no large manually labelled dataset required
- during active learning, the user gets notified when the model converged and training may be finished
- works out of the box, advanced users can choose settings as desired (custom blocking rules, custom metrics,
  interaction features)

Developed by [Frits Hermans](https://www.linkedin.com/in/frits-hermans-data-scientist/)

## Documentation

Documentation can be found [here](https://deduplipy.readthedocs.io/en/latest/)

## Installation

### Normal installation

Install directly from Pypi:

```
pip install deduplipy
```

### Install to contribute

Clone this Github repo and install in editable mode:

```
python -m pip install -e ".[dev]"
python setup.py develop
```

## Usage

Apply deduplication your Pandas dataframe `df` as follows:

```python
myDedupliPy = Deduplicator(col_names=['name', 'address'])
myDedupliPy.fit(df)
```

This will start the interactive learning session in which you provide input on whether a pair is a match (y) or not (n).
During active learning you will get the message that training may be finished once algorithm training has converged.
Predictions on (new) data are obtained as follows:

```python
result = myDedupliPy.predict(df)
```


