wordnet中引理和synset之间的联系或区别是什么?

10 python nlp nltk wordnet

我是NLP和NLTK的初学者.

我无法理解wordnet中的lemmas和synsets之间的确切区别,因为两者产生的输出几乎相同.例如,对于单词cake,它会产生这个输出.

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')]
Run Code Online (Sandbox Code Playgroud)

请帮我理解这个概念.

谢谢.

ale*_*xis 12

这些术语基于"引理"和"同义词"这一词的一般含义.

一个引理是在字典中的条目共发现的版本:在规范形式的字,用一个单一的含义.例如,如果你想在字典中查找"银行",那么规范形式就是"银行",名词中会有单独的引理,意思是"金融机构"和"河边",另外一个是动词"to bank(on)"等

术语synset代表"同义词集".一组同义词是一组具有相似含义的单词,例如船,小船,独木舟,皮划艇可能都是船的同义词.在NLTK,一个synset是事实上的一组引理与相关含义.以你的榜样(的结果wn.synsets("cake")wn.lemmas("cake")),我们也可以这样写:

>>> synsets[0]
Synset('cake.n.01')
>>> synsets[0].lemmas()
[Lemma('cake.n.01.cake'), Lemma('cake.n.01.bar')]
Run Code Online (Sandbox Code Playgroud)

这些是构成"蛋糕"的第一个同义词组合的引理.

Wordnet提供了许多方法,允许您探索诸如上位词/下位词,使用域等关系.有关更多信息,请直接查看Wordnet文档; nltk只为它提供了一个接口.这是Wordnet 词汇表.


Nam*_*ani 7

Synsets表示特定单词的不同感官集.而lemmas作为每个意义上的同义词.

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))
Run Code Online (Sandbox Code Playgroud)

输出:

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']
Run Code Online (Sandbox Code Playgroud)

http://justanoderbit.blogspot.in/2017/10/synset-vs-lemma.html