Без хорошего знания морфологии английского языка вам придется использовать существующую библиотеку, а не создавать свой собственный стеммер.
Английский полон неожиданных морфологических сюрпризов, которые могут повлиять как на вероятностные, так и на основанные на правилах модели. Вот некоторые примеры:
- Удаление префикса in- для удаления суффикса -able , как в обитаемый .
- Изменение категории слова, как в существительном велосипед в результате использования глагола езда на велосипеде (может влиять на правила, основанные на категориях).
- Слова с отрицательным значением не могут иметь отрицательных префиксов (вы можете иметь unpretty , но не unugly ).
- Два слова как составные, как в слове «водитель грузовика» (вы будете рассматривать их как одно слово, когда будете стоять).
В английском языке также есть проблема с I-umlaut, когда такие слова, как мужчины, гуси, ступни, лучшие и множество других слов (все со звуком, похожим на «е»), не могут быть легко найдены. Также может возникнуть проблема с заимствованием иностранных заимствованных слов, таких как automaton .
Использование превосходной формы является хорошим примером исключений:
лучший -> хороший
старшее -> старое
Лемматизатор будет учитывать такие исключения, но будет медленнее. Вы можете ознакомиться с правилами портера Porter, чтобы получить представление о том, что вам нужно, или просто воспользоваться пакетом SnowballC R.