Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
给定一组 10 个单词 (["dog", "cat", "rabbit" .... ]),如果有的话,我想找到最低的常用上位词。
我知道 WordNet 可以让您在两个同义词集之间找到一个,但是在多个词中找到它的好方法是什么?
我的问题来自这样一个事实,每个单词都有一组 sysnet,其中这个集合的每个成员都可以有不同的上位词,每个上位词都有一组同义词,依此类推。所以一个简单的算法最终会做很多迭代。
给定 WordNet 中的两个单词(同义词集),找到它们的最低共同上位词(LCH)。然后找到那个上位词和下一个词的 LCH。重复,直到你完成所有的单词。在代码中,这可能如下所示:
syns = [...] # list of synsets lch = syns[0] for word in syns[1:]: lch = find_lch(lch, word)
您必须进行 N 次迭代,其中 N 是列表的大小,但没有办法解决。