Z10*_*101 5 python nlp nltk wordnet open-multilingual-wordnet
你好 Stackoverflow 社区
我刚刚开始摆弄 Python NLTK,并将注意力转向 Wordnet 模块。
我试图获得给定引理的 Sense Ky 并发现以下内容:
s = wn.synset('skill.n.01')
s.lemmas # >>> [Lemma('skill.n.01.skill'), ... ]
s.lemmas[0].key # >>> 'skill%1:09:01::'
Run Code Online (Sandbox Code Playgroud)
但是,此实现似乎不再受支持。
Traceback (most recent call last):
File "C:/Users/Admin/PycharmProjects/momely/placementarchitect/testbench.py", line 59, in <module>
s.lemmas[0].key
TypeError: 'method' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人能够为我指出正确的方向,即如何在给定引理或同义词集的情况下获得意义键?
任何建议将不胜感激!
看看/sf/answers/1926322961/之间的区别Synset.lemmas()[0].key和Synset.lemmas()[0].key():
>>> from nltk.corpus import wordnet as wn
>>> wn.synset('dog.n.1')
Synset('dog.n.01')
>>> wn.synset('dog.n.1').lemmas()
[Lemma('dog.n.01.dog'), Lemma('dog.n.01.domestic_dog'), Lemma('dog.n.01.Canis_familiaris')]
>>> wn.synset('dog.n.1').lemmas()[0]
Lemma('dog.n.01.dog')
>>> wn.synset('dog.n.1').lemmas()[0].name()
u'dog'
# To retrieve Princeton WordNet style keys.
>>> wn.synset('dog.n.1').lemmas()[0].key()
u'dog%1:05:00::'
Run Code Online (Sandbox Code Playgroud)
对于Open Multilingual WordNet,使用 offset + pos 键会更容易,例如:
>>> from nltk.corpus import wordnet as wn
>>> ss = wn.synset('dog.n.1')
>>> ss.offset()
2084071
>>> ss.pos()
u'n'
>>> '{}-{}'.format(str(ss.offset()).zfill(8), ss.pos())
'02084071-n'
Run Code Online (Sandbox Code Playgroud)
02084071-n在 OMW 界面上搜索 offset + pos 键(例如): http://compling.hss.ntu.edu.sg/omw/cgi-bin/wn-gridx.cgi ?gridmode=grid 将为您提供良好的可视化效果同义词集的页面。