引理和语法集在wordnet中有什么联系或区别?

2024-05-13 17:36:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我完全是NLP和NLTK的初学者。

我无法理解wordnet中引理和synset之间的确切区别,因为它们产生的输出几乎相同。例如,对于单词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')]

请帮助我理解这个概念。

谢谢你。


Tags: 概念nlp单词wordnetcakenltk初学者区别
2条回答

句法集表示特定单词的不同意义集合。 而引理是每个意义上的同义词。

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))

输出:

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

这些术语基于“引理”和“同义词”的一般意义。

引理是wordnet在字典中的一个词条的版本:一个具有单一含义的规范形式的词。E、 例如,如果你想在字典里查找“banks”,规范的形式是“bank”,名词“financial institution”和“side of the river”会有单独的引理,动词“to bank(on)”会有单独的引理,等等

术语synset代表“同义词集”。一组同义词是一组含义相似的词,例如ship、skiff、canoe、kayak都可能是boat的同义词。在nltk中,asynset实际上是一组具有相关意义的引理。以您的示例(结果是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')]

这些引理构成了“cake”的第一个语法集。

Wordnet提供了许多方法,允许您探索诸如超同名/下同名、使用域等关系。有关更多信息,您应该直接查看Wordnet文档;nltk只是为它提供了一个接口。这是Wordnet glossary

相关问题 更多 >