textmachine/docs/research/12-failure-modes-ja.md
Claude (backend session) 9bb00d49f2 Initial commit: documentation, eval polygon, backend step 0 verdict
TextMachine project repository (AI translation of literary books).
Includes: v2 architecture decisions, MVP plan, research 01-12,
polygon experiments 01-03, backend-session revalidation verdict
(03-implementation-notes.md).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 06:50:59 +03:00

41 KiB
Raw Permalink Blame History

Каталог режимов отказа ja→ru (и ja→en как прокси)

Дата: 2026-07-04. Исследование для TextMachine. Дополняет 07-translation-methodology.md (там: общая теория кэйго/yakuwarigo, Поливанов, счётные слова, чек-листы Галь) — здесь только конкретные режимы отказа с примерами, причинами и механизмами детекции.

TL;DR

  1. Pro-drop — режим отказа №1 именно для ru-выхода. В японском разговорном корпусе личные местоимения есть лишь в ~11% предложений, около половины предложений требуют разрешения нулевой анафоры (arXiv:2107.00318, Rikters et al. 2021). Английский может спрятаться за «they» и «I» без рода; русский глагол прошедшего времени обязан выбрать род в каждой реплике («я поел/поела») — ошибка пола персонажа детектируется читателем мгновенно и рушит доверие.
  2. Значительная часть режимов отказа детектируется детерминированно, без LLM: остатки каны/транслита ономатопеи, ruby-разметка в EPUB, смена 敬体/常体 (desu/masu ↔ простые формы) по паре «говорящий→слушатель», род прошедшего времени 1-го лица vs пол говорящего, цепочки «который», токены 兄/姉/弟/妹.
  3. Половина проблем — не «ошибки перевода», а потеря сигнала: кэйго-сдвиг как сюжетное событие, авторский рефрен, второй слой фуриганы, аллюзия на классику. Их нельзя «исправить» на выходе — их надо извлечь из оригинала аналитическим пре-пассом и передать переводчику как явные инструкции.
  4. Для позднего твиста пола (Kino, Quina из FF9, Вивиан из Paper Mario) у профессионалов нет магии — есть дисциплина уклонения: перестройка в настоящее время, безличные конструкции, обращение по имени. Это реализуемо как жёсткий гейт «персонаж X: родовые формы запрещены».
  5. Русский местами сильнее английского: ты/вы-матрица передаёт кэйго-сдвиги, род прилагательных частично компенсирует гендерные я-местоимения, канонические переводы классики (Санович, Соколова-Делюсина) дают готовые цитаты для аллюзий. Пайплайн должен эксплуатировать эти преимущества, а не копировать en-практику.

Каталог режимов отказа

1. Pro-drop: род говорящего в русском прошедшем времени

Пример. 「もう食べた。おいしかった」 (говорит девушка) → MTL: «Я уже поел. Было вкусно» → верно: «Я уже поела». Оригинал не содержит ни одного маркера лица и рода: субъект опущен, глагол по роду не изменяется.

Почему падают. Модель переводит фрагмент без знания, кто говорит; NMT-системы систематически разрешают нулевые местоимения в «I»/мужской род по частотному приору (arXiv:1909.00369, оценочный датасет: LREC 2020). Для en это прячется в безродовом «I said», для ru — вылезает в каждом глаголе прошедшего времени и в кратких прилагательных («я рада»). Даже классики спорят: первая фраза «Снежной страны» Кавабаты 「国境の長いトンネルを抜けると雪国であった」 вообще без субъекта (точка зрения изнутри поезда); Сайденстикер и русский перевод вставили подлежащее «поезд», сместив POV, — предмет многолетней дискуссии (Quora, ru-текст: litres). MTL эту проблему даже не видит.

Детекция. (а) Пре-пасс speaker attribution + поле gender в глоссарии персонажей; (б) детерминированный гейт: морфопарсер ru-выхода находит глаголы прош. времени 1-го лица в прямой речи и сверяет род с полом говорящего; (в) билингвальный судья для 3-го лица (кто субъект действия). Человек — только при gender=unknown.

2. Pro-drop: перепутанные роли «кто кого»

Пример. 「黙って見ていた。殴られても、何も言わなかった」 → MTL: «Он молча смотрел. Ударил — и ничего не сказал» → верно: «...Даже когда его били, он ничего не говорил». Пассив 殴られる и опущенные аргументы дают MTL свапнуть агенса и пациенса.

