可以访问英语词典的Python模块,包括单词的定义

时间:2014-01-28 01:07:22

标签: python dictionary module nlp nltk

我正在寻找一个python模块,帮助我从英语词典中获取单词的定义。

当然有enchant,它可以帮助我检查这个单词是否存在于英语中,但它没有提供它们的定义(至少我在文档中没有看到类似的内容)< / p>

还有WordNet,可以通过NLTK访问。它有定义甚至是样本句子,但WordNet不包含所有英文单词。常见的词语如“如何”,“我”,“你”,“应该”,“可能”......不是WordNet的一部分。

是否有任何python模块可以访问包含单词定义的完整英语词典?

5 个答案:

答案 0 :(得分:16)

Wordnik似乎有一个非常好的API,也有一个nice-looking Python module。它有定义,例句等,所以你应该被覆盖。它也有像“如何”,“应该”和“可能”这样的常用词。

答案 1 :(得分:15)

答案 2 :(得分:8)

this怎么样?您需要编写自己的解析器,但考虑到数据的格式化,这应该是相当简单的。

答案 3 :(得分:6)

请注意,虽然WordNet没有所有英文单词,但牛津英语词典呢? (http://developer.oxforddictionaries.com/)。根据项目的范围,它可能是杀手级的API。

你有没有试过看Grady Ward的Moby? [link](http://icon.shef.ac.uk/Moby/)。

您可以将其添加为NLTK中的词典(请参阅第2.1节中的“加载您自己的语料库”中的注释)。

from nltk.corpus import PlaintextCorpusReader
corpus_root = '/usr/share/dict'
wordlists = PlaintextCorpusReader(corpus_root, '.*')

或者:

from nltk.corpus import BracketParseCorpusReader
corpus_root = r"C:\corpora\penntreebank\parsed\mrg\wsj"
file_pattern = r".*/wsj_.*\.mrg"
ptb = BracketParseCorpusReader(corpus_root, file_pattern)

答案 4 :(得分:3)

python NLTK有一个WordNet接口,正是您正在寻找的接口。 http://www.nltk.org/howto/wordnet.html

编辑:OP没有指定他对常用词的请求,从而排除了WordNet,直到我发布了这个答案。既然这个答案已经得到了支持,我会留在这里。