Skip to content

Поправки по QA перед 0.14.0: порог ударений, пустые статистики, вкладка «Стих» в демо - #70

Merged
SergeyShk merged 2 commits into
masterfrom
fix/qa-0.14.0
Sep 21, 2026
Merged

SergeyShk merged 2 commits into
masterfrom
fix/qa-0.14.0

Conversation

@SergeyShk

Copy link
Copy Markdown
Owner

Что сделано

  • Минимум свидетельств для метра. _fit_meter возвращает None, если словарных ударений многосложных слов меньше VERSE_MIN_STRESSES (6): фраза прозы в 30-90 символов получала метр в 43% случаев (detect_meter("Все счастливые семьи похожи друг на друга.") → 'хорей'), с порогом - в 14%; на RIFMA без метра остаются ещё 3% строф, почти все двустишия (порог 8 отсекал бы 12%, в том числе четверостишия с короткими строками). Итог на RIFMA: ударения 96.6%, рифмы 93.7% / 89.7%, метр не определён у 8% строф - цифры в документации обновлены, оговорка про одну-две строки добавлена в докстринг и docs. Тест на прозу переведён на фразу, чьи слова есть в словаре-фикстуре, и проверяет обе причины None.
  • Текст без русских слов. VerseStats("Hello world") даёт пустые статистики (n_lines 0, метр None, доли nan, accentuate() пустой), SourceError - только на тексте без слов, как у остальных классов; компонент verse больше не прерывает nlp.pipe на латинице и цифрах. Тест test_no_russian_words.
  • Doctest компонента verse. Пример с data_dir='/path/to/dicts' переставлен после вызова nlp(...), и doctest действительно проверяет ('хорей', 4) вместо пропуска через DatasetNotFoundError.
  • STRESS_CORRECTIONS. Убраны 16 поправок, совпадающих со словарём (казаков, колебался, мыслил, сродни, шипов и другие); осталось 204, все действующие, словарь перевёрстан.
  • Демо. Вкладка «Стих»: таблица VERSE_STATS_DESC, схемы строк cC с буквой рифмы и ударениями (до 40 строк), словарь ударений загружается при старте по образцу FreqDict, без словаря - подпись. Пример «Стихи» - «Челн томленья» Бальмонта целиком (хорей, -A-A, аллитерация); раньше в нём были два стихотворения разных метров через * * *, и метр честно выходил None.
  • Ноутбук 05_poetry.ipynb перевыполнен (числа в тексте не изменились в пределах округления), версия 0.14.0.dev6.

Не менялось: расписание examples.yml (ручной запуск прошёл, ждём следующего понедельника), CITATION.cff и установка из PyPI в ноутбуках - в релизном PR.

Проверка

  • pytest 1057 пройдено, 5 пропущено (только сетевые загрузки), покрытие 99%; doctest verse теперь выполняется.
  • RIFMA пересчитана текущим кодом; PoetryCorpus - метры по эпохам изменились не больше чем на 0.3 п.п.
  • Демо прогнано через compute() на трёх примерах и на «Hello world 123»; ruff, mypy, mkdocs build --strict, test_docs - чисто; ноутбук воспроизводится байт-в-байт.

🤖 Generated with Claude Code

…и, демо

Метр не подбирается, если словарных ударений многосложных слов меньше
VERSE_MIN_STRESSES (6): фраза прозы или одна-две строки укладывались в метр
почти всегда. Текст без русских слов даёт пустые статистики VerseStats вместо
SourceError, и компонент verse не прерывает nlp.pipe на латинице и цифрах.
Пример компонента в докстринге переставлен так, чтобы doctest выполнялся,
а не пропускался из-за словаря по несуществующему пути. Из STRESS_CORRECTIONS
убраны 16 поправок, совпадающих со словарём. В демо добавлена вкладка «Стих»
с таблицей статистик, схемами строк, рифмой и ударениями; пример «Стихи» -
«Челн томленья» целиком, вместо двух стихотворений разных метров. Ноутбук
о поэзии перевыполнен. Версия 0.14.0.dev6.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@SergeyShk SergeyShk added bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request labels Sep 21, 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.

Проверил ветку: тесты и doctest компонента verse проходят, RIFMA и PoetryCorpus пересчитаны, демо прогнано на пяти примерах и на тексте без кириллицы, из STRESS_CORRECTIONS убраны ровно 16 совпадающих со словарём записей. Два уточнения по формулировкам ниже.

Comment thread docs/stats/verse_stats_funcs.md Outdated
Comment thread ruts/verse_stats.py Outdated
Под порог VERSE_MIN_STRESSES на RIFMA попадают в основном двустишия, остальные -
трёх- и четверостишия с короткими строками, на PoetryCorpus - 11 стихотворений;
пустые статистики даёт текст с буквами, но без русских слов, а текст без слов
поднимает SourceError.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@SergeyShk
SergeyShk merged commit 17acf51 into master Sep 21, 2026
11 of 12 checks passed
@SergeyShk
SergeyShk deleted the fix/qa-0.14.0 branch September 21, 2026 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants