Ответ 1
Wordnik, похоже, имеет неплохой API и красивый модуль Python. У него есть определения, примеры предложений и т.д., Поэтому вы должны быть охвачены. У него также есть общие слова типа "как", "должен" и "может".
Я ищу модуль python, который помогает мне получить определение (слова) из английского словаря для слова.
Существует, конечно, enchant
, что помогает мне проверить, существует ли слово на английском языке, но оно не содержит их определений (по крайней мере, я не вижу ничего подобного в документах)
Существует также WordNet, доступный с NLTK. Он имеет определения и даже примеры предложений, но WordNet не содержит всех английских слов. Общие слова типа "как", "я", "вы", "должны", "могли"... не являются частью WordNet.
Есть ли какой-нибудь модуль python, который дает доступ к полному английскому словарю, включая определения слов?
Wordnik, похоже, имеет неплохой API и красивый модуль Python. У него есть определения, примеры предложений и т.д., Поэтому вы должны быть охвачены. У него также есть общие слова типа "как", "должен" и "может".
Вместо модуля вы можете использовать другие автономные/онлайн-источники, такие как xml, json, api и т.д.
https://github.com/adambom/dictionary [json file]
http://dictionary-api.cambridge.org/help [REST api]
http://glosbe.com/a-api [REST api]
http://www.ibiblio.org/webster/ [XML, с открытым исходным кодом]
Как насчет this. Вам нужно будет написать собственный синтаксический анализатор, но это должно быть довольно тривиально, учитывая, как форматируются данные.
Обратите внимание, что, хотя WordNet не имеет всех английских слов, что насчет Оксфордского английского словаря? (http://developer.oxforddictionaries.com/). В зависимости от объема вашего проекта это может быть API-интерфейс killer.
Вы пробовали посмотреть на Грэди Уорда Моби? [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)
python NLTK
имеет интерфейс WordNet
, который именно вы ищете.
http://www.nltk.org/howto/wordnet.html
Изменить: OP не указал свой запрос на общие слова, тем самым исключая WordNet, пока я не отправил этот ответ. Так как этот ответ имеет upvotes в любом случае, я оставлю его здесь.