В прошлом посте рассказывал про MyStem от Яндекса. В комментариях подсказали хорошее: в лицензии MyStem пункт 3.2 прямо запрещает использовать его для поисковой оптимизации.
Чтоб Рема не посадили😁, пошёл искать другой инструмент.
Покопал и наткнулся на Natasha — это целый зонтичный проект для русского языка от российских ребят. Лицензия MIT, никаких ограничений.
Под одним API объединены:
— Razdel — режет текст на слова и предложения
— Slovnet — нейросетевые модели морфологии, синтаксиса и распознавания именованных сущностей
— Navec — компактные эмбеддинги слов
— Yargy — извлечение фактов по правилам, аналог томита-парсера
— Natasha — удобный API над всем этим
Прогнал свой тестовый пример «доставка цветов на дом»:
Доставка NOUN | Case=Nom | Gender=Fem | Number=Sing
цветов NOUN | Case=Gen | Gender=Masc | Number=Plur
на ADP
дом NOUN | Case=Acc | Gender=Masc | Number=Sing
Что ещё интересно по экосистеме:
— Корпус Nerus на миллион предложений с автоматической разметкой — для тех, кто хочет обучать свои модели
— Naeval — сравнения с другими решениями
Минусы тоже есть:
Синтаксический парсер обучался на новостных текстах. На полных предложениях работает идеально, на коротких коммерческих фразах вроде «доставка цветов на дом» связи между словами строит не всегда полностью.
Для морфологии это не важно — она и на короткой фразе работает на пять.
В итоге переезжаю на Natasha. Юридически чисто, точность даже лучше, поддерживается активно.
