I'm trying to build a classifier that can determine if two addresses are a match or non-match.
Let's assume I have a data set of address pairs that have a match or non-match label.
I'm new to ML so something may be going over my head but is this how I'm thinking of approaching the task:
Approach for building classifier
- Segment each address into it's subcomponents such as streetname, zipcode etc
- Construct a comparison vector with one dimension for each field. The fields holds the value from a string similarity method such as jaro-winkler.
- All my comparison vectors with an associated match label can now be fed into training a classifier
Predicting if a pair is a match
- Build a list of candidate address pairs by using a method such as blocking
- Construct a comparison vector the same way as the classifier was built above
- The comparison vector for each candidate is now fed into the classifier and this will resolve to either a match or a non-match
My approach was inspired by research paper Machine learning innovations in address matching: A practical comparison of word2vec and CRFs but a lot of the things are vaguely described for a beginner.
To sum up I'm looking for any input on whether this approach holds up or I'm misunderstanding something completely