如何规范化[0,1]之间的相似性度量(lch、wup、path、res、lin、jcn)?

2024-10-01 22:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我在计算两个词之间的语义相似度。我使用的是基于Wordnet的相似性度量,即Resnik measure(Resnik measure,Resnik measure,Lin measure(Lin)),Jiang,Conrath measure(JNC)和(LCH),但是相似性值不在[0-1]之间,所以我需要规范化相似性值,因为有些度量值给出的值介于0和1之间,而其他度量值则大于1。甚至这个词都是相似或不同的。在

代码示例:

from nltk.corpus import wordnet as wn

from nltk.corpus import wordnet_ic

brown_ic = wordnet_ic.ic('ic-brown.dat')

s1 = wordnet.synsets("car")

s2 = wordnet.synsets("car")

wn.wup_similarity(s1[0], s2[0])

1.0

wn.lch_similarity(s1[0], s2[0])

3.6375861597263857

wn.path_similarity(s1[0], s2[0])

1.0

wn.jcn_similarity(s1[0], s2[0], brown_ic)

1e+300

wn.res_similarity(s1[0], s2[0], brown_ic)

7.591401417609093

wn.lin_similarity(s1[0], s2[0], brown_ic)

1.0


Tags: from度量corpus相似性wordnetmeasureiclin

热门问题