2016-08-19 25 views
0

我是nltk的新手,我发现wordnet功能非常有用。它给出了synsets,hypernyms,​​等等。但是,它显然没有给出诸如'德里' - '海得拉巴'之类的位置之间的相似性,因为这些词不在词网语料库中。因此,我想知道,如果以某种方式,我可以更新字网络语料库,或者在不同的语料库上创建字词,例如,从维基百科中提取的与旅行相关的一组页面?如果我们可以根据不同的语料库创建wordnet,那么格式是什么,要采取相同的步骤,还有什么限制?wordnet在不同的文本?

请你指点我描述上述问题的链接。我搜索了互联网,Google搜索,阅读了nltk书的部分内容,但是我没有提及上述问题。

对不起,如果这个问题听起来完全荒谬。

+1

Check about - DBpedia – RAVI

回答

2

对于测量像新德里海德拉巴或者非常具体的条款,你想要什么的语义相似的灵活性是不是手工制作共发现一样,但是从非常大的数据库自动学习的相似性度量。这些是statistical similarity的方法。当然,你想避免在数据上自己训练这样一个模型...

因此,有一点可能有用的是Google距离(wikipediaoriginal paper)。在R(code)这样的语言中实施这样的措施似乎相当简单,原始报告与WordNet报告87%的一致。

+0

关于“Google距离”的有趣论文! – alvas

1

Wordnet中的相似性度量按预期进行,因为Wordnet会测量语义相似度。从这个意义上说,两者都是城市,所以它们非常相似。您正在寻找的可能是geographic similarity

delhi = wn.synsets('Delhi', 'n')[0] 
print delhi.definition() 

# a city in north central India 

hyderabad = wn.synsets('Hyderabad', 'n')[0] 
print hyderabad.definition() 

# a city in southern Pakistan on the Indus River 


delhi.wup_similarity(hyderabad) 
# 0.9 

melon = wn.synsets('melon', 'n')[0] 

delhi.wup_similarity(melon) 
# 0.3 

有一个Wordnet扩展名为Geowordnet。我曾经有过和你一样的问题,并试图用一些扩展名来统一Wordnet:wnext。希望有所帮助。

+0

很酷。非常感谢您的回答。学到了新东西。但是,地理输入是我正在寻找的类别之一,还有其他几种我喜欢的动物,食品等。因此,我正在寻找通过wikipeida构建wordnet(如果可能的话)。在这方面的任何投入? – mtk

+0

食品之间的距离测量是什么?成分列表? – bogs

+0

我想我没有明确说明要求。让我试着澄清。给出两个词我需要知道它们是否相似。例如如果我给巴黎和甜甜圈,那么一个是食品,另一个是位置,所以我需要一个流程/程序来告诉他们是不相似的。对于食品项目是的,我不清楚什么是距离测量,但我想找到一种获得通用输出的方法。我认为nltk会在这里帮助。 – mtk