1

给定一组 10 个单词 (["dog", "cat", "rabbit" .... ]),如果有的话,我想找到最低的常用上位词。

我知道 WordNet 可以让您在两个同义词集之间找到一个,但是在多个词中找到它的好方法是什么?

我的问题来自这样一个事实,每个单词都有一组 sysnet,其中这个集合的每个成员都可以有不同的上位词,每个上位词都有一组同义词,依此类推。所以一个简单的算法最终会做很多迭代。

4

1 回答 1

1

给定 WordNet 中的两个单词(同义词集),找到它们的最低共同上位词(LCH)。然后找到那个上位词和下一个词的 LCH。重复,直到你完成所有的单词。在代码中,这可能如下所示:

syns = [...] # list of synsets
lch = syns[0]
for word in syns[1:]:
    lch = find_lch(lch, word)

您必须进行 N 次迭代,其中 N 是列表的大小,但没有办法解决。

于 2020-11-09T03:04:23.543 回答