Почему падают. Zero-pronoun resolution — известная слабость NMT/LLM: неверно восстановленный субъект меняет тематические роли, а сентенс-левел метрики (BLEU) этого не ловят (Springer: pro-drop language translation, JP-TL-Bench, arXiv:2601.00223 — бенчмарк, целящий именно в «politeness, implicature, ellipsis, register»).

Детекция. Только билингвальный судья с контекстным окном (вопрос-промпт: «перечисли по оригиналу и переводу пары агенс–действие–пациенс, найди расхождения»); дёшево гейтится триггером: пассивы られる/される и предложения без явного субъекта в оригинале.

3. Поздний твист пола персонажа

Пример. Кино («Путешествие Кино») говорит о себе «боку», текст избегает родовых форм до 4-й серии, где раскрывается, что Кино — девушка; сабы ADV с первой серии писали «he» и убили твист (Anime Feminist). Квина в FF9 обозначен безродовым あいつ — локализация выкрутилась написанием «s/he» (Legends of Localization); Вивиан в Paper Mario при первой локализации просто вырезали гендерную линию (Concrete). В ru «they»-стратегия недоступна вовсе.

Почему падают. Автор строит неопределённость на грамматике, которой в русском нет; модель на уровне главы не знает, что через 30 глав будет твист, и «уверенно» выбирает род.

Профессиональные обходы (все реализуемы промптом): настоящее историческое время («иду, смотрю»), безличные и инфинитивные конструкции («пришлось уйти»), именование вместо местоимений («путник», имя), реплики без атрибуции рода. Так русские переводчики десятилетиями передают, например, «боку»-говорящих девушек.

Детекция. Поле глоссария gender: m/f/unknown/spoiler(до главы N); для unknown/spoiler — жёсткий детерминированный гейт: морфопарсер запрещает любые родовые формы, согласованные с этим персонажем. Требует аналитического пре-пасса по всей книге (мы переводим книгу целиком — у нас, в отличие от посерийных сабберов, твист виден заранее). Финальное решение о стратегии — человек.

4. Гендерные и характерные местоимения 1-го лица (боку/орэ/атаси/ватакуси)

Пример. Сцена из «Твоего имени»: Мицуха в теле Таки подбирает местоимение перед его друзьями — 「私?…わたくし?…僕?…俺?」. В сабах это стало «I… hmm… my… I'm… yes!» с пояснениями в скобках — комизм и гендерный сигнал умерли (kantopia, HiNative). MTL сплющивает все местоимения в «я» без компенсации.

