{"adoption": {"forks": 576, "observed_at": "2026-08-28T04:08:52.516919+00:00", "stars": 4507}, "canonical_url": "https://ross.abutalabs.com/products/dedupe", "card": {"archived": false, "artifact_type": "library", "description": ":id: A python library for accurate and scalable fuzzy matching, record deduplication and entity-resolution.", "domain": ["data-science", "machine-learning", "developer-tools"], "enriched": true, "function": ["machine-learning", "nlp", "data-science", "etl"], "health_score": 40, "homepage": "https://docs.dedupe.io", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["dedupeio/dedupe"], "name": "dedupeio/dedupe", "platform": ["python", "cross-platform"], "pushed_at": "2025-07-29T00:18:20+00:00", "repo": "dedupeio/dedupe", "stars": 4507, "tags": ["fuzzy-matching", "record-linkage", "entity-resolution", "deduplication", "active-learning", "clustering", "data-engineering"], "topics": ["dedupe", "record-linkage", "python", "python-library", "entity-resolution", "dedupe-library", "de-duplicating", "datamade", "clustering"], "urls": [], "use_cases": ["remove duplicate entries from a spreadsheet of names and addresses", "link a customer list to an order history list without shared unique IDs", "identify which campaign contribution records were made by the same person despite name variations", "deduplicate messy CSV files", "perform entity resolution across large structured datasets", "train a custom fuzzy matching model from human-labeled examples"], "what_it_is": "Dedupe is a Python library that uses machine learning to perform fuzzy matching, deduplication, and entity resolution on structured data. It learns from human-labeled training examples to automatically derive optimal matching weights and blocking rules, scaling to large databases.", "when_to_avoid": ["you need exact matching on clean keys or unique identifiers - simple database joins suffice", "you need real-time streaming deduplication rather than batch processing", "you want a turnkey GUI or hosted service rather than writing Python code (consider Dedupe.io instead)"], "when_to_choose": ["you need to deduplicate or link structured records with fuzzy, inconsistent text fields", "you have (or can collect) some human-labeled training pairs and want the model to learn matching rules automatically", "you want a well-established, MIT-licensed Python library that runs on a laptop without special infrastructure"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dedupe", "repo": "dedupeio/dedupe", "role": "main", "score": 48}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:52.516919+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:22.374576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c2ad4c18ce62d1fe46a2c5e5a59c0044ea2438ab1d03b5433c0bfdbc5f282ccd", "fetched_at": "2026-08-28T04:08:52.516919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dedupeio/dedupe"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.048938+00:00", "kind": "homepage", "missing": false, "url": "https://docs.dedupe.io"}, {"content_hash": "7ea6325840337b0b2837d64192d2ee51808b67e4c8ae07a2709d1f3a241a13c2", "fetched_at": "2026-08-29T09:06:31.060121+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/en/latest/API-documentation.html"}, {"content_hash": "47cc13cab31ad44870caa0f4d00767c5beb87078c4a4a003d993048b46b1d4d6", "fetched_at": "2026-08-29T09:06:31.065106+00:00", "kind": "site_page", "missing": false, "url": "https://docs.dedupe.io/"}, {"content_hash": "15ff7c3924919b59c88312fb5b6ba6a6838c54a93593dcdfa994e08ed99e21f3", "fetched_at": "2026-08-29T09:06:31.058257+00:00", "kind": "site_page", "missing": false, "url": "https://dedupe.io/pricing"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 34, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5248, "days_push": 401, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 48, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}