Saltar al contenido

Cómo obtener sinónimos de nltk WordNet Python

Comprende el código de forma correcta previamente a adaptarlo a tu trabajo si tquieres aportar algo puedes dejarlo en la sección de comentarios.

Solución:

Si desea los sinónimos en el synset (también conocido como los lemas que componen el conjunto), puede obtenerlos con lemma_names():

>>> for ss in wn.synsets('small'):
>>>     print(ss.name(), ss.lemma_names())

small.n.01 ['small']
small.n.02 ['small']
small.a.01 ['small', 'little']
minor.s.10 ['minor', 'modest', 'small', 'small-scale', 'pocket-size',  'pocket-sized']
little.s.03 ['little', 'small']
small.s.04 ['small']
humble.s.01 ['humble', 'low', 'lowly', 'modest', 'small']    
...

Puedes usar wordnet.synset y lemas para obtener todos los sinónimos:

ejemplo :

from itertools import chain
from nltk.corpus import wordnet

synonyms = wordnet.synsets(text)
lemmas = set(chain.from_iterable([word.lemma_names() for word in synonyms]))

Manifestación:

>>> synonyms = wordnet.synsets('change')
>>> set(chain.from_iterable([word.lemma_names() for word in synonyms]))
set([u'interchange', u'convert', u'variety', u'vary', u'exchange', u'modify', u'alteration', u'switch', u'commute', u'shift', u'modification', u'deepen', u'transfer', u'alter', u'change'])

Ya tienes los sinónimos. Eso es lo que un Synset es.

>>> wn.synsets('small')
[Synset('small.n.01'),
 Synset('small.n.02'),
 Synset('small.a.01'),
 Synset('minor.s.10'),
 Synset('little.s.03'),
 Synset('small.s.04'),
 Synset('humble.s.01'),
 Synset('little.s.07'),
 Synset('little.s.05'),
 Synset('small.s.08'),
 Synset('modest.s.02'),
 Synset('belittled.s.01'),
 Synset('small.r.01')]

Esa es la misma lista de entradas de nivel superior que le proporcionó la interfaz web.

Si también desea la lista “similar a”, no es lo mismo que los sinónimos. Para eso llamas similar_tos() en cada Synset.

Entonces, para mostrar la misma información que el sitio web, comience con algo como esto:

for ss in wn.synsets('small'):
    print(ss)
    for sim in ss.similar_tos():
        print('    '.format(sim))

Por supuesto, el sitio web también está imprimiendo la parte del discurso (sim.pos), lista de lemas (sim.lemma_names), definición (sim.definition), y ejemplos (sim.examples) para cada synset en ambos niveles. y los agrupa por partes del discurso, y se agrega en enlaces a otras cosas que puede seguir, y así sucesivamente. Pero eso debería ser suficiente para empezar.

Sección de Reseñas y Valoraciones

Recuerda que te brindamos la opción de añadir un criterio justo .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *