Проверьте, что подстроки строкового значения включают любые слова словаря в python - PullRequest
0 голосов
/ 18 марта 2020

Мне интересно, что в Python есть какая-либо функция для проверки подстрок строкового значения, включая любые слова из словаря.

ex. check_str = "!$#apple!ed"

check_str включает "apple", которое является словарным словом, и я хочу проверить, есть ли способ проверить это.

1 Ответ

0 голосов
/ 18 марта 2020

Это пограничная обработка на естественном языке, но наивным решением является загрузка списка допустимых слов из текстового файла, разбиение строки на куски буквенных символов и поиск каждого из них в словаре.

>>> import re
>>> import requests
>>> s = "!$#apple!ed"
>>> url = "https://raw.githubusercontent.com/dwyl/english-words/master/words_dictionary.json"
>>> words = requests.get(url).json()
>>> alpha_chunks = re.findall(r"[a-z]+", s, re.I)
>>> [x for x in alpha_chunks if x.lower() in words]
['apple', 'ed']

Оказывается, "ed" - совершенно правильное словарное слово в дополнение к "apple", поэтому, если вы собираетесь отклонить это, используйте список слов, который соответствует вашим потребностям. Кроме того, запрашиваемый выше словарь составляет 6 МБ, поэтому вы, вероятно, захотите его кэшировать в зависимости от того, какой у вас вариант использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...