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

问题描述 投票:3回答:1

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

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

  • 使用例如Porter Stemmer检查单词是否源于同一个词。这不会抓住sungsingdigdugmedicationmedicine
  • 检查单词是否引用同一个词。目前还不清楚传递给词形变换器的论据是什么(即,对于词性)。至少,WordNet引理器似乎过于保守。

这样的工具存在吗?我只需要一个极具攻击性的词干器/变形器组合 - 如果是这样,我会在哪里找到一个?

python nlp nltk wordnet
1个回答
2
投票

正如您所描述的那样,一般任务不可能通过输入字符的简单文本分析来实现。英语在处理单词时没有一致的处理规则。是的,一个优秀的lemmatiser将为您解决直截了当的案例,那些可以通过应用该POS中常见的转换(例如不规则动词)来辨别的案例。

但是,要消除漏报,您必须完全覆盖该词的基础;完整将需要词源,特别是在根词不是英语的情况下,或者可能不会出现在缩短的词本身中。

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

© www.soinside.com 2019 - 2024. All rights reserved.