Skip to content

Отсеивать подгонку метра по доле перенесённых ударений и дополнить поправки словаря - #69

Merged
SergeyShk merged 3 commits into
masterfrom
fix/verse-stress-moves
Sep 20, 2026

Conversation

@SergeyShk

@SergeyShk SergeyShk commented Sep 20, 2026 •

Copy link
Copy Markdown
Owner

Что сделано

Проверка подгонки на уровне текста. Подгонка под метр переносит на икт словарные ударения двусложных слов на слабых позициях как подвижных форм (воды́ - во́ды). У дольника, акцентного стиха и силлабики с частыми двусложными словами она переносила ударения любых слов (ко́лпак, у́мел, лга́ла) и получала ложный хорей или ямб: доля отклонений после переноса оказывалась ниже порога VERSE_MAX_DEVIATIONS, а окончания с перенесённым ударением переставали рифмоваться. Теперь метр не определён, если перенести пришлось больше 15% словарных ударений многосложных слов (VERSE_MAX_MOVED) при четырёх и более переносах (VERSE_MIN_MOVED). Минимум защищает короткие строфы, где три подвижные формы в четверостишии - норма и доля шумит. На RIFMA переносов больше 15% лишь у 1% строф, у Тредиаковского, акцентного стиха и песен - у трети текстов и больше. Правило переноса в _movable не менялось.

Поправки словаря (STRESS_CORRECTIONS). Добавлены 63 формы, у которых словарь Козиева расходится с разметкой RIFMA в 80% и более случаев из пяти и больше вхождений: формы без ё (бе́рег, вперёд, моём), глагол спеши́ть (в словаре везде спе́ш-), имена (Ива́н, Лау́ры), частые в стихе формы существительных (земли́, судьбы́, весны́, луны́, две́ри), бою́. Форма создала исключена: норма создала́. На отложенной половине RIFMA поправки, собранные по другой половине, дают +0.1-0.2 п.п. совпадения ударений и -0.2-0.4 п.п. строф без метра.

Тесты, документация, ноутбук. Тест на порог переносов (два и три переноса - метр есть, четыре из восемнадцати - нет, четыре из сорока двух - есть); тест поправок в word_stress; шаг 4 алгоритма в verse_stats_funcs (ru/en) и докстринге. В документации и ноутбуке оговорено, что часть поправок собрана по разметке RIFMA и оценка ударений отчасти внутривыборочная. Ноутбук 05_poetry.ipynb перевыполнен, цифры в тексте обновлены.

Цифры

RIFMA (5121 строфа), два изменения по отдельности; точность ударений многосложных слов / рифмы, точность и полнота / доля строф без метра:

старые поправки новые поправки
без порога переносов 96.2% / 93.5%, 90.1% / 4.9% 96.4% / 93.5%, 90.3% / 4.5%
с порогом переносов - 96.4% / 93.5%, 90.3% / 4.6%

Порог срабатывает на RIFMA у 6 строф, точность ударений на них растёт с 56% до 84%. Основной плюс по ударениям - от словаря, порог нужен для тоники.

PoetryCorpus: метр не подобран у 17.5% стихотворений вместо 15.4%. Тредиаковский (силлабика) 81% вместо 62%, Маяковский 77% вместо 69%, Высоцкий 36% вместо 31%, Рождественский 50% вместо 37%; у Пушкина 10% вместо 9% (элегический дистих), у Тютчева и Фета без изменений. Песни «Группа крови» и «Прыгну со скалы» и их куплеты по отдельности - без метра; у куплетов «Прыгну со скалы» схема рифмовки AABB вместо ----.

Версия 0.14.0.dev5.

🤖 Generated with Claude Code

…оправки словаря

Подгонка под метр переносила словарные ударения всех двусложных слов строки
на слабых позициях, и дольник или акцентный стих с частыми двусложными словами
получал ложный хорей или ямб с долей отклонений ниже порога, а окончания
с перенесенным ударением переставали рифмоваться. На RIFMA одиночный перенос
совпадает с разметкой в 90% случаев, парные - в 66%, тройные - в 50%, поэтому
переносится только единственное в строке слово на слабой позиции.

В STRESS_CORRECTIONS добавлены 63 формы, у которых словарь расходится с ручной
разметкой RIFMA в 80% и более случаев из пяти и больше вхождений: формы без ё
(бе́рег, вперёд, моём), глагол спеши́ть, имена, частые в стихе формы
существительных (земли́, судьбы́, весны́, луны́), а также бою́. На отложенной
половине RIFMA поправки, собранные по другой половине, дают +0.1-0.2 п.п.
совпадения ударений.

Итог на RIFMA: ударения многосложных слов 96.2% -> 96.3%, рифмы без изменений,
метр не определен у 5.3% строф вместо 4.9%. На PoetryCorpus метр не подобран
у 17% стихотворений вместо 15%: у Тредиаковского 80% вместо 60%, потери
у классиков - гекзаметры, полиметрия и прозаические сноски корпуса.
Ноутбук о поэзии перевыполнен, цифры в тексте обновлены.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@SergeyShk SergeyShk added the bug Something isn't working label Sep 20, 2026

@SergeyShk SergeyShk left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Прогнал обе части PR по отдельности на RIFMA и PoetryCorpus. Поправки словаря проверил по разметке - все 63 формы подтверждаются (кроме «бою» и «спеша» с 4 вхождениями, но они оговорены). С правилом переноса есть проблема, подробности в комментарии к _movable.

Comment thread ruts/verse_stats.py Outdated
Comment thread examples/05_poetry.ipynb Outdated
…реносов

Запрет парных переносов в _movable вредил коротким метрическим строфам:
одна строка с двумя омографами перевешивала VERSE_MAX_DEVIATIONS, и на RIFMA
правило само по себе давало -0.13 п.п. по ударениям и +0.9 п.п. строф без
метра. Правило переноса возвращено, а проверка перенесена на уровень текста:
метр не определен, если подгонка перенесла на икт больше VERSE_MAX_MOVED (15%)
словарных ударений многосложных слов при VERSE_MIN_MOVED (4) и более
переносах. Минимум защищает короткие строфы, где три подвижные формы в
четверостишии - норма и доля шумит.

На RIFMA проверка срабатывает у 6 строф, и точность ударений на них растет
с 56% до 84%: в целом ударения 96.2% -> 96.4% (со старым правилом и новыми
поправками словаря - 96.4%), метр не определен у 4.6% строф вместо 4.9%.
На PoetryCorpus метр не подобран у 17.5% стихотворений вместо 15.4%:
у Тредиаковского 81% вместо 62%, у Маяковского 77% вместо 69%, у Пушкина,
Тютчева и Фета изменения в пределах процента - элегический дистих и дольники.

В документации и ноутбуке оговорено, что часть поправок словаря собрана
по разметке RIFMA и оценка ударений отчасти внутривыборочная; ноутбук
перевыполнен, цифры в тексте обновлены.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@SergeyShk SergeyShk changed the title Переносить на икт только единственное в строке ударение и дополнить поправки словаря Отсеивать подгонку метра по доле перенесённых ударений и дополнить поправки словаря Sep 20, 2026
@SergeyShk
SergeyShk merged commit a2be155 into master Sep 20, 2026
11 of 12 checks passed
@SergeyShk
SergeyShk deleted the fix/verse-stress-moves branch September 20, 2026 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants