如何用n找出英语中是否存在一个词

2024-05-29 10:54:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找这个问题的适当解决办法。这个问题以前问过很多次,我没有找到一个合适的答案。 我需要使用NLTK中的一个语料库来检测一个单词是否是英语单词

我试过:

wordnet.synsets(word)

这个词不代表许多常用词。 使用英文单词列表并在文件中执行查找不是一个选项。 使用附魔也不是一个选择。 如果有其他库也可以这样做,请提供api的用法。 如果没有,请提供一个nltk语料库,里面有所有的英语单词。


Tags: 文件答案列表选项代表单词wordnetword
2条回答

我尝试了上面的方法,但是对于很多应该存在的单词,我尝试了wordnet。我认为这有更全面的疫苗

from nltk.corpus import wordnet if wordnet.synsets(word): #Do something else: #Do some otherthing

NLTK includes some corpora that are nothing more than wordlists. The Words Corpus is the /usr/share/dict/words file from Unix, used by some spell checkers. We can use it to find unusual or mis-spelt words in a text corpus, as shown in :

def unusual_words(text):
    text_vocab = set(w.lower() for w in text.split() if w.isalpha())
    english_vocab = set(w.lower() for w in nltk.corpus.words.words())
    unusual = text_vocab - english_vocab
    return sorted(unusual)

在这种情况下,您可以使用english_vocab检查单词的成员关系。

>>> import nltk
>>> english_vocab = set(w.lower() for w in nltk.corpus.words.words())
>>> 'a' in english_vocab
True
>>> 'this' in english_vocab
True
>>> 'nothing' in english_vocab
True
>>> 'nothingg' in english_vocab
False
>>> 'corpus' in english_vocab
True
>>> 'Terminology'.lower() in english_vocab
True
>>> 'sorted' in english_vocab
True

相关问题 更多 >

    热门问题