Python 给定两个单词,找出它们是否在同一个语法集中

Python 给定两个单词,找出它们是否在同一个语法集中,python,nltk,Python,Nltk,我是nltk的新手。我正在设法找出解决这个问题的办法 我目前正在处理的问题: 给定两个单词w1和w2,有没有办法确定它们是否属于Wordnet数据库中的同一个系统网 还可以找到包含给定单词的系统网列表吗 谢谢 还可以找到包含给定系统的系统网列表吗 话 是: >>> from nltk.corpus import wordnet as wn >>> auto, car = 'auto', 'car' >>> wn.synsets(auto)

我是nltk的新手。我正在设法找出解决这个问题的办法 我目前正在处理的问题:

  • 给定两个单词w1和w2,有没有办法确定它们是否属于Wordnet数据库中的同一个系统网
  • 还可以找到包含给定单词的系统网列表吗
谢谢

还可以找到包含给定系统的系统网列表吗 话

>>> from nltk.corpus import wordnet as wn
>>> auto, car = 'auto', 'car'
>>> wn.synsets(auto)
[Synset('car.n.01')]
>>> wn.synsets(car)
[Synset('car.n.01'), Synset('car.n.02'), Synset('car.n.03'), Synset('car.n.04'), Synset('cable_car.n.01')]
>>> from nltk.corpus import wordnet as wn
>>> auto, car = 'auto', 'car'
>>> wn.synsets(auto)
[Synset('car.n.01')]
>>> wn.synsets(car)
[Synset('car.n.01'), Synset('car.n.02'), Synset('car.n.03'), Synset('car.n.04'), Synset('cable_car.n.01')]
>>> auto_ss = set(wn.synsets(auto))
>>> car_ss = set(wn.synsets(car))
>>> car_ss.intersection(auto_ss)
set([Synset('car.n.01')])
如果我们查看
wn.synsets(car)
中每个语法集中的引理,我们会发现“car”作为引理之一存在:

>>> for ss in wn.synsets(car):
...     assert 'car' in ss.lemma_names()
... 
>>> for ss in wn.synsets(car):
...     print 'car' in ss.lemma_names(), ss.lemma_names()
... 
True [u'car', u'auto', u'automobile', u'machine', u'motorcar']
True [u'car', u'railcar', u'railway_car', u'railroad_car']
True [u'car', u'gondola']
True [u'car', u'elevator_car']
True [u'cable_car', u'car']
注意:引理并不完全是一个表面词,请参见,您可能会发现这很有用(免责声明:无耻插头)

给定两个单词w1和w2,有没有办法确定它们是否正确 是否属于Wordnet数据库中的同一个系统网

>>> from nltk.corpus import wordnet as wn
>>> auto, car = 'auto', 'car'
>>> wn.synsets(auto)
[Synset('car.n.01')]
>>> wn.synsets(car)
[Synset('car.n.01'), Synset('car.n.02'), Synset('car.n.03'), Synset('car.n.04'), Synset('cable_car.n.01')]
>>> from nltk.corpus import wordnet as wn
>>> auto, car = 'auto', 'car'
>>> wn.synsets(auto)
[Synset('car.n.01')]
>>> wn.synsets(car)
[Synset('car.n.01'), Synset('car.n.02'), Synset('car.n.03'), Synset('car.n.04'), Synset('cable_car.n.01')]
>>> auto_ss = set(wn.synsets(auto))
>>> car_ss = set(wn.synsets(car))
>>> car_ss.intersection(auto_ss)
set([Synset('car.n.01')])