2014-10-09 22 views
6

Tôi có một danh sách các từLàm thế nào để tìm ra từ tương tự nhất trong một danh sách trong python

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

và tôi muốn so sánh tất cả các mục trong danh sách với một chuỗi str1 và đầu ra nên là từ tương tự nhất. Ví dụ: Nếu str1 sẽ là anlmal thì animal là từ tương tự nhất. Làm thế nào tôi có thể làm điều này trong python? Thông thường những từ tôi có trong danh sách của tôi là tốt phân biệt với nhau.

Trả lời

10

Sử dụng difflib:

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

Như bạn có thể nhìn thấy từ perusing the source thì "gần" các trận đấu đều được sắp xếp từ tốt nhất để tồi tệ nhất.

>>> import difflib 
>>> difflib.get_close_matches('anlmal', ['car', 'animal', 'house', 'animation']) 
['animal'] 
Các vấn đề liên quan