NLTK WordNet: busque sinónimos de NLTK WordNet en Python

¿Qué es WordNet?

Wordnet es un lector de corpus NLTK, una base de datos léxica para inglés. Puede utilizarse para buscar el significado de palabras, sinónimos o antónimos. Se puede definir como un diccionario de inglés orientado semánticamente. Se importa con el siguiente comando:

from nltk.corpus import wordnet as guru

Encuentre sinónimos de NLTK WordNet en Python

Las estadísticas revelan que hay 155287 palabras y 117659 sinónimos conjuntos incluidos con English WordNet.

Se pueden encontrar diferentes métodos disponibles con WordNet escribiendo 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']

Entendamos algunas de las funciones disponibles con Wordnet:

Sinset: 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: Son 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 o hiperónimos y hipónimo es un tipo de concepto léxico.

Escribamos un programa usando pitón para encontrar sinónimos y antónimos 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:

{'dinámico', 'luchando', 'listo para el combate', 'voz_activa', 'agente_activo', 'participando', 'vivo', 'activo'} - Sinónimo

{'estativo', 'pasivo', 'tranquilo', 'voz_pasiva', 'extinto', 'inactivo', 'inactivo'} - Antónimo

Código de programa Wordnet Salida

Explicación del código

  1. Wordnet es un corpus, por lo que se importa desde ntlk.corpus
  2. La lista de sinónimos y antónimos se considera vacía y se utilizará para agregar
  3. Los sinónimos de la palabra activo se buscan en el módulo synsets y se añaden a la lista de sinónimos. Se repite el mismo proceso para el segundo.
  4. La salida se imprime

Conclusión

WordNet es una base de datos léxica que ha sido utilizada por una importante motor de búsqueda. Desde WordNet, se puede calcular información sobre una palabra o frase determinada, como por ejemplo

  • sinónimo (palabras que tienen el mismo significado)
  • hiperónimos (el término genérico utilizado para designar una clase de detalles (es decir, la comida es un desayuno), hipónimos (el arroz es una comida)
  • holoónimos (las proteínas y los carbohidratos son parte de la comida)
  • merónimos (la comida es parte de la ingesta diaria de alimentos)

WordNet también proporciona información sobre términos de coordenadas, derivados, sentidos y más. Se utiliza para encontrar similitudes entre dos palabras cualesquiera. También contiene información sobre los resultados de la palabra relacionada. En pocas palabras, se puede tratar como un diccionario o un tesauro. Profundizando en Wordnet, se divide en cuatro subredes en total, como

  1. Sustantivo
  2. Verb
  3. Adjetivo
  4. Adverbio

Puede utilizarse en el área de la inteligencia artificial para el análisis de textos. Con la ayuda de Wordnet, puede crear su corpus para revisión ortográfica, traducción de idiomas, detección de spam y mucho más.

De la misma manera, puedes usar este corpus y moldearlo para que funcione con alguna funcionalidad dinámica. Esto es como un corpus listo para crear para usted. Puedes usarlo a tu manera.

Boletín diario de Guru99

Empieza el día con las últimas y más importantes noticias sobre IA, entregadas ahora mismo.