найти список ключевых слов из текстовой строки и найти неточные совпадения - PullRequest
3 голосов
/ 11 ноября 2011

У меня есть список ключевых слов, которые я пытаюсь найти в текстовой строке.Точные совпадения работают хорошо, но кто-нибудь знает библиотеку, которая может помочь с приблизительными совпадениями, например, если список слов, который я предоставляю, ["hello", "bye"] Я бы хотел посмотреть, если текстовая строка имеет hlelo в определенной степени"близости" Есть какие-либо рекомендации?

1 Ответ

3 голосов
/ 11 ноября 2011

Вот что я бы сделал. Сначала определите строку для поиска и удаления посторонних символов:

>>> tosearch = "This is a text string where I typed hlelo but I meant to type hello."
>>> import string
>>> exclude = set(string.punctuation)
>>> tosearch = ''.join(ch for ch in tosearch if ch not in exclude)
>>> tosearch
'This is a text string where I typed hlelo but I meant to type hello'
>>> words = set(tosearch.split(" "))

Далее, вы можете использовать библиотеку difflib , чтобы найти близкие совпадения с данным словом:

>>> import difflib
>>> difflib.get_close_matches('hello', words)
['hello', 'hlelo']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...