Skip to content

авто генерация всех грамматических форм слов на основе заданных пар карты замен

Notifications You must be signed in to change notification settings

imbecility/morph_gen

Repository files navigation

MorphGen: Russian Morphological Mapping Tool

Загрузка готовых бинарников

Здесь представлены скомпилированные в C версии, не требующие установки Python. Все зависимости (включая словари) уже внутри.

Платформа Особенности Скачать
Windows x64 один .exe файл Скачать
Linux x64 (glibc) Ubuntu 18.04+, Debian, CentOS, и т.п. Скачать
Linux x64 (musl) для Alpine и Docker-контейнеров Скачать

MorphGen — это инструмент для автоматической генерации всех грамматических форм слов на основе заданных пар «исходное слово → целевое слово».

Если вам нужно заменить в тексте «рыцарь» на «паладин» так, чтобы во всех падежах и числах («рыцарю» -> «паладину», «рыцарей» -> «паладинов») замена произошла корректно — этот инструмент автоматизирует процесс создания словаря замен.

Для чего это нужно?

  1. Автозамены: Быстрое создание карт соответствий для замены слов в ответах ботов и т.п.
  2. Генерация контента: Для шаблонизаторов, где исходные данные меняются, а грамматика должна оставаться корректной.
  3. Локализация и моддинг: Когда нужно заменить термины в игре или приложении, сохраняя правильные падежные окончания.

Основные возможности

  • Полная парадигма: Генерирует все формы слова (падежи, числа, рода, одушевленность).
  • Умное сопоставление: Инструмент анализирует исходное слово и подбирает наиболее подходящую форму целевого слова, учитывая часть речи и грамматические признаки.
  • Собственный движок склонения (fallback): Если целевого слова нет в словаре pymorphy3, программа использует встроенную логику эвристического склонения (поддерживает большинство типов существительных, включая беглые гласные и разносклоняемые слова на -мя).
  • Обработка регистров: Умное сохранение регистра (например, «город» -> «Санкт-Петербург» корректно обработает заглавные буквы).
  • Разрешение коллизий: Если разные формы исходного слова пишутся одинаково, система использует систему приоритетов, чтобы выбрать наиболее важную форму для словаря замен.

Как это работает?

Вы подаете на вход список лемм (начальных форм). Программа:

  1. Анализирует исходное слово (часть речи, одушевленность, род).
  2. Находит все возможные формы исходного слова (склонения/спряжения).
  3. Принудительно генерирует соответствующие формы для целевого слова, используя встроенные алгоритмы склонения существительных и базу pymorphy3.
  4. Сохраняет результат в удобном для программиста формате JSON (плоская карта замен) и YAML (подробные данные).

Основные возможности

  • Умное склонение существительных: Использует встроенные схемы для 9 типов основ (мужской, женский, средний род, мягкие основы, основы на -ия/-ие и т.д.).
  • Поддержка всех частей речи: Благодаря pymorphy3, инструмент обрабатывает прилагательные (включая краткие формы и степени сравнения), глаголы, причастия и деепричастия.
  • Сохранение регистра: Если исходное слово в тексте было «Рыцарь» (TitleCase) или «РЫЦАРЬ» (UPPERCASE), сгенерированная замена подстроится под этот регистр.
  • Обработка орфографии: Автоматически применяет правила (например, «ы» после г, к, х, ж, ч, ш, щ меняется на «и»).

Быстрый старт

  1. Создайте файл rules.yaml (или используйте стандартное название):
    - source: гурманство
      target: гортанобесие
    - source: жаба
      target: ропуха
  2. Запустите исполняемый файл:
    ./morph_gen rules.yaml
  3. На выходе вы получите:
    • replacements.json — готовый словарь для программной замены {"жабы": "ропухи", "жабой": "ропухой", ...}.
    • rules_output.yaml — подробный отчет о генерации для проверки.

Сборка из исходников

Проект оптимизирован для компиляции в самодостаточные бинарники, которые не требуют наличия Python на целевой машине.

Windows

Запустите PowerShell скрипт:

./windows_build.ps1

Linux (через Docker)

Для максимальной совместимости (сборка под старые версии glibc и под musl/Alpine) используется Docker:

./build_in_docker.sh

About

авто генерация всех грамматических форм слов на основе заданных пар карты замен

Topics

Resources

Stars

Watchers

Forks