web-dev-qa-db-fra.com

Python avec accès aux dictionnaires anglais incluant les définitions des mots

Je recherche un module python qui m'aide à obtenir les définitions d'un dictionnaire anglais pour un mot.

Il y a bien sûr enchant, qui m'aide à vérifier si le mot existe en anglais, mais il ne fournit pas de définitions de ceux-ci (au moins je ne vois rien de tel dans les documents)

Il existe également WordNet, qui est accessible avec NLTK. Il a des définitions et même des exemples de phrases, mais WordNet ne contient pas tous les mots anglais. Les mots courants comme "comment", "je", "vous", "devrait", "pourrait" ... ne font pas partie de WordNet.

Existe-t-il un module python qui donne accès à un dictionnaire anglais complet comprenant des définitions de mots?

21
Sadik

Wordnik semble avoir une assez belle API, et un Nice-looking Python module aussi. Il a des définitions, des exemples de phrases, etc. vous devriez donc être couvert. Il a aussi des mots communs comme "comment", "devrait" et "pourrait".

17
Fox Wilson

Au lieu d'un module, vous pouvez compter sur d'autres sources hors ligne/en ligne comme xml, json, api etc.

  1. https://github.com/adambom/dictionary [fichier json]

  2. http://dictionary-api.cambridge.org [API REST]

  3. http://glosbe.com/a-api [API REST]

  4. http://developer.oxforddictionaries.com/developer-resources/api-reference-guide/intro-using-the-oxford-dictionaries-api/ [REST api]

  5. http://www.ibiblio.org/webster/ [XML, open source]

15
DhruvPathak

Qu'en est-il de ceci . Vous devrez écrire votre propre analyseur, mais cela devrait être assez trivial compte tenu de la façon dont les données sont formatées.

8
wbest

Notez que même si WordNet n'a pas tous les mots anglais, qu'en est-il du dictionnaire anglais Oxford? ( http://developer.oxforddictionaries.com/ ). Selon la portée de votre projet, il peut s'agir d'une API destructrice.

Avez-vous essayé de regarder Moby de Grady Ward? [lien] ( http://icon.shef.ac.uk/Moby/ ).

Vous pouvez l'ajouter en tant que lexique en NLTK (voir les remarques sur "Charger votre propre corpus" dans la section 2.1).

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

Ou:

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)
6
Korbonits

Le python NLTK possède une interface WordNet qui est exactement ce que vous recherchez. http://www.nltk.org/howto/wordnet.html

Edit: OP n'a pas précisé sa demande de mots communs, excluant ainsi WordNet, jusqu'à ce que j'aie posté cette réponse. Puisque cette réponse a de toute façon des votes positifs, je vais la laisser ici.

3
jayelm