NLTK WordNet : recherchez des synonymes de NLTK WordNet dans Python
⚡ Résumé intelligent
WordNet est une base de données lexicale et un lecteur de corpus NLTK pour l'anglais qui regroupe les noms, les verbes, les adjectifs et les adverbes en synsets, permettant Python Les programmes recherchent des synonymes, des antonymes, des hyperonymes et des significations de mots pour le traitement automatique du langage naturel.
Qu’est-ce que Wordnet ?
WordNet WordNet est un lecteur de corpus NLTK, une base de données lexicale pour l'anglais. Il permet de trouver la signification des mots, leurs synonymes et leurs antonymes. On peut le définir comme un dictionnaire sémantique de l'anglais. WordNet s'importe avec la commande suivante :
from nltk.corpus import wordnet as guru
Comme WordNet est fourni sous forme de corpus prêt à l'emploi, vous pouvez le charger une seule fois et commencer immédiatement à interroger les relations entre les mots sans avoir à construire vous-même un dictionnaire.
Trouver des synonymes de NLTK WordNet dans Python
Les statistiques révèlent qu'il y a 155287 mots et 117659 synonymes Les ensembles inclus dans WordNet anglais sont disponibles. Différentes méthodes sont proposées par WordNet ; vous pouvez les trouver en cliquant sur le lien correspondant.ping dir(guru), qui répertorie chaque attribut de chargeur et méthode d'assistance exposés par le lecteur de corpus.
Synset : On parle également d'ensemble de synonymes ou de recueil de mots synonymes. Prenons 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 : Il s'agit de relations sémantiques 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, un synonyme est le contraire d'un antonyme, tandis que les hyperonymes et les hyponymes sont un type de concept lexical.
Écrivons un programme en utilisant Python Trouver le synonyme et l'antonyme du mot « actif » en utilisant 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 :
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym
Explication du code :
- WordNet étant un corpus, il est importé du package nltk.corpus.
- Deux listes de synonymes et d'antonymes sont considérées comme vides et serviront à l'ajout de données.
- Les synonymes du mot « actif » sont recherchés à l’aide de la méthode des synsets et ajoutés à la liste des synonymes. Le même processus est appliqué aux antonymes.
- Le résultat est imprimé comme Python configure les paramètres pour que les entrées en double soient automatiquement supprimées.
Au-delà des synonymes et des antonymes, WordNet propose également des hyperonymes (termes plus généraux), des hyponymes (termes plus spécifiques), des holonymes et des méronymes, permettant ainsi à une simple requête de situer un mot au sein d'une hiérarchie complète de relations. Ces relations font de WordNet un thésaurus pratique pour les correcteurs orthographiques, la traduction automatique, la détection de spams et d'autres tâches d'analyse textuelle en intelligence artificielle.

