2012-02-17 62 views
1

我知道wordnet中的hypernym,但是由于每个术语都有一些含义,所以我不得不使用Lesk算法来查找单词的上下文含义。使用wordnet在java中找到一个单词的根源

在这个过程中,我看到了question。我试图实现这个算法,这个算法已经被指定为答案。

但是我的主要问题是找到

“节点的两个节点之间的数量倒数的产品”如何找到节点的两个词之间的数字。

当我尝试使用上位词时,它返回一组字,其是当前字的上一级的层次结构

例子:如果我走字应用。 WORDNET建议6个含义,每个含义有一组根的话,现在这字,我应该考虑的层次结构中的

for the 1th meaning of application the hypernyms are 
request petition postulation 
for the 2th meaning of application the hypernyms are 
use usage utilization utilisation employment exercise 
for the 3th meaning of application the hypernyms are 
program programme computer program computer programme 
for the 4th meaning of application the hypernyms are 
manual labor manual labour 
for the 5th meaning of application the hypernyms are 
remedy curative cure therapeutic 
for the 6th meaning of application the hypernyms are 
effort elbow grease exertion travail sweat 

现在哪个字,我应该考虑的层次结构中的下一个字一个新的水平为了找到距离而建立根?

请帮帮忙,我在一个迫切需要

回答

1

您链接到该算法似乎有点混乱给我。我假设你和提问的其他人具有相同的目标:为一个单词找到适当的同义词。这个任务可以通过两个步骤可分为:

    ,你会发现同义词,所以你最终 一个感只有
  1. 得到它的同义词

即使

  • 歧义字您需要访问上位词,步骤1应该先完成,使用Lesk algorithm,它的simplified versionalternatives之一。那么你只有这个意义上的上位词。

    为了消歧您不需要需要计算节点距离(至少作为Lesk的一部分),您只需比较每个的亮度以找出最可能的含义。如果不清楚或者我没有正确回答问题,请毫不犹豫地发表评论。

  • +0

    谢谢..但是,如果我必须追踪从单词到它的根的路径,我会在每个级别有许多上位词。例如..对于单词应用程序,(我理清它的意思来自上下文的计算机)。现在下一个级别将是(说)电脑。这反过来将有3-4上位词..(wordnet给机器,计算器)。现在我该如何消除歧义这个..我没有一句话来消除歧义 – CTsiddharth 2012-02-20 10:10:13

    +0

    你确定吗?对于每个_sense_(即应用程序),Wordnet只有_one_直接上位词。这个上位词用许多单词表示(称为同义词)对你来说应该不重要,它仍然是一个直接上位词,在这里看到: http://wordnetweb.princeton.edu/perl/webwn?o2=&o0= 1 O8 = 1&O1 = 1&O7 =&O5 =&O9 =&O6 =&O3 =&O4 = S =应用与I = 5&H = 000100000 | C 和这里从继承上位词(仍只有一个链): HTTP://wordnetweb.princeton。 edu/perl/webwn?o2 =&o0 = 1&o8 = 1&o1 = 1&o7 =&o5 =&o9 =&o6 =&o3 =&o4 =&r = 1&s = application&i = 5&h = 0001010000#c – Vladtn 2012-02-20 10:16:22

    +0

    噢,由于它返回了一个数组,我认为它们是不同的上位词。现在,我想我会blidly采取第一个hypernym并继续。这可以吗 ? – CTsiddharth 2012-02-21 04:49:48