从这个
路径相似性, wup_similarity 和 lch_similarity,所有这些都应该有效,因为它们基于 Wordnet 层次结构中两个同义词集之间的距离。
dog = wn.synset('dog.n.01')
cat = wn.synset('cat.n.01')
dog.path_similarity(cat)
dog.lch_similarity(cat)
dog.wup_similarity(cat)
Run Code Online (Sandbox Code Playgroud)
synset1.path_similarity(synset2):
根据连接 is-a (hypernym/hypnoym) 分类法中的词义的最短路径,返回一个分数,表示两个词义的相似程度。分数在 0 到 1 的范围内,除非在找不到路径的情况下(仅适用于动词,因为有许多不同的动词分类法),在这种情况下返回 -1。1 分代表同一性,即将某种意义与其自身进行比较将返回 1。
synset1.lch_similarity(synset2),Leacock-Chodorow 相似度:
根据连接词义的最短路径(如上)和词义出现的分类法的最大深度,返回一个分数,表示两个词义的相似程度。该关系以 -log(p/2d) 形式给出,其中 p 是最短路径长度,d 是分类深度。
synset1.wup_similarity(synset2), Wu-Palmer 相似度:
根据分类法中两个词义的深度和它们的 Least Common Subsumer(最具体的祖先节点)的深度,返回一个表示两个词义的相似程度的分数。请注意,此时给出的分数并不总是与 Pedersen 的 Wordnet Similarity 的 Perl 实现给出的分数一致。