Статья

Как упростить Диккенса и не испортить его

В школьной программе есть темы, под которые живых детских текстов просто нет. Не потому, что их мало написано, — а потому, что нужная грамматическая конструкция встречается у авторов редко, и на двадцать четыре темы обязательной программы у нас не набралось ни одного подходящего отрывка.

Самое простое решение — попросить машину сочинить текст. Мы себе это запретили.

Сочинённый текст правдоподобен и мёртв. В нём нет ни живой интонации, ни неожиданного слова, ни того, ради чего вообще читают книги. Ребёнок такое чувствует раньше взрослого.

Поэтому мы пошли другим путём: берём настоящий отрывок у настоящего автора, где нужная конструкция уже есть, и спускаем его на ступень вниз, сохраняя её. Только вниз: из текста уровня C1 делаем B1, никогда наоборот. Подъём — это уже сочинение.

Что оказалось трудным

Не то, что ожидалось.

Мы думали, что главная задача — заставить модель упрощать аккуратно. Она решилась почти сразу: из четырнадцати моделей, прогнанных на одних и тех же отрывках, победившая дала восемь годных текстов из десяти и ни одной внесённой грамматической ошибки, сохранив при этом речевую манеру персонажей. Модель послабее сплющивала сложные предложения и добавляла свои огрехи — писала put a muffin on table, теряя артикль.

Трудным оказалось другое: понять, когда мы обманываем сами себя.

Шесть ловушек

Проверка не отвечает дважды одинаково. Мы нашли отрывок, который проходил заслон, хотя не должен был. Перепроверили — получили отказ и чуть не списали случай на случайность. Только серия из восьми повторов показала: текст проходит в трёх случаях из четырёх, дыра настоящая, и причина в нашей же формулировке правила — слишком узкой. Одна проверка не доказывает ничего.

Мы просили невозможного и винили модель. Ставили целью упрощения уровень B1 для всех текстов, хотя четыре правила из пяти нацелены на B2. То есть требовали спустить текст ниже той конструкции, ради которой его брали. После исправления результат вырос с шести годных из десяти до восьми — модель была ни при чём.

Порог считал длину вместо плотности. Две модели сохранили все четыре вхождения нужной конструкции. Одна ужала текст на шестнадцать слов и «прошла», другая удлинила на тринадцать и «отказала». Планку пришлось брать от плотности оригинала, а не назначать абсолютной.

Правило, записанное в двух местах, расходится всегда. Мы починили заслон и забыли про отбор кандидатов — и 266 годных отрывков отсеивались молча, пока мы не заметили.

Контрольный набор из уже виденных промахов проверяет вчерашние ошибки. Один распознаватель мы чинили трижды за сутки, и каждый раз собирали проверочный набор из промахов, найденных накануне. После второго захода из восьми прочитанных срабатываний настоящими были два. После третьего — десять из десяти, а число найденных мест упало с 2081 до 788. Три четверти прежних находок были ложью.

Оценка остатка по известным промахам всегда занижена. Утечку одного правила мы оценили в 11 процентов, померив ровно тот шум, о котором знали. Настоящая проверка показала 34 — втрое больше.

Что вскрыло чтение

Мы прочли живые срабатывания всех двадцати одного правила на двадцати двух тысячах отрывков. Четыре оказались сломаны, и выдали их не цифры точности, а крайности урожайности.

Правило на притяжательный падеж находило его в 455 отрывках — для повествования это невозможно мало. Разгадка: оно ловило That's и What's, сокращения от is, а настоящий притяжательный пропускало, потому что искало прямой апостроф, а в книгах стоит фигурный. После починки — пятнадцать тысяч находок вместо четырёхсот. Рост в тридцать три раза.

Такую ошибку не видно ни в коде, ни в итоговой цифре: правило «работало», просто почти всегда молчало.

Правило на предлоги места мы отправили в карантин осознанно. Отличить in the garden от at the same time без разбора предложения нельзя, а притворяться, что можно, — хуже, чем честно выключить. Правило осталось в коде и не может сработать: это видно при чтении, в отличие от тишины.

Главная находка

Разметив корпус заново, мы увидели, что уровни поехали: текстов B1 стало 70 вместо 914, а почти половина корпуса провалилась ниже нижнего порога.

Виноват был не новый разбор, а калибровка. Пороги подбирались на экзаменационных текстах — взрослой прозе. Наш корпус детский и учебный, другой по природе, и та же шкала на нём показывает другое.

Но вот что важно: порядок сохранился. Средняя трудность растёт вместе с записанным уровнем во всех шести источниках без исключения. Прибор работал верно, неверны были только пороги.

Это то же различение, к которому мы пришли, измеряя уровень текста: сравнить два текста между собой куда надёжнее, чем навесить на текст ярлык. Сравнение переносится с корпуса на корпус, абсолютная отметка — нет.

Пересчитав пороги на своём корпусе, мы обнаружили и предел данных: пять уровней они не держат. При пятиклассовой подгонке полосе B1 не остаётся места вовсе — из 608 текстов верно опознаны пять. Причина не в приборе: ярлык «B1» приходит из шести источников, и у каждого он значит своё.

Мы приняли три класса вместо пяти. Различать B1 и B2 на этом корпусе нечем — не потому, что прибор слаб, а потому что надёжной разметки этой границы нет ни в одном доступном источнике. Для багрута это существенно, и закрывать придётся разметкой, которой можно верить, а не подгонкой порогов.

Что из этого следует

Полусинтетика решает узкую задачу: дать корпусу то, чего в живых текстах не нашлось, не скатываясь в сочинительство. Работает она только вместе с заслонами, и цена каждого заслона выяснялась замером, а не рассуждением.

Пять ловушек из шести мы нашли, читая частные случаи. Это тот же вывод, что и в соседней статье про измерение уровня: цифра, которая растёт, ничего не доказывает, пока не прочитаны случаи, где прибор ошибается.

← Все статьи