Encontrando los sinónimos para las palabras en wordnet.

Intento usar Wordnet como un tesarus, así que tengo una lista de palabras y necesito recostackr para cada palabra sus sinónimos. Probé esto

from nltk.corpus import wordnet as wn for i,j in enumerate(wn.synsets('dog')): print (j.lemma_names) 

Este código da la siguiente salida

         

Pero quiero recostackr en una lista solo los sinónimos, por lo que la salida será así

[‘frump’, ‘cad’, ‘frank’, ‘pawl’, ‘andiron’, ‘chase’]

Como indica su salida, lemma_names es un método en lugar de una propiedad. El código de golpe funciona como esperabas:

 from nltk.corpus import wordnet as wn result = [st.lemma_names()[0] for st in wn.synsets('dog')] print(result) 

La salida es:

 [u'dog', u'frump', u'dog', u'cad', u'frank', u'pawl', u'andiron', u'chase'] 

Tenga en cuenta que los elementos de la lista son de cadena Unicode. Esta es la razón por la que ves el líder u en la salida.