在nltk中是否有英语单词语料库?
在nltk中是否有一个英语单词语料库?
是的,可以使用from nltk.corpus import words
进行导入,并通过以下代码进行检查:
>>> "fine" in words.words() True
参考资料:《Python自然语言处理》第2章第4.1节(单词列表语料库)。
谢谢,但是你能告诉我在文档中在哪里找到它吗(看起来我不知道它在哪里)?
已经添加了参考资料。
缺少一些常见的单词,特别是复数形式的单词。
由于words.words()需要相当长的时间并返回一个列表而不是一个集合,实际上在初始化时将其缓存起来会更快:vocab = set(words.words())。
是的,那么在对单词进行词形还原之后,需要再次测试它的存在性。
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)