|
Download README.md from Hugdrigo/linkresolve-entity-resolution-lab: direct link, hf CLI and curl.
- Browser
- Download file 5.01 kB
-
https://huggingface.co/spaces/Hugdrigo/linkresolve-entity-resolution-lab/resolve/main/README.md
- Command line
-
hf download hf://spaces/Hugdrigo/linkresolve-entity-resolution-lab/README.md
-
curl -L -o README.md https://huggingface.co/spaces/Hugdrigo/linkresolve-entity-resolution-lab/resolve/main/README.md
5.01 kB
| title: "LinkResolve | Entity Resolution Studio" | |
| emoji: "🔗" | |
| colorFrom: green | |
| colorTo: blue | |
| sdk: static | |
| app_file: index.html | |
| pinned: false | |
| license: mit | |
| short_description: "Offline entity matching and record linkage studio" | |
| tags: | |
| - data-quality | |
| - entity-resolution | |
| - record-linkage | |
| - data-cleaning | |
| - decision-support | |
| - javascript | |
| # LinkResolve | Entity Resolution Studio | |
| **Project 71 · Local-first record matching, human review and reproducible data audits** | |
| LinkResolve is an interactive, fully offline, explainable entity resolution tool that reconciles two lists of organizations, institutions or business partners. It compares fields, proposes one-to-one links, highlights ambiguous records, lets an analyst confirm or reject links, and exports the complete audit trail. | |
| ## Features | |
| 1. **Command Center:** linked entities, source coverage, confidence distribution, unmatched records. | |
| 2. **Matching Workbench:** matching scores, searchable pairs, field-by-field similarity explanation. | |
| 3. **Review Queue:** manual approval/rejection, including candidates not assigned automatically. | |
| 4. **Quality Diagnostics:** precision, recall and F1 for **synthetic demonstration reference labels only**. | |
| 5. **Rules & Sensitivity:** tunable threshold, strong-match threshold, feature weights and sensitivity analysis. | |
| 6. **Data & Audit:** source A/B CSV import, validation and eight export formats. | |
| ## Running the app | |
| This is a completely static project. Open `index.html` in a recent browser or publish these files at the root of a **Hugging Face Static Space**: | |
| - `README.md` | |
| - `index.html` | |
| - `LICENSE` | |
| No Python, Docker, Gradio, remote requests, API keys, external JavaScript, build steps or payments are required. | |
| ## Import your own CSV | |
| Prepare two files, one for each source. Each file must have a header and the required columns `id` and `name`. Optional columns are `city`, `email`, `code`, `sector`. | |
| ```csv | |
| id,name,city,email,code,sector | |
| A01,"Fundación Horizonte Andino",Jujuy,contacto@example.test,ORG-011,Nonprofit | |
| A02,Universidad del Norte,Salta,enlace@example.test,UNI-102,Education | |
| ``` | |
| - UTF-8, maximum **80 records per source**, 1 MB file-size limit. | |
| - IDs must be unique within each source. | |
| - Quoted commas, escaped double quotes and newlines are supported. | |
| - Invalid imports are rejected without replacing the current source. | |
| - Data remains in the browser. Refreshing the page clears imports and review edits unless exported. | |
| - Importing files removes synthetic reference labels, so no precision or recall is claimed for real data without independently verified ground truth. | |
| ## How scoring works | |
| The algorithm normalizes casing and accents, then computes: | |
| - Name: `0.55 × normalized Levenshtein similarity + 0.45 × token Jaccard`. | |
| - City: normalized Levenshtein similarity. | |
| - Email: normalized exact match. | |
| - Code: normalized exact match. | |
| The overall score is a weighted average of attributes available **in both records** (default 50% name, 25% email, 10% city and 15% code). The acceptance threshold is 70% and the strong-confidence threshold is 87% by default. **Scores are similarity measures, not calibrated probabilities.** | |
| The rectangular Hungarian algorithm maximizes the sum of score improvements above threshold with at most one match per record. Dummy columns allow entities to remain unlinked. Accepted manual links reserve their two records; rejected pairs are excluded from subsequent optimization. The Review Queue also shows plausible unassigned links for manual approval. | |
| ## Example datasets | |
| Three **entirely fictional** scenarios are bundled: Regional partner registry, Research directory and Supplier master data. Fictional emails use `.test`. The examples include exact matches, spelling variations, abbreviations, difficult cases and intentionally unmatched records. | |
| ## Exports | |
| Full JSON audit, assigned matches CSV, unmatched source A CSV, unmatched source B CSV, manual decisions CSV, source A CSV template, source B CSV template and methodology Markdown. CSV fields beginning with spreadsheet formula syntax are escaped when exported. | |
| ## Validation | |
| The accompanying technical ZIP contains independent Hungarian-algorithm comparisons, parser checks, browser interaction tests, desktop/mobile screenshots and a test protocol. | |
| ## Important limitations | |
| - Human review is needed before any production database merge. Similar names or shared identifiers do not prove two records refer to the same legal entity. | |
| - Missing fields change weight normalization and can overstate apparent similarity. | |
| - Source records are assumed to have one-to-one relationships. Subsidiaries, cross-border branches and changing legal names can violate this assumption. | |
| - The application does not verify company registration or access external authority databases. | |
| - Synthetic quality metrics should not be presented as results on real-world datasets. | |
| **License:** MIT. This is an illustrative and educational tool, not an identity verification service. | |