Code Monkey home page Code Monkey logo

valires / er-evaluation Goto Github PK

View Code? Open in Web Editor NEW
22.0 2.0 3.0 63.87 MB

An End-to-End Evaluation Framework for Entity Resolution Systems

Home Page: https://er-evaluation.readthedocs.io/en/latest

License: GNU Affero General Public License v3.0

Python 59.88% Makefile 0.32% Jupyter Notebook 38.89% TeX 0.90%
data-science deduplication disambiguation duplicate-detection entity-resolution evaluation fuzzy-matching matching ml-evaluation ml-testing

er-evaluation's Introduction

Github Action workflow status and link.

PyPI release badge and link.

Documentation status badge and link.

Journal of Open Source Software publication badge and link.

๐Ÿ” ER-Evaluation: An End-to-End Evaluation Framework for Entity Resolution Systems

ER-Evaluation is a Python package for the evaluation of entity resolution (ER) systems.

It provides an entity-centric approach to evaluation. Given a sample of resolved entities, it provides:

  • summary statistics, such as average cluster size, matching rate, homonymy rate, and name variation rate.
  • comparison statistics between entity resolutions, such as proportion of links from one which is also in the other, and vice-versa.
  • performance estimates with uncertainty quantification, such as precision, recall, and F1 score estimates, as well as B-cubed and cluster metric estimates.
  • error analysis, such as cluster-level error metrics and analysis tools to find root cause of errors.
  • convenience visualization tools.

For more information on how to resolve a sample of entities for evaluation and model training, please refer to our data labeling guide.

Installation

Install the released version from PyPI using:

pip install er-evaluation

Or install the development version using: .. code:: bash

pip install git+https://github.com/Valires/er-evaluation.git

Documentation

Please refer to the documentation website er-evaluation.readthedocs.io.

Usage Examples

Please refer to the User Guide or our Visualization Examples for a complete usage guide.

In summary, here's how you might use the package.

  1. Import your predicted disambiguations and reference benchmark dataset. The benchmark dataset should contain a sample of disambiguated entities.
import er_evaluation as ee

predictions, reference = ee.load_pv_disambiguations()
  1. Plot summary statistics and compare disambiguations.
ee.plot_summaries(predictions)

image

ee.plot_comparison(predictions)

image

  1. Define sampling weights and estimate performance metrics.
ee.plot_estimates(predictions, {"sample":reference, "weights":"cluster_size"})

image

  1. Perform error analysis using cluster-level explanatory features and cluster error metrics.
ee.make_dt_regressor_plot(
        y,
        weights,
        features_df,
        numerical_features,
        categorical_features,
        max_depth=3,
        type="sunburst"
)

image

Development Philosophy

ER-Evaluation is designed to be a unified source of evaluation tools for entity resolution systems, adhering to the Unix philosophy of simplicity, modularity, and composability. The package contains Python functions that take standard data structures such as pandas Series and DataFrames as input, making it easy to integrate into existing workflows. By importing the necessary functions and calling them on your data, you can easily use ER-Evaluation to evaluate your entity resolution system without worrying about custom data structures or complex architectures.

Citation

Please acknowledge the publications below if you use ER-Evaluation:

  • Binette, Olivier. (2022). ER-Evaluation: An End-to-End Evaluation Framework for Entity Resolution Systems. Available online at github.com/Valires/ER-Evaluation
  • Binette, Olivier, Sokhna A York, Emma Hickerson, Youngsoo Baek, Sarvo Madhavan, Christina Jones. (2022). Estimating the Performance of Entity Resolution Algorithms: Lessons Learned Through PatentsView.org. arXiv e-prints: arxiv:2210.01230
  • Upcoming: "An End-to-End Framework for the Evaluation of Entity Resolution Systems With Application to Inventor Name Disambiguation"

Public License

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.