我正在寻找一个python模块,帮助我从英语词典中获取单词的定义。
当然有enchant
,它可以帮助我检查这个单词是否存在于英语中,但它没有提供它们的定义(至少我在文档中没有看到类似的内容)< / p>
还有WordNet,可以通过NLTK访问。它有定义甚至是样本句子,但WordNet不包含所有英文单词。常见的词语如“如何”,“我”,“你”,“应该”,“可能”......不是WordNet的一部分。
是否有任何python模块可以访问包含单词定义的完整英语词典?
答案 0 :(得分:16)
Wordnik似乎有一个非常好的API,也有一个nice-looking Python module。它有定义,例句等,所以你应该被覆盖。它也有像“如何”,“应该”和“可能”这样的常用词。
答案 1 :(得分:15)
您可以依赖其他离线/在线资源,例如xml,json,api等,而不是模块。
https://github.com/adambom/dictionary [json file]
http://dictionary-api.cambridge.org [REST api]
http://glosbe.com/a-api [REST api]
http://www.ibiblio.org/webster/ [XML,开源]
答案 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,直到我发布了这个答案。既然这个答案已经得到了支持,我会留在这里。