PorterStemmer с глаголами, оканчивающимися на -es и -ed java

Я использую PorterStemmer в Java, чтобы получить базовую форму глагола, но я нашел проблему с глаголами "идет" и "азартные игры". Вместо того, чтобы ограничивать его "идти" и "играть в азартные игры", он связывает их с "идти" и "играть в азартные игры". Есть ли лучший инструмент, который может обрабатывать глаголы, оканчивающиеся на -es и -ed, для получения базовой формы глагола? PS Челюсти с 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

1 ответ

Решение

Потратьте несколько минут, чтобы прочитать этот урок группы Stanford NLP

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

Вы можете обнаружить, что стеммер на самом деле не работает так, как вы думаете. Это грубо, так что это не всегда дает вам полную базовую форму глаголов с отрубленным окончанием. В вашем случае, поскольку вы заботитесь о том, чтобы получить полную базовую форму глагола, лемматизация кажется вам более подходящей.

Другие вопросы по тегам