rupo.metre package

Submodules

rupo.metre.metre_classifier module

class rupo.metre.metre_classifier.AccentCorrection(line_number: int, word_number: int, syllable_number: int, word_text: str, accent: int) → None[исходный код]
Базовые классы: rupo.util.mixins.CommonMixin

Исправление ударения.

class rupo.metre.metre_classifier.ClassificationResult(count_lines: int = 0) → None[исходный код]
Базовые классы: rupo.util.mixins.CommonMixin

Результат классификации стихотворения по метру.

get_metre_errors_count()[исходный код]
Результат:получить количество ошибок на заданном метре.
static str_corrections(collection: typing.List[rupo.metre.metre_classifier.AccentCorrection]) → str[исходный код]
Параметры:collection – список исправлений.
Результат:его строковое представление.
to_json()[исходный код]
Результат:сериализация в json.
class rupo.metre.metre_classifier.CompilationsSingleton[исходный код]
Базовые классы: object
compilations = None
classmethod get()[исходный код]
class rupo.metre.metre_classifier.LineClassificationResult → None[исходный код]
Базовые классы: rupo.util.mixins.CommonMixin

Результат классификации строки.

get_best_metres() → typing.List[str][исходный код]
Результат:метры с наименьшим количеством ошибок.
get_best_pattern(metre_name: str) → str[исходный код]
Результат:лучший шаблон метра.
store_best_result(metre_name: str, pattern: str, error_count: int) → None[исходный код]

Сохранить результат сравнения строки с шаблоном метра.

Параметры:
  • metre_name – имя метра.
  • pattern – шаблон метра.
  • error_count – количество ошибок.
class rupo.metre.metre_classifier.MetreClassifier[исходный код]
Базовые классы: object

Классификатор, считает отклонения от стандартных шаблонов ритма(метров).

border_syllables_count = 18
static classify_metre(markup)[исходный код]

Классифицируем стихотворный метр.

Параметры:markup – разметка.
Результат:результат классификации.
static get_improved_markup(markup: rupo.main.markup.Markup, result: rupo.metre.metre_classifier.ClassificationResult) → rupo.main.markup.Markup[исходный код]

Улучшаем разметку после классификации метра.

Параметры:
  • markup – начальная разметка.
  • result – результат классификации.
Результат:

улучшенная разметка.

static get_ml_resolutions(result: rupo.metre.metre_classifier.ClassificationResult, accent_classifier: rupo.accents.classifier.MLAccentClassifier) → None[исходный код]

Пытаемся снять омонимию с предыдущих этапов древесным классификатором.

Параметры:
  • result – результат классификации.
  • accent_classifier – древесный классификатор ударений.
static improve_markup(markup: rupo.main.markup.Markup, accents_classifier: rupo.accents.classifier.MLAccentClassifier = None) → typing.Tuple[rupo.main.markup.Markup, rupo.metre.metre_classifier.ClassificationResult][исходный код]

Улучшение разметки метрическим и машинным классификатором.

Параметры:
  • markup – начальная разметка.
  • accents_classifier – классификатор ударений.
line_inner_coef = OrderedDict([('iambos', 1.0), ('choreios', 1.0), ('daktylos', 1.2), ('amphibrachys', 1.2), ('anapaistos', 1.2), ('dolnik3', 2.0), ('dolnik2', 2.0), ('taktovik3', 3.0), ('taktovik2', 3.0)])
line_outer_coef = OrderedDict([('iambos', 1.0), ('choreios', 1.0), ('daktylos', 1.0), ('amphibrachys', 1.0), ('anapaistos', 1.0), ('dolnik3', 0.8), ('dolnik2', 0.8), ('taktovik3', 0.6), ('taktovik2', 0.6)])
metres = OrderedDict([('iambos', '(us)*(us)(u)?(u)?'), ('choreios', '(su)*(s)(u)?(u)?'), ('daktylos', '(suu)*(s)(u)?(u)?'), ('amphibrachys', '(usu)*(us)(u)?(u)?'), ('anapaistos', '(uus)*(uus)(u)?(u)?'), ('dolnik3', '(u)?(u)?((su)(u)?)*(s)(u)?(u)?'), ('dolnik2', '(u)?(u)?((s)(u)?)*(s)(u)?(u)?'), ('taktovik3', '(u)?(u)?((su)(u)?(u)?)*(s)(u)?(u)?'), ('taktovik2', '(u)?(u)?((s)(u)?(u)?)*(s)(u)?(u)?')])

rupo.metre.patterns module

class rupo.metre.patterns.CompiledPatterns(metres: typing.Dict[str, str], border: int) → None[исходный код]
Базовые классы: object

Скомпилированные шаблоны (нужно, чтобы не пересчитывать их каждый раз).

get_patterns(metre_name: str, syllables_count: int) → typing.List[str][исходный код]

Получить или посчитать шаблоны метра для заданного метра.

Параметры:
  • metre_name – название метра.
  • syllables_count – количество слогов в шаблоне.
Результат:

итоговые скомпилированные шаблоны метра.

class rupo.metre.patterns.FlagEnum[исходный код]
Базовые классы: enum.Enum

An enumeration.

ONE = ''
ZERO_OR_ONE = '?'
ZERO_TO_INF = '*'
class rupo.metre.patterns.Group(exp: str, flag: rupo.metre.patterns.FlagEnum) → None[исходный код]
Базовые классы: object

Группа - выражение в круглых скобках и её модификатор.

class rupo.metre.patterns.Patterns[исходный код]
Базовые классы: object
static compile_pattern(metre_pattern: str, l: int) → typing.List[str][исходный код]

Скомпилировать заданное выражение.

Параметры:
  • metre_pattern – выражение.
  • l – итоговое количество символов.
Результат:

скомпилированные шаблоны.

rupo.metre.test_metre_classifier module

class rupo.metre.test_metre_classifier.TestMetreClassifier(methodName='runTest')[исходный код]
Базовые классы: unittest.case.TestCase
classmethod setUpClass()[исходный код]
test_classification_result()[исходный код]
test_metre_classifier()[исходный код]

rupo.metre.test_patterns module

class rupo.metre.test_patterns.TestPatterns(methodName='runTest')[исходный код]
Базовые классы: unittest.case.TestCase
test_patterns()[исходный код]

Module contents