在nltk中是否有英语单词语料库?

13 浏览
0 Comments

在nltk中是否有英语单词语料库?

有没有办法在Python的nltk库中获取英语单词列表?

我试图找到它,但我找到的唯一的东西是nltk.corpus中的wordnet。但根据文档,它没有我需要的(它找到一个单词的同义词)。

我知道如何自己找到这些单词的列表(这个答案详细解释了如何做到),所以我想知道是否只使用nltk库能否实现这一点。

0
0 Comments

在nltk中是否有一个英语单词语料库?

是的,可以使用from nltk.corpus import words进行导入,并通过以下代码进行检查:

>>> "fine" in words.words()
True

参考资料:《Python自然语言处理》第2章第4.1节(单词列表语料库)。

谢谢,但是你能告诉我在文档中在哪里找到它吗(看起来我不知道它在哪里)?

已经添加了参考资料。

缺少一些常见的单词,特别是复数形式的单词。

由于words.words()需要相当长的时间并返回一个列表而不是一个集合,实际上在初始化时将其缓存起来会更快:vocab = set(words.words())。

是的,那么在对单词进行词形还原之后,需要再次测试它的存在性。

0
0 Comments

NLTK是一个用于自然语言处理的Python库。在NLTK中,有一个名为“nltk.corpus.words”的模块,用于提供英语单词的语料库。然而,需要注意的是,该语料库中的单词列表没有频率信息,因此不能准确地称为自然文本的语料库。

除了“nltk.corpus.words”之外,NLTK还提供了其他语料库,其中一些是英语语料库。例如,“nltk.corpus.brown”是一个包含英语文本的语料库。

如果想要从一个自然文本语料库中获取单词列表,可以使用以下方法:

from nltk.corpus import brown
wordlist = set(brown.words())
print len(wordlist)
wordlist_lowercased = set(i.lower() for i in brown.words())
print len(wordlist_lowercased)

需要注意的是,“brown.words()”包含大小写不敏感的单词,类似于自然文本。

大多数情况下,仅有单词列表是没有太多用处的,因此可以使用“FreqDist”来获取单词频率信息:

from nltk import FreqDist
from nltk.corpus import brown
frequency_list = FreqDist(i.lower() for i in brown.words())
frequency_list.most_common()[:10]

以上代码将返回频率最高的前10个单词及其出现次数。

如果想要了解更多关于如何访问和处理语料库的信息,可以参考NLTK官方网站上的相关文档:[http://www.nltk.org/book/ch01.html](http://www.nltk.org/book/ch01.html)

0