How do you get similar words in python?

I have a list of words

list = ['car', 'animal', 'house', 'animation']

and I want to compare every list item with a string str1 and the output should be the most similar word. Example: If str1 would be anlmal then animal is the most similar word. How can I do this in python? Usually the words I have in my list are good distinguishable from each other.

asked Oct 9, 2014 at 16:42

0

Use difflib:

difflib.get_close_matches[word, ['car', 'animal', 'house', 'animation']]

As you can see from perusing the source, the "close" matches are sorted from best to worst.

>>> import difflib
>>> difflib.get_close_matches['anlmal', ['car', 'animal', 'house', 'animation']]
['animal']

answered Oct 9, 2014 at 16:44

mgilsonmgilson

288k60 gold badges601 silver badges673 bronze badges

1

I checked difflib.get_close_matches[], but it didn't work for me correctly. I write here a robust solution, use as:

closest_match, closest_match_idx = find_closet_match[test_str, list2check]

def find_closet_match[test_str, list2check]:
scores = {}
for ii in list2check:
    cnt = 0
    if len[test_str]

Chủ Đề