python - spanish - ¿Cuál es la conexión o diferencia entre lema y synset en wordnet?
wordnet python (2)
Soy un principiante completo para NLP y NLTK.
No pude entender la diferencia exacta entre lemmas y synsets en wordnet , porque ambos están produciendo casi el mismo resultado. por ejemplo, para el pastel de palabras produce esta salida.
lemmas : [Lemma(''cake.n.01.cake''), Lemma(''patty.n.01.cake''), Lemma(''cake.n.03.cake''), Lemma(''coat.v.03.cake'')]
synsets : [Synset(''cake.n.01''), Synset(''patty.n.01''), Synset(''cake.n.03''), Synset(''coat.v.03'')]
por favor, ayúdame a entender este concepto.
Gracias.
Los términos se basan en el sentido general de las palabras "lema" y "sinónimo".
Un lema es la versión de wordnet de una entrada en un diccionario: una palabra en forma canónica, con un único significado. Por ejemplo, si desea buscar "bancos" en el diccionario, la forma canónica sería "banco" y habría lemas separados para los sustantivos que significan "institución financiera" y "lado del río", uno separado para el verbo "to bank (on)", etc.
El término synset significa "conjunto de sinónimos". Un conjunto de sinónimos es un conjunto de palabras con un significado similar, por ejemplo , ship, skiff, canoe, kayak , todos podrían ser sinónimos de boat . En la nltk, un synset
es, de hecho, un conjunto de lemas con significado relacionado. Tomando su ejemplo (los resultados de wn.synsets("cake")
y wn.lemmas("cake")
), también podemos escribir:
>>> synsets[0]
Synset(''cake.n.01'')
>>> synsets[0].lemmas()
[Lemma(''cake.n.01.cake''), Lemma(''cake.n.01.bar'')]
Estos son los lemas que componen el primer synset dado para "torta".
Wordnet proporciona una gran cantidad de métodos que le permiten explorar relaciones como hipernyms / hipónimos, dominios de uso y más. Para obtener más información, debe buscar directamente en la documentación de Wordnet; nltk solo proporciona una interfaz para ello. Aquí está el glosario de Wordnet.
Los sintonizadores representan el conjunto de diferentes sentidos de una palabra en particular. Mientras que los lemas son sinónimos en cada sentido.
import nltk
from nltk.corpus import wordnet as wn
cake_synsets = wn.synsets("cake")
for sense in cake_synsets:
lemmas = [l.name() for l in sense.lemmas()]
print("Lemmas for sense : " + sense.name() + "(" +sense.definition() + ") - " + str(lemmas))
Salida:
Lemmas for sense : cake.n.01(a block of solid substance (such as soap or wax)) - [''cake'', ''bar'']
Lemmas for sense : patty.n.01(small flat mass of chopped food) - [''patty'', ''cake'']
Lemmas for sense : cake.n.03(baked goods made from or based on a mixture of flour, sugar, eggs, and fat) - [''cake'']
Lemmas for sense : coat.v.03(form a coat over) - [''coat'', ''cake'']
http://justanoderbit.blogspot.in/2017/10/synset-vs-lemma.html