Skip to main content

Проект языковой модели для проведения морфемного анализа и сегментации слов русского языка.

Project description

ruMorpheme - Russian Morphemes Segmentation

Проект языковой модели для проведения морфемного анализа и сегментации слов русского языка.

Обученная модель способна сегментировать слова, выделяя в них:

  • приставки (PREF)
  • корни (ROOT)
  • соединительные гласные (LINK)
  • дефисы (HYPH)
  • суффиксы (SUFF)
  • постфиксы (POSTFIX)
  • окончания (END)

Веса модели evilfreelancer/ruMorpheme-v0.1 на HuggingFace.

Вдохновлён кодовой базой проекта AlexeySorokin/NeuralMorphemeSegmentation, который реализован в рамках публикации "Deep Convolutional Networks for Supervised Morpheme Segmentation of Russian Language" за авторством Алексея Сорокина и Анастасии Кравцовой.

Примеры

Пример работы модели:

В	в:ROOT	98.59
воскресенье	воскрес:ROOT/ень:SUFF/е:END	99.30 96.58 100.00
мы	мы:ROOT	99.77
решили	решил:ROOT/и:END	85.80 100.00
перезапланировать	пере:PREF/за:PREF/план:ROOT/ир:SUFF/ова:SUFF/ть:SUFF	100.00 77.91 98.43 100.00 99.98 98.37

Или в формате JSONL:

{"word": "В", "morphemes": [{"text": "в", "type": "ROOT", "prob": "98.59"}]}
{"word": "воскресенье", "morphemes": [{"text": "воскрес", "type": "ROOT", "prob": "99.3"}, {"text": "ень", "type": "SUFF", "prob": "96.58"}, {"text": "е", "type": "END", "prob": "100.0"}]}
{"word": "мы", "morphemes": [{"text": "мы", "type": "ROOT", "prob": "99.77"}]}
{"word": "решили", "morphemes": [{"text": "решил", "type": "ROOT", "prob": "85.8"}, {"text": "и", "type": "END", "prob": "100.0"}]}
{"word": "перезапланировать", "morphemes": [{"text": "пере", "type": "PREF", "prob": "100.0"}, {"text": "за", "type": "PREF", "prob": "77.91"}, {"text": "план", "type": "ROOT", "prob": "98.43"}, {"text": "ир", "type": "SUFF", "prob": "100.0"}, {"text": "ова", "type": "SUFF", "prob": "99.98"}, {"text": "ть", "type": "SUFF", "prob": "98.37"}]}

Установка и запуск

Склонируем проект и подготовим окружение:

git clone https://github.com/EvilFreelancer/ruMorpheme.git
cd ruMorpheme
python3 -m venv venv
pip install -r requirements.txt

Активируем окружение:

source venv/bin/activate

Как пользоваться

Тренировка модели

python3 train.py config/ruMorpheme.json

По завершению тренировки будут созданы:

  • model/pytorch-model.bin - веса модели
  • model/config.json - конфигурация модели
  • model/vocab.json - словарь необходимый для работы предикшена

Валидация модели

python3 eval.py config/ruMorpheme.json

Отчёт валидации будет в models/evaluation_report.txt.

Использование модели

Запуск тестового предикшена из файла input_text.txt:

python predict.py input_text.txt --model-path=evilfreelancer/ruMorpheme-v0.1

Если не указывать --model-path то модель и конфигурация будут прочитаны из директории ./model.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ruMorpheme-0.1.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file ruMorpheme-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ruMorpheme-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for ruMorpheme-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1272f00dffb4ed693bc1d3e6e3c87b1225d576be72670bfb546523cb502513c
MD5 46e856d089851ef4c730dc49a40e19b8
BLAKE2b-256 64540003b73d961e84612c9fbbfaebf120ecbb87db37dc762e524be334187fb0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page