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

时间:2017-12-29 18:01:20

标签: python nlp nltk wordnet

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

通常,会使用词干和词形还原。这是我尝试过的:

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

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

1 个答案:

答案 0 :(得分:2)

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

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

例如,哪个软件工具可以告诉您//Class Name public class ClassName { //Make it runnable public static void main(String args[]) throws MalformedURLException{ //Get the URL URL img = this.getClass().getResource("src/Name.gif"); //Make it to a Icon Icon icon = new ImageIcon(img); //Make a new JLabel that shows "icon" JLabel Gif = new JLabel(icon); //Make a new Window JFrame main = new JFrame("gif"); //adds the JLabel to the Window main.getContentPane().add(Gif); //Shows where and how big the Window is main.setBounds(x, y, H, W); //set the Default Close Operation to Exit everything on Close main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Open the Window main.setVisible(true); } } dis具有相同的根(speculum),但specere没有?您如何判断speciesgentlegentilegenteel具有相同的根?你需要词源来获得100%的实际连接。