PorterStemmer 动词以 -es 和 -ed 结尾 java

PorterStemmer with verbs ending in -es and -ed java

我在 java 中使用 PorterStemmer 来获取动词的基本形式,但我发现动词 "goes" 和 "gambles" 有问题。它不是将其词干化为 "go" 和 "gamble",而是将它们词干化为 "goe" 和 "gambl"。有没有更好的工具可以处理以 -es 和 -ed 结尾的动词来检索动词的基本形式? P.S JAWS with wordnet java 也可以做到这一点。 这是我的代码:

public class verb
{
    public static void main(String[] args)
    {
        PorterStemmer ps = new PorterStemmer();
        ps.setCurrent("gambles");
        ps.stem();
        System.out.println(ps.getCurrent());        
    }
}

这是控制台的输出: gambl

花几分钟时间看完斯坦福NLP组的这篇教程

https://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html

您会发现词干分析器实际上并没有像您想象的那样工作。它很粗糙,所以它并不总是给你一个完整的动词基本形式,结尾被砍掉了。在您的情况下,由于您关心的是获得动词的完整基本形式,词形还原对您来说似乎更好。