你可以找到所有“好”的词义集的路径相似度,然后选择最大值:
>>> from nltk.corpus import wordnet as wn
>>> n=wn.synsets('nice')
>>> g=wn.synsets('good')
>>> [i.path_similarity(n[0]) for i in g]
[0.0625, 0.06666666666666667, 0.07142857142857142, 0.09090909090909091, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]
>>> max(i.path_similarity(n[0]) for i in g)
0.09090909090909091
请注意,一个单词的同义词集包含许多单词形式,如动词、名词、形容词等,因此您需要选择正确的一个!
另外,您还可以使用wup_similarity作为另一种选择:
>>> round(max(i.wup_similarity(n[0]) for i in g), 1)
0.4
吴-帕尔默相似度:返回一个得分,表示两个词义的相似程度,基于它们在分类法中的深度以及它们最近的共同继承者(最具体的祖先节点)的深度。
了解更多关于Synsets的信息,请阅读此处。