只是想看看一个单词是不是英语。这个:
english_words = set(nltk.corpus.words.words())
print("revised" in english_words)
结果为False。难道我做错了什么?这是可以预期的吗?有更好的方法吗?谢谢。
答案 0 :(得分:2)
似乎“修订”确实不在单词表中:
import nltk
english_words = set(nltk.corpus.words.words())
for w in english_words:
if w.startswith("revise"):
print(w)
打印以下列表:
reviser
revise
revisee
revisership
基于this source,第4.1节,这是单词列表的来源:
Words语料库是Unix中的/ usr / share / dict / words文件
因此,您必须根据用例来确定NLTK提供的单词列表是否足够,或者是否要切换到更完整(更大)的单词列表。
答案 1 :(得分:1)
尝试一下
from nltk.corpus import wordnet
if not wordnet.synsets(word_to_test):
#Not an English Word
else:
#English Word