确定两个词是否来自 Python 中的同一个词根

Determining if two words are derived from the same root in Python

我想写一个函数 same_base(word1, word2) 当 returns Trueword1word2 是两个来自同一个词根的英语单词时单词。我意识到单词可以有多种含义;我希望算法过分热心,只要 可能 就返回 True 来将单词视为源自同一个地方。一些误报是可以的;假阴性不是。

通常,词干提取和词形还原会用于此目的。这是我尝试过的:

有这样的工具吗?我是否只需要一个非常激进的词干提取器/词形还原器组合——如果需要,我在哪里可以找到?

正如您所描述的那样,一般任务无法通过对输入字符进行简单的文本分析来完成。英语在处理单词时并没有一致的规则。是的,出色的词形还原器将为您解决简单的案例,这些案例可以通过应用 POS 中常见的转换(例如不规则动词)来辨别。

但是,要消除假阴性,您必须完全覆盖单词的基础; 完整 需要词源学,尤其是在词根不是英语的情况下,或者可能没有出现在缩短的词本身中。

例如,什么软件工具可以告诉您 disspeculum 具有相同的根 (specere),而 species 不同?您如何判断 gentlegentilegenteeljaunty 具有相同的根?您需要词源来获得 100% 的实际连接。