我正在开发一个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)
答案 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
可能是个不错的选择