Улучшаем свой английский: изобретаем субтитры заново
1. Intro
— Татьяна Леонидовна, а можно, мы посмотрим это кино с субтитрами?
— Нет, малолетние дятлы, мы тренируем ваше слуховое восприятие, поэтому кино вы будете смотреть без них! С субтитрами вы будете только читать текст и не слушать.
— Татьяна Леонидовна, но без субтитров мы больше половины не понимаем!
— А вот это уже ваши проблемы.
Начало 2000-х, диалог с учителем во французской спецшколе, Санкт-Петербург.
2. В чем дело?
Сериалы и фильмы — прекрасная штука для улучшения английского. Ты уже знаешь грамматику, владеешь большим набором слов. Поддерживать свободную беседу с носителем языка еще рано, а практиковаться в тестах и упражнениях — уже скучно. Ты начинаешь смотреть кино и сериалы.
Смотришь себе и смотришь. Вроде все ясно-понятно, но тут начинается быстрый диалог двух героев, из которого ты понимаешь только предлоги. Ок, включаем сабы. И они решают проблему — ты начинаешь понимать происходящее.
Однако, посмотрев несколько видео с сабами, люди часто замечают две вещи.
- Вместо тренировки восприятия на слух ты становишься мастером по скоростному чтению сабов на иностранном языке. Теперь ты быстро понимаешь фразу, только взглянув на нее, но слуховое восприятие прогрессирует незначительно. Отключив отображение сабов, ты снова перестаешь понимать, что же происходит в некоторых сценах на экране. Школьная учительница Татьяна Леонидовна была права, запрещая нам смотреть французские фильмы с сабами — «малолетние дятлы» и правда не прогрессировали в восприятии на слух и в языковом мышлении.
- Некоторые участки фильма остаются абсолютно непонятными из-за того, что содержат трудные слова. «I can’t jeopardize my company’s success»? Что, простите? Jeopardize? . Окей, Гугл, я поставлю кино на паузу, а ты скажешь, что это значит.
Есть ребята, которые предлагают смотреть фильмы с субтитрами сразу на двух языках — английском и русском. Что быстро делает вас уже абсолютным чемпионом в скоростном чтении сабов на двух языках, но мало способствует слуховому восприятию и выработке языкового мышления.
Без сабов бывает ничего не понятно, а с сабами тормозится прогресс в слуховом восприятии и… все равно бывает непонятно.
3. Now what?
На этом скрине из «Южного Парка» видно 7 слов. 6 из них знакомы почти всем, изучающим английский. И их вполне можно узнать и понять, даже если они произнесены быстро и с акцентом. Остается одно слово, с которым (с высокой вероятностью) будут проблемы. Слово weary — уставший, утомленный.
- Это слово не так часто встречается. Велик шанс, что вы не распознаете его на слух.
- Хорошо бы прямо на экране показать перевод. Иначе либо придется отвлекаться и переводить со словарем, либо просто забить и смотреть дальше.
А остальные слова можно выкинуть. Они знакомы почти всем и совершенно не нуждаются в показе на экране. Если применить эту логику к остальным сценам, мы получим сабы, в которых появляются только трудные слова, а остальное нам придется слушать и понимать.
Как оказалась, эта идея совсем не нова. Беглый гуглинг показал, что как минимум несколько блоггеров писали статьи с аналогичной идеей, но предлагали делать адаптацию субтитров вручную. А мы, гики, будем делать автоматическую адаптацию сабов программно!
3. Строим велосипед
Задача сводится к поиску сложных слов в тексте, которые нуждаются в переводе.
Основная идея в том, что можно проанализировать ооооочень много текстов на английском, посчитать статистику по использованию слов и понять, что одни слова используются намного реже, чем другие. Эти редкие слова и подпадают под понятие «сложное слово» — они редко встречаются, поэтому вы не знаете их перевода и написания.
Я уже занимался всем этим в качестве хобби после работы (кстати, вот статья о том, как все начиналось). Все это вылилось в проект Bamboo Ninja, который позволяет анализировать книги на английском, находить сложные слова в них, вставлять перевод и собирать книгу обратно. Субтитры — это тоже текст, поэтому я возьму наработки оттуда и применю их к субтитрам.
Мы открываем сабы, разбиваем их на кусочки, потом на отдельные слова и начинаем анализ. Для каждого слова нам нужно решить задачу бинарной классификации — пропустить слово через алгоритм, который вернет на выходе 1 или 0 — является ли слово простым для изучающего английский или сложным. Свое решение классификатор делает на основании статистических данных, полученных из анализа ~40 Гб текстовых данных из разных источников (вообще стоило собирать данные действительно по очень разным источникам: выпотрошить логи чатов, новости, тексты песен. А я поленился и использовал в основном тексты книг, но об этом чуть позже).
Дальше идет некоторое количество возни с базой данных, написания кода и получаются сабы, которые выглядят примерно так
3. Ездим на построенном велосипеде
Я прогнал через программу 3–4 десятка сабов, оценил значения метрик, которые выдал анализатор. Попробовал смотреть фильмы с тем, что получилось. Показывал друзьям, знакомым и посетителям сайта.
Для оценки результатов я использовал две классические метрики для задач машинного обучения:
- Точность (precision) — способность правильно классифицировать слово
- Полнота (recall) — способность находить все слова, требующие перевода
Выяснилось, что значения метрик имеют тенденцию прыгать от фильма к фильму. На одних фильмах полнота и точность показывали 85%-90% от желаемого, а на других — в районе 55%. Покопавшись в проблеме, я нашел причину — большую часть данных для статистического анализа я собрал из художественных книг за последние 300 лет и некоторые слова в них встречаются чаще, чем встречаются в современном английском. Например, слово bayonet (штык) в те времена встречалось гораздо чаще, чем сейчас, но наш классификатор это слово считает не таким уж редким.
Хотя Колин, мой друг из Британии, долго смеялся и сказал, что выражение «мой мясной штык» (beef bayonet) сейчас очень часто встречается среди военных, но этот случай мы рассматривать не будем.
Я решил откатиться к старой версии классификатора, который я использовал еще несколько месяцев назад. Он был построен еще летом с использованием всего лишь 500 больших книг, но книги в той выборке были более разнообразными: «Гарри Поттер», «Песнь льда и пламени», техническая документация для программистов, книги по психологии, медицине и многое другое. Классификатор с меньшим, но более разнообразным количеством данных оказался на порядок лучше, чем классификатор, построенный только на английской художественной литературе. Алгоритм распознавания слов стал ошибаться намного реже.
Полученный результат в целом отвечает цели, но алгоритм все еще выдает сабы, пригодные для человека, имеющего солидный опыт в использовании английского. Нужно иметь определенный навык в распознавании речи на слух и ощутимый словарный запас в несколько тысяч базовых слов. В этом случае сабы сослужат хорошую службу в улучшении английского.
Все свои опыты я оформил в сервис и прикрутил к своему хобби-сайту и добавил туда же небольшую библиотеку сабов для желающих потестить эту штуку не отходя от кассы.
4. Outro
Превратить просмотр сериалов в учебный процесс вместо тупого чтения с экрана кажется стоящей задачей. А улучшение работы алгоритмы позволит провести с пользой еще много вечеров.
Всем спасибо! Хороших фильмов и успехов в английском.