Address NER
Free-text addresses are useless to structured systems. This custom NER model reads raw address strings and emits labeled components — house number, street, city, postcode, country — at 92% F1, deployed publicly on Hugging Face Spaces.
01 What problem does it solve?
Address data arrives as unstructured strings in wildly inconsistent formats. Regex breaks on real-world variance; the task needs a learned model that generalizes across formats.
02 How does it work?
raw address textspaCy NER modellabeled entitiesstructured record
- Custom entity schema: HOUSE_NUMBER, STREET_NAME, CITY, DISTRICT, POSTCODE, COUNTRY — designed for downstream database ingestion.
- Model training: a SpaCy pipeline trained on annotated address data rather than a zero-shot LLM call — cheaper, faster and deterministic at inference.
- Evaluation: measured to 92% F1 with precision/recall tracked per entity type.
- Deployment: published as an interactive demo on Hugging Face Spaces where anyone can test arbitrary addresses.
03 What did it achieve?
92%F1 score
6entity types
HF Spacespublic deployment
Demonstrates the classical-NLP judgment call: when a task is narrow and structured, a small trained model beats an LLM on cost, latency and determinism — and knowing that trade-off is part of AI engineering.
04 Stack
SpaCyNERPythonHugging Face SpacesMachine Learning