Python library for analysis and generation of poems in Russian
Install
git clone https://github.com/IlyaGusev/rupo
cd rupo
pip install -r requirements.txt
sh download.sh
Example
https://colab.research.google.com/drive/1WBl9erJvC9Oc9PjCD8JyC_40TDUqahCx
Usage manual
Analysis
>>> from rupo.api import Engine
>>> engine = Engine(language="ru")
>>> engine.load(<stress model path>, <zalyzniak dict path>)
>>> engine.get_stresses("корова")
[3]
>>> engine.get_word_syllables("корова")
["ко", "ро", "ва"]
>>> engine.is_rhyme("корова", "здорова")
True
>>> text = "Горит восток зарёю новой.\nУж на равнине, по холмам\nГрохочут пушки. Дым багровый\nКругами всходит к небесам."
>>> engine.classify_metre(text)
iambos
Generation
Script for poem generation. It can work in two different modes: sampling or beam search.
python generate_poem.py
Argument | Default | Description |
---|---|---|
--metre-schema | +- | feet type: -+ (iambos), +- (trochee), ... |
--rhyme-pattern | abab | rhyme pattern |
--n-syllables | 8 | number of syllables in line |
--sampling-k | 50000 | top-k words to sample from (sampling mode) |
--beam-width | None | width of beam search (beam search mode) |
--temperature | 1.0 | sampling softmax temperature |
--last-text | None | custom last line |
--count | 100 | count of poems to generate |
--model-path | None | optional path to generator model directory |
--token-vocab-path | None | optional path to vocabulary |
--stress-vocab-path | None | optional path to stress vocabulary |
Models
- Generator: https://www.dropbox.com/s/dwkui2xqivzsyw5/generator_model.zip
- Stress predictor: https://www.dropbox.com/s/i9tarc8pum4e40p/stress_models_14_05_17.zip
- G2P: https://www.dropbox.com/s/7rk135fzd3i8kfw/g2p_models.zip
- Dictionaries: https://www.dropbox.com/s/znqlrb1xblh3amo/dict.zip
Литература
- Брейдо, 1996, Автоматический анализ метрики русского стиха
- Каганов, 1996, Лингвистическое конструирование в системах искусственного интеллекта
- Козьмин, 2006, Автоматический анализ стиха в системе Starling
- Гришина, 2008, Поэтический корпус в рамках НКРЯ: общая структура и перспективы использования
- Пильщиков, Старостин, 2012, Автоматическое распознавание метра: проблемы и решения
- Барахнин, 2015, Алгоритмы комплексного анализа русских поэтических текстов с целью автоматизации процесса создания метрических справочников и конкордансов, сама система