Однокоренные слова в Python

Мне нужно получать однокоренные слова с указанием части речи. Как я понимаю, для английского языка такое решение есть. Но для русского не нашла ничего подходящего

Например:

энергетический + сущ -> энергетика
московский + сущ -> москва
молодежь + прил -> молодежный

Мне это нужно для улучшения качества поисковой системы по документам 1с, которые я передаю в opensearch в виде json-ов.

Правильное наименование Для него запрос пользователя
"департамент образования города москвы " "московский департамент образования"
"департамент финансов" "финансовый департамент"
"агентство энергетической эффективности мурманской области" "агентство энергетики мурманск"

Pymorphy2, как я понимаю, нормализует только до той же части речи

Использование нечеткого (fuzzy) поиска мне не очень нравится, хотелось бы иметь возможность именно переходить от одной части речи к другой с тем же корнем


Ответы (1 шт):

Автор решения: roddar92

Как вариант, Вам здесь может помочь эта библиотека: https://github.com/DedInc/ruslingua. Ресурс работает с сайтом https://razbiraem-slovo.ru/.

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

Удачи! :)

→ Ссылка