NLTK WordNet: busque sinónimos de NLTK WordNet en Python
⚡ Resumen inteligente
WordNet es una base de datos léxica y un lector de corpus NLTK para inglés que agrupa sustantivos, verbos, adjetivos y adverbios en synsets, lo que permite Python Los programas buscan sinónimos, antónimos, hiperónimos y significados de palabras para el procesamiento del lenguaje natural.

¿Qué es WordNet?
WordNet WordNet es un lector de corpus de NLTK, una base de datos léxica para el inglés. Se puede usar para encontrar el significado de las palabras, un sinónimo o un antónimo. Se puede definir como un diccionario de inglés orientado semánticamente. WordNet se importa con el siguiente comando:
from nltk.corpus import wordnet as guru
Dado que WordNet se distribuye como un corpus prefabricado, puede cargarlo una sola vez y comenzar a consultar las relaciones entre palabras de inmediato sin necesidad de crear ningún diccionario usted mismo.
Encuentre sinónimos de NLTK WordNet en Python
Las estadísticas revelan que hay 155287 palabras y 117659 sinónimos conjuntos incluidos con WordNet en inglés. Los diferentes métodos disponibles con WordNet se pueden encontrar por typing dir(guru), que enumera todos los atributos del cargador y los métodos auxiliares expuestos por el lector del corpus.
Conjunto de sinónimos: También se le llama conjunto de sinónimos o colección de palabras sinónimas. Veamos un ejemplo.
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
Salida:
[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')]
Relaciones léxicas: Se trata de relaciones semánticas recíprocas. Si existe una relación entre {x1, x2, ..., xn} y {y1, y2, ..., yn}, entonces también existe una relación entre {y1, y2, ..., yn} y {x1, x2, ..., xn}. Por ejemplo, sinónimo es lo opuesto a antónimo, mientras que hiperónimos e hipónimos son un tipo de concepto léxico.
Escribamos un programa usando Python para encontrar el sinónimo y el antónimo de la palabra “activo” usando 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 salida del código:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym
Explicación del código:
- WordNet es un corpus, por lo que se importa desde el paquete nltk.corpus.
- Se toman como vacías dos listas de sinónimos y antónimos, que se utilizarán para añadir texto.
- Los sinónimos de la palabra "activo" se buscan mediante el método synsets y se añaden a la lista de sinónimos. El mismo proceso se utiliza para recopilar antónimos.
- La salida se imprime como Python configuraciones para que las entradas duplicadas se eliminen automáticamente.
Además de sinónimos y antónimos, WordNet también ofrece hiperónimos (términos más generales), hipónimos (términos más específicos), holónimos y merónimos, de modo que una sola consulta puede ubicar una palabra dentro de toda una jerarquía de relaciones. Estas relaciones convierten a WordNet en un tesauro práctico para correctores ortográficos, traducción de idiomas, detección de spam y otras tareas de análisis de texto en inteligencia artificial.
