The comparison bit is easy: catx(' ', street_number, street_name) = address_2.
What's hard, but not hugely, is to find the street-type identifier (street, road, boulevard, grove, lane, alley; usually the last word) and standardise it on both sides. My method is to abbreviate it in both places (street -> st, grove -> gv) and strip out all punctuation, including commas and full-stops. I'd also recommend setting them both to upper or lower case.
I had initial problems when I was working in England with a town called Street, but because the meaning of the words isn't important, the match worked perfectly.
... View more