检测英语单词和nltk的单词语料库

时间:2019-02-07 13:41:56

标签: python nlp nltk

只是想看看一个单词是不是英语。这个:

english_words = set(nltk.corpus.words.words())
print("revised" in english_words)

结果为False。难道我做错了什么?这是可以预期的吗?有更好的方法吗?谢谢。

2 个答案:

答案 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