确定两个词是否来自 Python 中的同一个词根
Determining if two words are derived from the same root in Python
我想写一个函数 same_base(word1, word2)
当 returns True
当 word1
和 word2
是两个来自同一个词根的英语单词时单词。我意识到单词可以有多种含义;我希望算法过分热心,只要 可能 就返回 True
来将单词视为源自同一个地方。一些误报是可以的;假阴性不是。
通常,词干提取和词形还原会用于此目的。这是我尝试过的:
- 检查单词是否源于同一事物,例如使用 Porter Stemmer。这不会捕获
sung
和 sing
、dig
和 dug
、medication
和 medicine
。
- 检查单词是否还原为同一事物。不清楚要传递给词形还原器的参数是什么(即词性)。至少,WordNet 词形还原器似乎过于保守。
有这样的工具吗?我是否只需要一个非常激进的词干提取器/词形还原器组合——如果需要,我在哪里可以找到?
正如您所描述的那样,一般任务无法通过对输入字符进行简单的文本分析来完成。英语在处理单词时并没有一致的规则。是的,出色的词形还原器将为您解决简单的案例,这些案例可以通过应用 POS 中常见的转换(例如不规则动词)来辨别。
但是,要消除假阴性,您必须完全覆盖单词的基础; 完整 需要词源学,尤其是在词根不是英语的情况下,或者可能没有出现在缩短的词本身中。
例如,什么软件工具可以告诉您 dis
和 speculum
具有相同的根 (specere
),而 species
不同?您如何判断 gentle
、gentile
、genteel
和 jaunty
具有相同的根?您需要词源来获得 100% 的实际连接。
我想写一个函数 same_base(word1, word2)
当 returns True
当 word1
和 word2
是两个来自同一个词根的英语单词时单词。我意识到单词可以有多种含义;我希望算法过分热心,只要 可能 就返回 True
来将单词视为源自同一个地方。一些误报是可以的;假阴性不是。
通常,词干提取和词形还原会用于此目的。这是我尝试过的:
- 检查单词是否源于同一事物,例如使用 Porter Stemmer。这不会捕获
sung
和sing
、dig
和dug
、medication
和medicine
。 - 检查单词是否还原为同一事物。不清楚要传递给词形还原器的参数是什么(即词性)。至少,WordNet 词形还原器似乎过于保守。
有这样的工具吗?我是否只需要一个非常激进的词干提取器/词形还原器组合——如果需要,我在哪里可以找到?
正如您所描述的那样,一般任务无法通过对输入字符进行简单的文本分析来完成。英语在处理单词时并没有一致的规则。是的,出色的词形还原器将为您解决简单的案例,这些案例可以通过应用 POS 中常见的转换(例如不规则动词)来辨别。
但是,要消除假阴性,您必须完全覆盖单词的基础; 完整 需要词源学,尤其是在词根不是英语的情况下,或者可能没有出现在缩短的词本身中。
例如,什么软件工具可以告诉您 dis
和 speculum
具有相同的根 (specere
),而 species
不同?您如何判断 gentle
、gentile
、genteel
和 jaunty
具有相同的根?您需要词源来获得 100% 的实际连接。