Our great sponsors
-
usaddress
:us: a python library for parsing unstructured United States address strings into address components
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SymSpell
SymSpell: 1 million times faster spelling correction & fuzzy search through Symmetric Delete spelling correction algorithm
For address parsing, I've had good luck with this package: https://github.com/datamade/usaddress
you can use double metaphone with postgres' text search facility directly: https://github.com/jkominek/dmetaphone
I'm glad to see these built-in to Postgres, as these are the basics of fuzzy string matching.
A quantum leap would be to integrate an implementation of the symmetric delete algorithm, such as https://github.com/wolfgarbe/SymSpell
Soundex and Phonex can yield too many false negatives outside of phonetically English names. Levenshtein/Jaro-Winkler aren't indexable solutions themselves, so they require N^2 comparisons. SymSpell conceptually combines these two into an indexed string-distance solution. It has the usual index issue of being designed for many reads, few writes.