From 73c32d10c4ef7689704d8114aa22fd6f4a2e870f Mon Sep 17 00:00:00 2001 From: Vladislav Kopnin Date: Mon, 26 Oct 2026 13:27:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=84=D0=B8=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D1=8D=D0=BA=D1=81=D0=BF=D0=B5=D1=80=D0=B8=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D1=8B=20=D0=B8=20=D0=B8=D1=82=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=D0=B2=D1=8B=D0=B9=20=D0=BE=D1=82=D1=87=D1=91=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 + lab1/FINAL_REPORT.md | 674 ++++++++++++++++++++++++++ lab1/FINAL_RESULTS.csv | 30 ++ lab1/README.md | 3 + lab1/RESULTS_ANALYSIS.md | 4 + lab1/RUNBOOK.md | 28 ++ lab1/scripts/run_final_experiments.py | 664 +++++++++++++++++++++++++ lab1/scripts/run_finalists.py | 130 +++++ 8 files changed, 1537 insertions(+) create mode 100644 lab1/FINAL_REPORT.md create mode 100644 lab1/FINAL_RESULTS.csv create mode 100644 lab1/scripts/run_final_experiments.py create mode 100644 lab1/scripts/run_finalists.py diff --git a/README.md b/README.md index ae0d041..7fb3700 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,10 @@ nlp/ - [`lab1/TUNING.md`](lab1/TUNING.md) — настройка параметров и перебор. - [`lab1/RESULTS_ANALYSIS.md`](lab1/RESULTS_ANALYSIS.md) — анализ результатов follow-up серии и выводы. +- [`lab1/FINAL_REPORT.md`](lab1/FINAL_REPORT.md) — итоговый отчёт по всей + работе и экспериментам. +- [`lab1/FINAL_RESULTS.csv`](lab1/FINAL_RESULTS.csv) — сводная таблица + результатов. - [`lab1/FOLLOWUP_EXPERIMENTS.md`](lab1/FOLLOWUP_EXPERIMENTS.md) — протокол follow-up экспериментов. - [`lab1/PRESENTATION_OUTLINE.md`](lab1/PRESENTATION_OUTLINE.md) — структура diff --git a/lab1/FINAL_REPORT.md b/lab1/FINAL_REPORT.md new file mode 100644 index 0000000..e5ef093 --- /dev/null +++ b/lab1/FINAL_REPORT.md @@ -0,0 +1,674 @@ +# Итоговый отчёт по лабораторной работе + +## Стилометрическая классификация реплик персонажей Stardew Valley + +--- + +## Аннотация + +Работа посвящена проверке того, можно ли стилометрически различить персонажей +игры Stardew Valley по отдельным репликам, если все реплики написаны одним +автором. Корпус содержит 2005 реплик, принадлежащих 34 персонажам; классы +неравномерны (от 15 до 139 реплик). Основная задача — многоклассовая +классификация; основная метрика — макро-усреднённая F-мера (macro-F1). + +В работе построены ручные стилометрические признаки, символьные и +частеречные n-граммы, а также несколько вариантов латентно-семантического +анализа (LSA). Сравнивались логистическая регрессия, линейный метод опорных +векторов, наивный байесовский классификатор, случайный лес, сверхслучайные +деревья, метод ближайших соседей и дельта Барроуза. Использована повторная +стратифицированная перекрёстная проверка, вложенная настройка гиперпараметров, +контроль перестановкой меток и анализ ошибок. + +Лучший наблюдаемый результат — мягкое голосование трёх моделей: macro-F1 +около **0,304** при 5-блочной перекрёстной проверке и **0,333** на отдельной +стратифицированной отложенной выборке. Однако состав ансамбля выбирался по +результатам предыдущих серий, поэтому более консервативная оценка — +**0,275** для модели ExtraTrees с расширенным символьным словарём при +вложенном выборе конфигурации. Случайный уровень для 34 классов составляет +около **0,029**. + +Главный содержательный вывод: персонажи действительно различимы, но +основной вклад дают лексико-тематические признаки и символьные n-граммы, а не +функциональные слова и синтаксис. При замене содержательных слов на +нейтральный маркер качество ExtraTrees падает с 0,248 до 0,113. Следовательно, +результат корректно интерпретировать как различимость речевых масок по +лексико-тематическому профилю, а не как доказательство «чистого» авторского +или персонажного идиолекта. + +--- + +## 1. Введение + +### 1.1. Постановка задачи + +Рассматривается задача классификации коротких текстов — игровых реплик — по +принадлежности персонажу. Каждая реплика относится ровно к одному из 34 +классов. Требуется: + +1. построить признаки, отражающие стилометрические свойства реплик; +2. сравнить несколько семейств классификаторов; +3. оценить качество с учётом дисбаланса классов и малого объёма данных; +4. проверить, обусловлен ли результат стилем или содержанием; +5. сформулировать ограничения и направления дальнейшей работы. + +### 1.2. Исследовательский вопрос + +**Вопрос:** различимы ли 34 персонажа Stardew Valley по стилометрическим +признакам отдельных реплик, если все реплики написаны одним автором? + +Это не авторская атрибуция. Автор один; речь идёт о классификации **речевых +масок персонажей** (character idiolect). Положительный результат означает, +что созданные автором речевые маски статистически различимы, но не означает, +что у персонажей разные авторы. + +### 1.3. Гипотезы + +| Обозначение | Гипотеза | +|---|---| +| H1 | Функциональные слова, частеречные признаки и символьные n-граммы различают персонажей выше случайного уровня | +| H2 | На коротких репликах частеречные и символьные признаки устойчивее словарного богатства и читаемости | +| H3 | LSA по всем словам отражает тему, а LSA по частеречным последовательностям — стиль | +| H4 | Качество зависит от длины реплики | +| H5 | Ошибки концентрируются вокруг персонажей со сходным возрастом, полом или ролью | + +--- + +## 2. Корпус + +### 2.1. Объём и разметка + +| Параметр | Значение | +|---|---| +| Реплик | 2005 | +| Персонажей | 34 | +| Словоупотреблений | около 38,2 тыс. | +| Средняя длина реплики | 19,1 слова | +| Медиана | 17 слов | +| Минимум / максимум | 3 / 78 слов | +| Классы | 15–139 реплик | +| Точные дубли реплик | 0 | + +Корпус хранится в кодировке cp1251; предусмотрено чтение XLSX. Разметка +содержит только текст реплики и имя персонажа. Метаданные о поле, возрасте, +виде и роли персонажей хранятся отдельно и используются только для анализа +ошибок, не как признаки классификатора. + +### 2.2. Ограничения корпуса + +- Корпус прошёл ручную фильтрацию: короткие и общие фразы удалены. Точные + правила очистки не сохранились, поэтому воспроизвести исходное + распределение невозможно. +- Реплики короткие; признаки словарного богатства и читаемости на них + нестабильны. +- Классы неравномерны; редкие персонажи имеют широкие доверительные + интервалы. +- Нет идентификаторов сцен и диалогов; нельзя учесть корреляцию реплик + внутри одной сцены. +- Все тексты написаны одним автором. + +--- + +## 3. Методика + +### 3.1. Предобработка + +1. Приведение Unicode: многоточия, кавычки, тире, неразрывные пробелы. +2. Замена плейсхолдеров ``, ``, ``, ``, `