1

我知道 wordnet 中的上位词,但由于每个术语都有很多含义,我不得不使用 Lesk 算法来查找单词的上下文含义。

在这个过程中,我看到了这个问题。我正在尝试实现这个被指定为答案的算法。

但我的主要问题是找到“两个节点之间节点数倒数的乘积”

我如何找到两个单词之间的节点数。

当我尝试使用上位词时,它会返回一组单词,这些单词比层次结构中的当前单词高一级

例子:如果我用应用这个词。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 

现在我应该考虑哪个词作为层次结构中的下一个词来构建到根以便找到距离?

请帮忙,我急需

4

1 回答 1

1

您链接到的算法对我来说似乎有点混乱。我假设您与提出问题的其他人的目标相同:为一个词找到合适的同义词。这个任务可以分为两个步骤:

  1. 消除您要找到同义词的词的歧义,因此您最终只会有一种含义
  2. 得到它的同义词

即使您需要访问上位词,也应首先使用Lesk 算法完成第 1 步,它是简化版本替代方案之一。那么你只有那个意义上的上位词。

为了消除歧义,您不需要计算节点距离(至少作为 Lesk 的一部分),您只需要比较每个节点的光泽度即可找到最可能的含义。如果不清楚或我没有正确回答问题,请随时发表评论。

于 2012-02-18T10:12:29.610 回答