如何使用Python在Wordnet中查找相关性
我想用Python找出两个词之间的相关性(不是相似性)。有一些算法,比如hso(Hirst和St-Onge,1998年)、lesk(Banerjee和Pedersen,2003年)和vector(Patwardhan,2003年),这些算法在Perl中有实现,可以在这里找到,但我在nltk库中找不到Python的实现。
我需要用Python,因为这是一个更大团队项目的一部分。有没有什么线索可以提供?
3 个回答
如果你已经有了perl的实现,为什么不写一个python的包装器来调用perl代码呢?这样你的python项目就可以利用这些功能,而且你不需要重新编写实际的算法。其实在nltk里,有很多东西就是这样工作的。
我使用了NLTK这个工具,把WordNet加载到Neo4j图数据库里,具体可以参考这个链接:https://groups.google.com/d/topic/gremlin-users/C1OlTG9xCpo/discussion。
然后,我用了Bulbs这个库(http://bulbflow.com/),创建了一个叫做WordGraph的库,用来通过Rexster REST服务器(https://github.com/tinkerpop/rexster/wiki/)与Neo4j和WordNet进行交互。
Bulbs是一个Python库,它让你可以使用图形编程语言Gremlin(https://github.com/tinkerpop/gremlin/wiki)来查询和遍历Neo4j,这里特别是针对WordNet。
我正在把WordGraph发布到Github上(https://github.com/espeed/wordgraph)——如果你有问题,可以给我发消息。
你还可以访问一个网页界面——你可以写一个Python程序来查询这个网页,从而获取lesk或向量值。
你可以在这里找到这些网页接口……
http://marimba.d.umn.edu http://talisker.d.umn.edu
祝好运, Ted