RuPo: library for russian poetry analysis and generation


Keywords
poetry, nlp, russian
License
Apache-2.0
Install
pip install rupo==0.2.5

Documentation

Python library for analysis and generation of poems in Russian

Current version on PyPI Python versions Build Status Code Climate Documentation Status

Install

git clone https://github.com/IlyaGusev/rupo
cd rupo
pip install -r requirements.txt
sh download.sh

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

Литература