Почему падают. В ru лексической сетки я-местоимений нет; передача возможна только распределённо: род согласований, лексика («жрать» у орэ-грубияна vs «кушать» у атаси), синтаксис, частицы («я-то», «вот я»). Это требование к целому речевому профилю, а не к одному слову — модель без series bible это не удержит на дистанции книги (Legends of Localization: Tricky Translations #4).

Детекция. Поле глоссария first_person: 俺/僕/私/… + описание ru-компенсации в речевом профиле; LLM-судья консистентности голоса по главе («мог ли этот персонаж сказать эту реплику?»); детерминированно ловится только смена местоимения в оригинале (важный сигнал: momенты, когда персонаж меняет я-местоимение, — сюжетные).

5. Кэйго-сдвиг как сюжетное событие

Пример. Персонаж всю книгу говорит коллеге 「田中さん、行きますか」 (вежливая форма, фамилия), после сближения — 「美咲、行くか」 (простая форма, имя). MTL переводит обе реплики одинаково нейтрально — читатель ru-версии не узнаёт, что случился поворот отношений. Локализаторы называют ровно это «особенно сводящим с ума» классом потерь: «переход Tanaka-san → Tanaka-kun означает, что изменились статус, близость или доверие» (VEQTA, Tropedia: Keigo). Обратный кейс — кэйго как характеризация злодея: Фриза в Dragon Ball говорит изысканным кэйго, что делает его жутким; ранний дубляж Funimation сделал его грубияном и сломал образ до самого DBZ Kai (Dragon Ball Wiki, TV Tropes: Lost in Translation).

Почему падают. Сигнал распределён по морфологии (です/ます vs словарные формы) и суффиксам обращений; при пофрагментном переводе он статистически «усредняется». Русский же имеет прямой эквивалент — переход с «вы» на «ты», по имени/по фамилии, — но им надо управлять явно.

Детекция. Детерминированный детектор по оригиналу: для каждой пары «говорящий→адресат» трекается регистр (масу-формы, суффикс обращения, имя/фамилия); изменение регистра = событие, которое (а) попадает в ты/вы-матрицу series bible с номером главы, (б) отправляется переводчику как явная инструкция «в этой сцене X переходит на ты». Морфопарсер оригинала это делает без LLM.

6. Ономатопея (гионго/гитайго) в прозе

Пример. 「頭がズキズキする」 → MTL: «голова болит зуки-зуки» / «пульсирующе болит» → верно: «в висках стреляет», «голова раскалывается». 「教室がしんと静まり返った」 → MTL: «класс затих со звуком шин» → верно: «класс замер — стало слышно муху». Японские словари ономатопеи насчитывают тысячи единиц, включая «звуки состояний» вроде しーん — «звук тишины» (nippon.com, КиберЛенинка).

Почему падают. Прямого эквивалента нет; правильный приём — глагол/наречие/образ с усилением (Ещеркин, Кириллов, PDF), а MTL либо транслитерирует, либо выдаёт блеклое «очень болит» (обеднение — та же translationese-нормализация).

Детекция. Детерминированно: (а) остатки транслита/каны в ru-выходе (регэксп по «зуки», «пика», «гуру-гуру» и по хирагане/катакане); (б) триггер по оригиналу — редупликация CVCV-CVCV и типовые паттерны っ/ん+と — фрагмент маркируется «содержит ономатопею», и line editor проверяет, что в переводе есть образ, а не заглушка. Словарь гионго→приёмы ru — готовый актив проекта.

7. Термины родства: градации «о-нии-чан» и счёт братьев

Пример 1. В Sister Princess двенадцать сестёр различаются только формой обращения к брату (онии-тян/анитики/онии-тама/онии-тяма/ани-уэ…); локализация была вынуждена изобрести двенадцать английских вариантов («Big Brother», «Bro-bro», «Dear Brother»…) (TV Tropes: Japanese Sibling Terminology, Wikipedia). MTL сплющит всё в «брат» и сотрёт различие персонажей. Пример 2. 「三人兄弟です」 → MTL: «у меня три брата» → верно: «нас в семье трое» (счёт включает говорящего, 兄弟 покрывает и сестёр). Пример 3. Обращение «онии-сан» к незнакомому парню на улице → MTL: «старший брат!» → верно: «слушай, парень…».

Почему падают. Японская система родства обязательна по признаку старшинства (兄 vs 弟) и работает как система обращений к чужим; модель без карты семьи путает старшинство, число и «родственность» (EDOPEN).

Детекция. Детерминированный триггер: токены 兄/姉/弟/妹/兄弟/姉妹 → сверка с полем глоссария «карта семьи + карта обращений» (кто кому кем приходится, чем передаём каждое обращение). Арифметика «нас трое/у меня двое братьев» — билингвальный судья по чек-вопросу.

8. Фуригана-игры и авторские чтения

Пример. Классика жанра: 強敵 («грозный враг») с фуриганой とも («друг») в «Кулаке Полярной звезды» — на письме читатель видит оба смысла сразу. Ranobe-авторы делают так постоянно: термин записан кандзи, читается английским словом, или наоборот. MTL видит только один слой (обычно кандзи) — второй смысл исчезает бесследно. Фуригана штатно используется для каламбуров и передачи иностранных слов смысловым кандзи (Wikipedia: Furigana, ru-Wikipedia, художественные функции руби: sci-article).

Почему падают. Это не языковая, а инженерная потеря: при извлечении текста из EPUB/скана ruby-слой либо теряется, либо склеивается с основным текстом в кашу (強敵とも). Дальше модель уже ничего не может.

Детекция. Полностью детерминированно на инжесте: парсер EPUB сохраняет <ruby>-пары (база + чтение); каждая пара с нестандартным чтением (сверка по словарю) — кандидат в глоссарий как «двухслойный термин» с решением: сноска / передача обоих смыслов / выбор одного (решает человек или сильная модель один раз, дальше — консистентно).

9. Имена: чтения кандзи и прозвища

Пример. Фамилия 角田 читается Какута, Цунода, Сумида или Кадота — из текста это невыводимо; иероглиф 生 в именах имеет более десятка чтений (amix-design, Japanese with Anime). MTL в главе 3 пишет «Цунода», в главе 17 — «Какута», и оба раза, возможно, неверно. Прозвища-игры (Хикигая → «Хикки» с созвучием «хикикомори») требуют отдельного решения.

Почему падают. Чтение имени — внешнее знание (автор задаёт его фуриганой при первом появлении или нигде); модель «угадывает» заново при каждом вызове — отсюда фирменная болезнь MTL «скачущие имена» (топ-жалоба читателей, см. 02-competitors).

Детекция. Детерминированно: (а) харвестинг фуриганы имён при первом появлении в исходнике; (б) глоссарий-лок: все вхождения кандзи-имени заменяются по глоссарию до/после перевода, несовпадение = ошибка сборки, а не стиля; (в) новое имя без фуриганы → флаг человеку (один клик: выбрать чтение). Транскрипция — по политике Поливанова (уже в 07).

10. Левоветвящиеся цепочки определений перед существительным

Пример. 「昨日駅で君に声をかけてきた背の高い赤いコートの女の人」 → MTL: «вчера на station заговорившая с тобой высокая красного пальто женщина» или «женщина, которая вчера на станции, которая заговорила с тобой, которая в красном пальто…» → верно: «та высокая женщина в красном пальто, что вчера окликнула тебя на станции». Японский — почти полностью левоветвящийся язык: всё определение стоит до вершины, без союзного слова (Nihongoism, Tofugu).

Почему падают. При длинной цепочке модель (а) неверно прикрепляет определения (чьё пальто? кто вчера?), (б) рожает канцелярские нагромождения «который…который», (в) теряет часть определений. Структурные ошибки такого типа — документированная слабость NMT на дальних зависимостях (arXiv:1809.00120).

Детекция. Дёшево: парсер оригинала считает глубину преноминальной цепочки (триггер при ≥3 звеньях); парсер ru-выхода ловит ≥2 «который» в предложении и каскады причастных оборотов (пересекается с чек-листом Галь из 07). Attachment-ошибки — билингвальный судья по триггеру.

11. Повторы: авторский рефрен vs дефект текста

Пример. Японская проза спокойно повторяет одно слово там, где английская/русская редактура требует синонима; переводчики с японского «сражаются, чтобы не повторяться вовсе», и редакторы «набрасываются» на каждый повтор (SWET: Repetition in Japanese vs. English). Но у авторов уровня Мураками повтор и ритм — осознанный приём («джазовый» ритм прозы, Рубин, «Харуки Мураками и музыка слов»). Отказ двусторонний: MTL тащит в русский «сорные» повторы (дефект), а агент-редактор, зачищая повторы, убивает авторский рефрен (например, повторяющуюся ключевую фразу главы).

Почему падают. Модель не отличает повтор-привычку языка от повтора-приёма: для этого нужно сравнение позиций повтора в оригинале, а редактор-агент работает по ru-тексту без оригинала.

Детекция. Гибрид: детектор повторов лемм в окне (детерминированный, уже в 07) + alignment-защита: если повторяемая единица повторяется и в оригинале в параллельных местах (рефрен, зачины абзацев, лейтмотив) — фрагмент помечается «авторский повтор, не трогать», и line editor получает запрет. Спорные случаи — судья с оригиналом.

12. Диалог без атрибуции: кто говорит

Пример. Страница диалога из шести реплик без единого 「と言った」: японский читатель различает говорящих по yakuwarigo — частицам わ/ぜ/かしら, форме связки, местоимению. MTL выдаёт шесть одинаковых русских реплик подряд — читатель теряет нить, а заодно модель путает род внутри реплик (см. №1). Идентификация говорящего по стилю реплики — настолько устойчивое свойство японской прозы, что существует отдельная NLP-задача speaker identification для японских романов (PACLIC 2022, факторный анализ стилей реплик: Murai 2018).

Почему падают. Сигнал «кто говорит» в оригинале несёт грамматика, в русском его должны нести либо речевые профили (трудно), либо вставленные атрибуции «— сказал Н.» (это добавление текста, на которое нужен мандат).

Детекция/механизм. Обязательный пре-пасс speaker-ID (LLM с контекстом сцены) → разметка реплик; политика проекта разрешает вставку атрибуций в длинных безатрибуционных цепочках (порог настраивается); монолингвальный судья-«читатель» проверяет: «однозначно ли понятно, кто произносит каждую реплику?».

13. Цитаты и аллюзии на классику

Пример. Персонаж цитирует танка из «Огура хякунин иссю» (сюжетная основа «Тихаяфуру» — вся интрига построена на первых слогах карт, Chihayafuru Wiki, обсуждение перевода: SCBWI Japan) или роняет пословицу 「猿も木から落ちる」. MTL переводит стихотворение с нуля прозой (теряя и форму, и узнаваемость), а пословицу — буквально («и обезьяна падает с дерева» там, где нужно «и на старуху бывает проруха» либо сохранение экзотики — по слайдеру Venuti).

Почему падают. Аллюзия — внетекстовое знание; модель не сигнализирует «это цитата», а «переводя» её заново, отрывает от канона. У ru есть преимущество: корпус канонических переводов японской классики (Хякунин иссю в переводе В. Сановича, «Повесть о Гэндзи» Т. Соколовой-Делюсиной, Басё в переводах В. Марковой) — читатель-ценитель ждёт именно их.

Детекция. Детерминированно наполовину: n-gram-мэтчинг оригинала против корпуса классики (Aozora Bunko и антологии — всё оцифровано); совпадение → запись в глоссарий «цитата: источник, канонический ru-перевод, права/степень цитирования». Пословицы — словарь котовадза + слайдер доместикации. Остаток (скрытые парафразы) — только сильная модель/человек.

14. Кэйго-омонимия ролей: вежливость ≠ дистанция ≠ подобострастие

Пример. Слуга-дворецкий, безупречно вежливый ко всем, и офисный работник, вежливый к клиенту, в оригинале используют разные регистры кэйго (кэндзёго vs тэйнэйго); MTL оба переводит одинаковым «вежливым русским», а иногда — хуже — рандомно чередует «ты/вы» внутри одной сцены, потому что каждый фрагмент переводится независимо. Отмечено как типовая потеря при удалении хонорификов в дубляжах 2000-х: персонажи, которые «должны чувствовать себя ниже», звучали фамильярно (VEQTA).

Почему падают. «Вы» в русском — один бит, кэйго — минимум три измерения (вверх/вниз/нейтрально + скромность о себе); передача требует лексических средств («извольте», «позвольте доложить», канцелярская правильность речи) на уровне речевого профиля.

Детекция. Рандомное чередование ты/вы ловится детерминированно (парсер ru-выхода по паре персонажей против ты/вы-матрицы). Качество передачи регистра — LLM-судья с речевым профилем из series bible; сам профиль строится в пре-пассе по статистике форм (см. №5).


Выводы для TextMachine

  1. Три обязательных пре-пасса по оригиналу до перевода (все дешёвые): (а) speaker-ID разметка диалогов; (б) регистровый трекер пар «говорящий→адресат» (масу-формы, суффиксы, имя/фамилия) с генерацией событий «сдвиг регистра в главе N» в ты/вы-матрицу; (в) харвестинг ruby-слоя и фуриганы имён на инжесте EPUB. Пункты (б) и (в) — вообще без LLM.
  2. Глоссарий персонажа — это не «имя+перевод», а анкета: пол (m/f/unknown/spoiler-до-главы-N), я-местоимение, регистр по адресатам, карта семьи и обращений, ru-компенсация речевой маски. Половина каталога (№1, 3, 4, 5, 7, 12, 14) без этой анкеты неразрешима в принципе — контекст фрагмента не содержит ответа.
  3. Детерминированные гейты ru-выхода (быстрые, до вызова судьи): род прош. времени 1-го лица vs пол говорящего; запрет родовых форм для gender=unknown; ты/вы против матрицы; остатки каны/транслита ономатопеи; ≥2 «который» в предложении; несовпадение имён с глоссарий-локом. Каждый пункт каталога конвертируется в регрессионный мини-тест (оригинал + анти-паттерн + голд) — это готовый тест-сьют качества пайплайна.
  4. Правило «потерянного сигнала»: кэйго-сдвиг, авторский рефрен, фуригана-каламбур, аллюзия — не правятся постфактум редактором, а передаются переводчику как явные инструкции в промпте фрагмента («в этой сцене X впервые говорит Y на ты»; «фраза Z — рефрен, повторить дословно»; «цитата — взять перевод Сановича»). Редактору — соответствующие запреты (alignment-защита рефренов).
  5. Эскалация на человека — точечная и дешёвая: выбор чтения нового имени (один клик), стратегия для gender=spoiler, решение по двухслойному фуригана-термину. Всё остальное закрывается связкой «пре-пасс → глоссарий → гейт → судья».
  6. Продуктовый аргумент: у переводящих книгу целиком есть преимущество перед посерийными фан-переводчиками и стриминговыми сабберами — твисты (пол Кино) видны аналитическому пре-пассу заранее, и стратегия уклонения включается с первой страницы, а не с 4-й серии.

Источники