A package for matching UK addresses using a pretrained Splink model
Project description
Matching UK addresses using Splink
High performance address matching using a pre-trained Splink model.
Assuming you have two duckdb dataframes in this format:
| unique_id | address_concat | postcode |
|---|---|---|
| 1 | 123 Fake Street, Faketown | FA1 2KE |
| 2 | 456 Other Road, Otherville | NO1 3WY |
| ... | ... | ... |
Match them with:
import duckdb
from uk_address_matcher import clean_data_using_precomputed_rel_tok_freq, get_linker
p_ch = "./example_data/companies_house_addresess_postcode_overlap.parquet"
p_fhrs = "./example_data/fhrs_addresses_sample.parquet"
con = duckdb.connect(database=":memory:")
df_ch = con.read_parquet(p_ch).order("postcode")
df_fhrs = con.read_parquet(p_fhrs).order("postcode")
df_ch_clean = clean_data_using_precomputed_rel_tok_freq(df_ch, con=con)
df_fhrs_clean = clean_data_using_precomputed_rel_tok_freq(df_fhrs, con=con)
linker = get_linker(
df_addresses_to_match=df_fhrs_clean,
df_addresses_to_search_within=df_ch_clean,
con=con,
include_full_postcode_block=True,
additional_columns_to_retain=["original_address_concat"],
)
df_predict = linker.inference.predict(
threshold_match_weight=-50, experimental_optimisation=True
)
df_predict_ddb = df_predict.as_duckdbpyrelation()
Initial tests suggest you can match ~ 1,000 addresses per second against a list of 30 million addresses on a laptop.
Refer to the example, which has detailed comments, for how to match your data.
See an example of comparing two addresses to get a sense of what it does/how it scores
Run an interactive example in your browser:
Match 5,000 FHRS records to 21,952 companies house records in < 10 seconds.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uk_address_matcher-1.0.0.dev2.tar.gz.
File metadata
- Download URL: uk_address_matcher-1.0.0.dev2.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.0 CPython/3.11.11 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20b4a76a2d557c9191abcb497b693d4c80aba1f57aad5996ff7b12bfc6ec6d5b
|
|
| MD5 |
cef628ad5cba7cf925c372af69234655
|
|
| BLAKE2b-256 |
97c8c1e023975c0d8f6c6ad1c1fcde00dbbf0250f9969142967d04fd7b5294b9
|
File details
Details for the file uk_address_matcher-1.0.0.dev2-py3-none-any.whl.
File metadata
- Download URL: uk_address_matcher-1.0.0.dev2-py3-none-any.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.0 CPython/3.11.11 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed028fa19c36d36fa95016fb5aebc0814c89d3069a3e7ba30ab7612c63d6199e
|
|
| MD5 |
c65f52817ee994b370ea5c90c75069fd
|
|
| BLAKE2b-256 |
13c3b4edee7027643302395dae8b3a1e0c9d28baadd925ed89968d0d67a2728a
|