什么是最不常见的潜水员"以及如何计算它?

时间:2013-09-05 06:43:34

标签: algorithm wordnet

我想用Wu和Palmer方法计算wordnet中的相似性度量,

wp = (2 X depth(lcs)) / (depth(synset1) + depth(synset2))

其中lcssynset1synset2

的“最不常见的潜在客户”

我的问题是:

  1. 什么是“最不常见的潜水员”?
  2. 如何计算?

1 个答案:

答案 0 :(得分:15)

根据这个paper,两个概念A和B的最小公共子集是“最具体的概念,它是A和B的祖先”,其中概念树由{{1}定义} 关系。概念被定义为其他概念的祖先,就像您在人类家族树中定义祖先的方式一样,这是其他概念的父母,祖父母等等。例如:

  1. 汽车是汽车,汽车是汽车
  2. 船是一种车辆。
  3. 车辆是一个物体。
  4. 图表:

        Object
          |
        Vehicle
          |
      ---------
      |       |
     Boat  Automobile
              |
             Car
    

    在这种情况下,“汽车”是“汽车”的父母(也是祖先),而“汽车”是“汽车”的祖先。 “车辆”也是“船”的始祖。在这种情况下,“船”和“汽车”的LCS是“车辆”,因为它是最具体的概念,它是“船”和“汽车”的祖先。请注意,虽然“对象”是“船”和“汽车”的共同潜水员,但它并非最不重要,因为仍然有一个“对象”的孩子(在这种情况下它是“车辆”),这也是一个常见的“汽车”和“船”的潜水员。 “汽车”不是最不常见的潜艇,因为它不是“船”的祖先。

    为了计算相似性度量,我建议你使用可用的库,否则你需要自己构建概念图,这很麻烦。

    在Perl中,您可以使用WordNet::Similarity package

    在Python中,您可以使用nltk包,特别是wup_similarity

    在Java中,您可以使用ws4j package