检查字符串值的子字符串是否包含python中的任何字典单词

时间:2020-03-18 20:33:34

标签: python python-3.x string substring

我想知道Python中是否有任何函数可以检查包含任何词典单词的字符串值的子字符串。

例如check_str = "!$#apple!ed"

check_str包含"apple",这是一个字典单词,我想检查一下是否可以通过任何方法进行检查。

1 个答案:

答案 0 :(得分:0)

这是自然语言的临界处理方法,但是一个幼稚的解决方案是从文本文件中加载有效单词列表,将字符串拆分为字母字符块,然后在字典中查找每个字符。

>>> 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 mb,因此您可能希望根据使用情况对其进行缓存。