我想使用 Wu 和 Palmer 方法在 wordnet 中计算相似度,
wp = (2 X depth(lcs)) / (depth(synset1) + depth(synset2))
和lcs
的“最不常见的子消费者”在哪里synset1
synset2
我的问题是:
- 什么是“最不常见的子消费者”?
- 如何计算它?
根据这篇论文,两个概念 A 和 B 的 Least Common Subsumer 是“最具体的概念,它是 A 和 B 的祖先”,其中概念树是由is-a
关系定义的。一个概念被定义为另一个概念的祖先,就像您在人类家谱中定义祖先的方式一样,它是另一个概念的父母,祖父母等等。例如:
和图表:
目的 | 车辆 | --------- | | 船用汽车 | 车
在这种情况下,“automobile”是“car”的父(也是祖先),而“vehicle”是“car”的祖先。“车”也是“船”的始祖。在这种情况下,“boat”和“car”的 LCS 是“vehicle”,因为它是最具体的概念,是“boat”和“car”的祖先。请注意,虽然“object”是“boat”和“car”的共同子类,但并非最不重要,因为“object”还有一个孩子(在本例中是“vehicle”),这也是一个常见的“汽车”和“船”的统称。“汽车”不是最不常见的子类,因为它不是“船”的祖先。
要计算相似度,我建议您使用可用的库,否则您将需要自己构建概念图,这很麻烦。
在 Perl 中,您可以使用WordNet::Similarity 包
在 Python 中,您可以使用 nltk 包,具体来说,wup_similarity
在 Java 中,您可以使用ws4j 包