Python-比较同义词NLTK
作者:互联网
这个问题已经在这里有了答案: > All synonyms for word in python? 3个
我无法提出一个陌生人的问题,想您会帮我的.
for p in wn.synsets('change'):<br>
print(p)
获得:
Synset('change.n.01')
Synset('change.n.02')
Synset('change.n.03')
Synset('change.n.04')
Synset('change.n.05')
Synset('change.n.06')
Synset('change.n.07')
Synset('change.n.08')
Synset('change.n.09')
Synset('variety.n.06')
Synset('change.v.01')
Synset('change.v.02')
Synset('change.v.03')
Synset('switch.v.03')
Synset('change.v.05')
Synset('change.v.06')
Synset('exchange.v.01')
Synset('transfer.v.06')
Synset('deepen.v.04')
Synset('change.v.10')
例如,我有一个字符串:
a = 'transfer'
我希望能够识别单词’change’的各种同义词并知道“转移”就是其中之一.我怎么问我的程序:
“’转移’是’变化’的同义词之一吗?”
解决方法:
首先,wordnet索引概念(又称同义词集)并为每个概念链接可能的单词,以下代码显示了这些概念链接到单词“ change”的情况:
>>> from nltk.corpus import wordnet as wn
>>> wn.synsets('change')
[Synset('change.n.01'), Synset('change.n.02'), Synset('change.n.03'), Synset('change.n.04'), Synset('change.n.05'), Synset('change.n.06'), Synset('change.n.07'), Synset('change.n.08'), Synset('change.n.09'), Synset('variety.n.06'), Synset('change.v.01'), Synset('change.v.02'), Synset('change.v.03'), Synset('switch.v.03'), Synset('change.v.05'), Synset('change.v.06'), Synset('exchange.v.01'), Synset('transfer.v.06'), Synset('deepen.v.04'), Synset('change.v.10')]
同义词集具有几个属性,它具有:
>身份证号码
>词性标签
>定义
>引理名称,即可以用来实例化概念的可能单词
>通过N-nymy关系链接到其他同义词集(例如,上位词,下位词,别名)
这是在NLTK中连接以上属性的方法:
>>> wn.synsets('change')[0]
Synset('change.n.01')
>>> wn.synsets('change')[0].offset()
7296428
>>> wn.synsets('change')[0].pos()
u'n'
>>> wn.synsets('change')[0].definition()
u'an event that occurs when something passes from one state or phase to another'
>>> wn.synsets('change')[0].lemma_names()
[u'change', u'alteration', u'modification']
>>> wn.synsets('change')[0].hypernyms()
[Synset('happening.n.01')]
但是,同义词集不一定具有同义词关系.如果我们将同义词定义为具有相似含义的单词,则具有同义词关系的单词(即lemmas).另外,单词的上下文定义单词是否是另一个的同义词.单个单词的含义有限,它是包含概念并通过人类单词实例化含义的“概念”.至少这是典型的语义学理论,请参见http://goo.gl/ZHzlNF中的第2章
因此,当您要问“转移”是“变更”的同义词时,您必须首先:
>定义/选择您在此处所指的概念,并提供使用“转移”的上下文,Google Word Sense消除歧义
>定义您所指的变更概念.
这样就可以比较含义.
也可以看看:
> All synonyms for word in python?
> How to get synonyms from nltk WordNet Python
标签:synonym,wordnet,nlp,nltk,python 来源: https://codeday.me/bug/20191120/2044590.html