TGViewer
Ленивый программист поднимается на вершину поисковых систем Ленивый программист поднимается на вершину поисковых систем @taidana_programmer · 1.96K subscribers
Post #781 1.08K
MyStem от Яндекса — морфология русского языка

Тыкаюсь в разные инструменты для придумывания новых идей, и наткнулся на MyStem.

Это бинарник от Яндекса, который умеет одну вещь: разбирать русские слова по морфологии. Подаёшь на вход «бежал» — он отвечает «бежать, глагол, прошедшее время, единственное число, мужской род». Использовался внутри Яндекс.Поиска для нормализации запросов, потом выложили в публичный доступ.

Версия 3.1, под Linux/Mac/Windows.

Что умеет конкретно

Лемматизация — сводит любую форму к начальной.

«Бежал», «бежим», «бежавший» → «бежать». «Цветам», «цветов» → «цветок».

На практике: поисковик понимает, что «куплю кроссовки» и «купить кроссовок» — одно и то же.

POS-теггинг — часть речи.

Метки: S существительное, A прилагательное, V глагол, ADV наречие, PR предлог, NUM числительное, плюс местоимения и служебные.

Грамматические признаки — падежи, числа, роды.

MyStem отдаёт признаки одной строкой через запятые, в поле gr. Лемма — в поле lex.

Подаём фразу доставка цветов на дом:

echo "доставка цветов на дом" | mystem -ni --format json


Реальный вывод MyStem 3.1:

{"analysis":[{"lex":"доставка","gr":"S,жен,неод=им,ед"}],"text":"доставка"}
{"analysis":[{"lex":"цветок","gr":"S,муж,неод=род,мн"},{"lex":"цвет","gr":"S,муж,неод=род,мн"}],"text":"цветов"}
{"analysis":[{"lex":"на","gr":"PR="},{"lex":"на","gr":"PART="}],"text":"на"}
{"analysis":[{"lex":"дом","gr":"S,муж,неод=вин,ед"},{"lex":"дом","gr":"S,муж,неод=им,ед"}],"text":"дом"}


Расшифровка gr-строки для слова доставка (S,жен,неод=им,ед):
- S — существительное
- жен — женский род
- неод — неодушевлённое
- = — разделитель постоянных и изменяемых признаков
- им — именительный падеж
- ед — единственное число

Если у слова несколько возможных разборов, MyStem отдаёт все. «Цветов» — родительный мн. от «цветок» (растение) или от «цвет» (расцветка). «На» — предлог или частица (как в «На, держи»). Самый вероятный вариант стоит первым.

Снятие омонимии.

«Стекло» — глагол или существительное? «Печь» — готовить или мебель? MyStem смотрит соседние слова и выбирает наиболее вероятный вариант.

Где это применяют

- Поиск по сайту с пониманием форм — человек ищет «бежать», находит статьи со словами «бегу», «бежал», «бежавший»
- Кластеризация семантики — собрал кучу запросов, привёл к леммам, объединил похожие
- Анализ отзывов — выделить существительные и прилагательные, увидеть на чём акцентируют клиенты
- Чат-боты — понимать ввод в любых формах
- Генерация заголовков с правильным склонением — шаблон «купить X в Y» работает для любых X и Y


Альтернативы
P.S. Но всё это нельзя делать на MyStem от Яндекса по лицензионному соглашению. Поэтому есть альтернативы:

- pymorphy3 — на Python
- phpMorphy — нативно на PHP
- spaCy с ru-моделью — на Python
  • 👍 8
  • ✍ 5
  • ❤ 3
  • 🔥 3
  • 🤣 1
More from @taidana_programmer
  1. Oct 4, 2026В папке 24 не удачных образа. и +1 https://t.me/taidana_programmer/881?comment=15128 И это…
  2. Oct 3, 2026Публикую первые 5 минут gameplay задуманной VR игры Пытался многое улучшить, исправить, уб…
  3. Oct 2, 2026Codex. Рад, что и тут разные сессии могут общаться между собой и одновременно выполнять св…
  4. Oct 2, 2026Вот и моя видеокарта для "работы" приехала Полдня помучался с установкой, поиском БП. в VR…
  5. Oct 1, 2026Вот и апелляцию рассмотрели. Ну что-ж там chatgpt как раз сделал новую подписку за 500$ Вр…
  6. Sep 30, 2026И приплыли
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →