如何获取path_similarity得分最高的synset

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取path_similarity得分最高的synset相关的知识,希望对你有一定的参考价值。

我理解以下代码使用syn1的同义词迭代syn2的所有同义词集。

我的问题是,如何获得最高分的synset?

    from nltk.corpus import wordnet
    syn1 = wordnet.synsets('speed',pos='n')
    syn2 = wordnet.synsets('performance',pos='n')
    for word1 in syn1:
        best = max(word1.path_similarity(word2) for word2 in syn2)
        ps_list.append(best)
答案

也许你需要这样的东西:

import numpy as np
from nltk.corpus import wordnet

syn1 = wordnet.synsets('speed',pos='n')
syn2 = wordnet.synsets('performance',pos='n')

def getMaxPath(synset1,synset2):
    sim=[]
    a=[]
    b=[]
    for i in synset1:
        for j in synset2:
            sim.append(wordnet.path_similarity(i,j))
            a.append(i.name())   # save the names from synsets1 into list
            b.append(j.name())   # save the names from synsets2 into list

    max_sim=max(sim)
    idx=np.argmax(sim)
    s1=a[idx]        # get the name of synset1 for which path sim is max
    s2=b[idx]        # get the name of synset2 for which path sim is max
    return max_sim, s1, s2

getMaxPath(syn1, syn2)

输出:

(0.2, 'speed.n.03', 'performance.n.03')

以上是关于如何获取path_similarity得分最高的synset的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQL 从每个组中获得最高得分球员?

Java - 如何找到在 Student 类中编写方法的得分最高的学生?

ICLR 2022 评审出炉!来看看得分最高8均分的31篇论文是什么!

得分最高的击球手名字 - C++ [关闭]

1102. 得分最高的路径

如何从最高到最低对字典值进行排序?