Реализация алгоритма Стеммера Портера для русского языка на Kotlin
Чтобы воспользоваться алгоритмом Портера, создайте экземпляр класса Porter и передайте ему слово в качестве аргумента. Затем вызовите метод stem() у этого экземпляра, который вернет корневое слово.
val stemmer = Porter("устойчивость")
val stemmedWord = stemmer.stem()
Класс Porter содержит реализацию каждого из шагов алгоритма, представленных в виде отдельных функций. Конструктор принимает слово в качестве аргумента и сохраняет его в поле word. Метод stem() вызывает каждую функцию в правильном порядке и возвращает итоговое корневое слово. Вспомогательные поля класса содержат регулярные выражения, которые используются для поиска нужных окончаний и суффиксов в словах.
http://snowball.tartarus.org/algorithms/russian/stemmer.html