NLTK WordNet : recherchez des synonymes de NLTK WordNet dans Python
Qu’est-ce que Wordnet ?
Wordnet est un lecteur de corpus NLTK, une base de données lexicale pour l'anglais. Il peut être utilisé pour trouver la signification de mots, de synonymes ou d’antonymes. On peut le définir comme un dictionnaire de l’anglais à orientation sémantique. Il est importé avec la commande suivante :
from nltk.corpus import wordnet as guru
Trouver des synonymes de NLTK WordNet dans Python
Les statistiques révèlent qu'il y a 155287 mots et 117659 synonymes ensembles inclus avec WordNet anglais.
Différentes méthodes disponibles avec WordNet peuvent être trouvées en tapant dir(guru)
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']
Comprenons certaines des fonctionnalités disponibles avec wordnet :
Synset: On l'appelle également ensemble de synonymes ou collection de mots synonymes. Vérifions un exemple
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
Sortie :
[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]
Relations lexicales: Ce sont des relations sémantiques qui sont réciproques. S'il existe une relation entre {x1,x2,…xn} et {y1,y2,…yn} alors il existe également une relation entre {y1,y2,…yn} et {x1,x2,…xn}. Par exemple, le synonyme est à l'opposé de l'antonyme ou les hyperonymes et les hyponymes sont un type de concept lexical.
Écrivons un programme en utilisant python pour trouver le synonyme et l'antonyme du mot « actif » à l'aide de Wordnet.
from nltk.corpus import wordnet synonyms = [] antonyms = [] for syn in wordnet.synsets("active"): for l in syn.lemmas(): synonyms.append(l.name()) if l.antonyms(): antonyms.append(l.antonyms()[0].name()) print(set(synonyms)) print(set(antonyms))
La sortie du code :
{'dynamique', 'combat', 'prêt au combat', 'active_voice', 'active_agent', 'participant', 'vivant', 'actif'} — Synonyme
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} — Antonyme
Explication du code
- Wordnet est un corpus, il est donc importé du ntlk.corpus
- La liste des synonymes et des antonymes est considérée comme vide et sera utilisée pour l'ajout
- Les synonymes du mot actif sont recherchés dans les synsets du module et sont ajoutés dans la liste des synonymes. Le même processus est répété pour le second.
- La sortie est imprimée
Conclusion
WordNet est une base de données lexicale utilisée par un grand moteur de recherche. À partir de WordNet, des informations sur un mot ou une expression donnée peuvent être calculées, telles que
- synonyme (mots ayant la même signification)
- hypernymes (terme générique utilisé pour désigner une classe de détails (par exemple, un repas est un petit-déjeuner), hyponymes (le riz est un repas)
- holonymes (les protéines, les glucides font partie du repas)
- méronymes (le repas fait partie de l'apport alimentaire quotidien)
WordNet fournit également des informations sur les termes de coordonnées, les dérivés, les sens et bien plus encore. Il est utilisé pour trouver les similitudes entre deux mots quelconques. Il contient également des informations sur les résultats du mot associé. En bref, on peut le traiter comme un dictionnaire ou un thésaurus. En approfondissant Wordnet, il est divisé en quatre sous-réseaux au total tels que
- Nom
- Verbe
- Adjectif
- Adverb
Il peut être utilisé dans le domaine de l’intelligence artificielle pour l’analyse de textes. Avec l'aide de Wordnet, vous pouvez créer votre corpus pour la vérification orthographique, la traduction linguistique, la détection du spam et bien d'autres encore.
De la même manière, vous pouvez utiliser ce corpus et le modeler pour faire fonctionner certaines fonctionnalités dynamiques. C'est comme un corpus prêt à l'emploi pour vous. Vous pouvez l'utiliser à votre manière.