мне нужно использовать алгоритм стеммера портера, чтобы получить основное слово в моем приложении, но когда я тестирую алгоритм, который я получаю от http://www.tartarus.org/~martin/PorterStemmer, результат стемминга не дает мне правильного основного слова, например: happy -> happyi virus -> viru и т. д., вы можете мне помочь решить это?
почему результаты алгоритма стеммера портера, которые у меня не соответствуют корневому слову, должны быть?
Ответы (1)
Цитата из вашей ссылки:
2. Почему стеммер не воспроизводит правильные слова?
Часто считается грубой ошибкой, что алгоритм выделения корня не оставляет реального слова после удаления основы. Но цель выделения корней состоит в том, чтобы объединить различные формы слова, а не сопоставить слово с его «парадигмальной» формой.
И в связи с этим,
3. Почему возникают ошибки?
Обычно возникает вопрос, почему слово X должно быть связано с x1, если можно было ожидать, что оно будет связано с x2? Важно помнить, что алгоритм стемминга не может достичь совершенства. В целом это улучшит (или может) улучшить работу IR, но в отдельных случаях может иногда делать то, что является или кажется ошибочным. Конечно, это совсем не то, что предлагать дополнительное правило, которое может быть включено в стеммер для повышения его производительности.