首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nltk:如何搜索单词之间的关联?

nltk:如何搜索单词之间的关联?
EN

Stack Overflow用户
提问于 2019-02-11 18:30:51
回答 1查看 190关注 0票数 3

我使用nltk和wordnet链接属于某种关系组的单词。例如,“停车场”和“建筑”应该有一些家长的联系。我用的是超自然词,但有些词是没有联系的。

代码语言:javascript
复制
x = wordnet.synset('parking.n.01')
y = wordnet.synset('building.n.01')

print(x._shortest_hypernym_paths(y))
print(y._shortest_hypernym_paths(x))

{Synset('parking.n.01'):0,Synset(‘ROOT.n.02’):1,Synset(‘plaction.n.07’):2,Synset('relation.n.01'):3,Synset(‘Accaction.n.06’):4,Synset(‘物.n.01’):5,Synset('ROOT'):6} {Synset('building.n.01'):0,Synset(‘struc.nture.01’):1,同步集(‘artifact.n.01’):2,同步集(‘整体性.n.02’):3,同步集(‘object.n.01’):4,同步集(‘physical_entity.n.01’):5,同步集(‘实体.n.01’):6,同步集(‘根’):7}

在这里,这种联系通过‘实体,n.01’,诚实地说是几乎所有物理名词的根。我怎么能得到比这更好的东西呢?

我想要一些像‘泊车’->‘结构’->‘建筑’;它可以是更长的,但“外星”词不应该在那里,例如‘猴子’,它也拉链实体。

EN

回答 1

Stack Overflow用户

发布于 2019-02-12 13:47:01

找到了一些查看可能性的有用方法:

代码语言:javascript
复制
def getShortestHypernymPath(word1, word2, nulls=False):
    syns1 = wordnet.synsets(word1)
    syns2 = wordnet.synsets(word2)
    for s1 in syns1:
        for s2 in syns2:
            lch = s2.lowest_common_hypernyms(s1)
            if len(lch) > 0 or nulls:
                print(s1, '<-->', s2, '===', lch)

nlpf.getShortestHypernymPath('parking', 'building', nulls=False)

这将返回:

同步集(‘parking.n.01’)<->同步集(‘building.n.01’) === Synset(‘实体.n.01’)合成集(‘parking.n.01’)<->合成集(‘struction.n.01’) === Synset(‘抽象.n.06’)合成集(‘parking.n.01’)<->合成集(‘struction.n.07’) ===合集(‘抽象.n.06’)( 07') === Synset('act.n.02') Synset('parking.n.02') <->同步集(‘building.n.04’) === Synset(‘抽象.n.06’)合成集(‘park.v.02’)<->同步集(‘build.v.05’) ===同步集(‘Control.v.01’)

所以我至少可以调解一下。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54636917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档