如何在python中查找英文字典?

时间:2018-03-21 15:51:01

标签: python parsing dictionary nlp nltk

我正在开发一个Python程序,以便在文本中找到单词的词源。我发现基本上有两种选择:解析提供词源或使用API​​的在线词典。我在这里找到了这个回复,但我似乎不明白如何将Oxford API与我的Python程序联系起来。

有谁能解释我如何在英语词典中查找单词?提前谢谢。

链接到问题here

  

请注意,虽然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)

2 个答案:

答案 0 :(得分:2)

您可以使用opensource ety包。 披露:我是项目的贡献者

它基于研究中使用的数据“Etymological Wordnet: Tracing the History of Words”,该数据已经从Wiktionary预先删除。

一些例子:

>>> import ety

>>> ety.origins("potato")
[Word(batata, language=Taino)]

>>> ety.origins('drink', recursive=True)
[Word(drync, language=Old English (ca. 450-1100)),
 Word(drinken, language=Middle English (1100-1500)),
 Word(drincan, language=Old English (ca. 450-1100))]

>>> print(ety.tree('aerodynamically'))
aerodynamically (English)
├── -ally (English)
└── aerodynamic (English)
    ├── aero- (English)
    │   └── ἀήρ (Ancient Greek (to 1453))
    └── dynamic (English)
        └── dynamique (French)
            └── δυναμικός (Ancient Greek (to 1453))
                └── δύναμις (Ancient Greek (to 1453))
                    └── δύναμαι (Ancient Greek (to 1453))

答案 1 :(得分:0)

使用PyDictionary可能是个不错的选择