取消此链接:How to check if a word is an English word with Python?
有没有办法看到(在python中)英语中的任何单词中是否包含一串字母?例如,fun(wat)将返回true,因为“water”是一个单词(并且我确定有多个其他单词包含wat)但fun(wayterlx)将是错误的,因为wayterlx不包含在任何英语单词中。 (而且它本身不是一个词)
编辑:第二个例子:d.check(“blackjack”)返回true但是d.check(“lackjac”)返回false,但是在我正在寻找的函数中它将返回true,因为它包含在一些英语中字。
答案 0 :(得分:1)
基于链接答案的solution。
我们可以使用Dict.suggest
方法
def is_part_of_existing_word(string, words_dictionary):
suggestions = words_dictionary.suggest(string)
return any(string in suggestion
for suggestion in suggestions)
然后简单地
>>> import enchant
>>> english_dictionary = enchant.Dict("en")
>>> is_part_of_existing_word('wat', words_dictionary=english_dictionary)
True
>>> is_part_of_existing_word('wate', words_dictionary=english_dictionary)
True
>>> is_part_of_existing_word('way', words_dictionary=english_dictionary)
True
>>> is_part_of_existing_word('wayt', words_dictionary=english_dictionary)
False
>>> is_part_of_existing_word('wayter', words_dictionary=english_dictionary)
False
>>> is_part_of_existing_word('wayterlx', words_dictionary=english_dictionary)
False
>>> is_part_of_existing_word('lackjack', words_dictionary=english_dictionary)
True
>>> is_part_of_existing_word('ucumber', words_dictionary=english_dictionary)
True