I am using RapidFuzz for matching US Addresses from two separate datasets.

I was able to get the results that I was hoping for using the below code:

for address in EB_RATING_LIST:
    matches1.append(process.extractOne(address,CLAIMS_LIST, scorer = fuzz.ratio))

But, I don't have a full confidence on the results I received. For example:

10 Washington Street has a 86% Match Ratio with: 102 Washington Street

My Question is how can I proceed with Fuzzy matching at a more granular level? Should I include the Zip Code, State as well for the Matching?

EDIT 09/14/21: I am concatenating Address, with City and State and then trying to match. I will share the results as soon as I get them.

EDIT 09/15/21: I did concatenate the Address, which is now having State and City name, along with Address and then tried Fuzzy Matching on it.

EXAMPLE: ***5805thAveStes323&416NewYorkNY   
(3505thAveNewYorkNY, 72.34042553191489, 9315)***
[Address that match the Most, Percentage of Matching, Index of the Address(From the table used for matching)]

1 Answer 1


I may be late to answer this because I joined the community just today. To get into granular level, just tweek the scorer with different other ratios like token sort ratio or partial ratio or token set ratio, based on your use case. Just test two set of strings first with all these ratios and find which suits you. Hope this helps. To know more click here(view in incognito mode if it asks for subscription) --> https://medium.com/mlearning-ai/all-about-rapidfuzz-string-similarity-and-matching-cd26fdc963d8


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.