Skip to content

Добавить ноутбук со сквозным разбором текста - #61

Merged
SergeyShk merged 2 commits into
masterfrom
examples/text-walkthrough
Sep 19, 2026
Merged

SergeyShk merged 2 commits into
masterfrom
examples/text-walkthrough

Conversation

@SergeyShk

@SergeyShk SergeyShk commented Sep 19, 2026 •

Copy link
Copy Markdown
Owner

Что сделано

Первый ноутбук с примерами - examples/01_text_walkthrough.ipynb: рассказ Чехова «Смерть чиновника» (677 слов, из RusLit) проходит через все инструменты библиотеки по порядку - экстракторы предложений, слов и символьных N-грамм; BasicStats с распределением по слогам и профилем пунктуации; ReadabilityStats с тремя пресетами коэффициентов в одной таблице; DiversityStats с оконным расчетом; MorphStats с разбором предложения; StyleStats на рассказе против канцелярита; PhonStats и syllabify; SyntaxStats и CohesionStats по Doc spaCy; LexicalStats по частотному словарю; подсветка, закон Ципфа с подгонкой и кривая длин предложений на одной фигуре. В конце все статистики подключаются компонентами spaCy, один проход nlp.pipe по TextsByGrade собирает таблицу по классам текста и корреляции Спирмена с классом (сводный класс 0.81, глубина дерева 0.75, MTLD 0). Каждый раздел ссылается на страницу документации.

Установочная ячейка ставит ruts и ru_core_news_sm (spacy download ru_core_news_sm -q, флаги только после имени модели) только если их нет, поэтому ноутбук одинаково работает в Colab и в окружении разработки. Выводы всех ячеек сохранены в файле (230 КБ, две картинки и HTML подсветки), ноутбук читается на GitHub без запуска.

Инфраструктура:

  • отдельная группа зависимостей examples (jupyterlab, nbmake, nbstripout), в dev не входит: make deps и CI ставят --all-groups --no-group examples;
  • make notebooks ставит группу, выполняет ноутбуки и записывает выводы (pytest --nbmake --overwrite), затем nbstripout убирает метаданные выполнения и версию Python - повторный прогон даёт побайтно тот же файл; тот же хук в pre-commit;
  • ruff проверяет и форматирует ноутбуки (extend-include = ["*.ipynb"], examples в make ruff и в job lint);
  • workflow examples.yml прогоняет ноутбуки по понедельникам и вручную - в основную CI не включен, так как тянет модель spaCy, словарь и наборы данных;
  • страница «Примеры» в документации (ru/en) в разделе «Главная», ссылка после быстрого старта в README и docs/index.md, бейдж «Open in Colab» в README, examples/README.md с таблицей ноутбуков, examples/ в структуре проекта и CONTRIBUTING.

В пакете одно изменение: HighlightedText.__repr__ - HighlightedText(counts={...}) вместо адреса объекта, чтобы вывод ячейки с подсветкой не менялся от запуска к запуску. Версия 0.14.0.dev1.

Проверка

  • make notebooks - ноутбук выполняется за 17 с, ошибок и предупреждений в выводах нет, локальных путей и адресов объектов в файле нет; два запуска подряд дают одинаковый файл.
  • uv sync --all-groups --no-group examples --dry-run - без группы examples в окружение не попадают 74 пакета Jupyter.
  • make lint, pre-commit run --all-files (ноутбук проходит check-added-large-files), tests/test_docs.py на паритет ru/en, mkdocs build --strict.

🤖 Generated with Claude Code

examples/01_text_walkthrough.ipynb: рассказ Чехова «Смерть чиновника»
через все инструменты библиотеки - экстракторы, классы статистик,
подсветка, закон Ципфа и длины предложений, компоненты spaCy с nlp.pipe
по набору TextsByGrade в таблицу по классам. Выводы сохранены, в Colab
ноутбук ставит библиотеку и модель сам.

Группа зависимостей examples (jupyterlab, nbmake), цель make notebooks,
ruff по ноутбукам в lint и CI, workflow examples.yml по расписанию
и вручную, страница «Примеры» в документации, ссылки и бейдж Colab
в README.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@SergeyShk SergeyShk added documentation Improvements or additions to documentation enhancement New feature or request labels Sep 19, 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.

Прогнал ноутбук локально (make notebooks) и установочную ячейку в чистом виде. Три замечания ниже, первое блокирует запуск в Colab.

Comment thread examples/01_text_walkthrough.ipynb Outdated
Comment thread pyproject.toml Outdated
Comment thread Makefile
…ноутбуков воспроизводимым

spacy download принимает флаги только после имени модели, nltk
импортируется после установки ruts. Группа examples не входит в dev,
CI и make deps ставят --no-group examples, make notebooks сам ставит
группу. После выполнения nbstripout убирает метаданные выполнения
и версию Python (тот же хук в pre-commit), у HighlightedText появился
__repr__ без адреса объекта. Версия 0.14.0.dev1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@SergeyShk
SergeyShk merged commit 8aadcc4 into master Sep 19, 2026
11 of 12 checks passed
@SergeyShk
SergeyShk deleted the examples/text-walkthrough branch September 19, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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