Если шутка не смешная: как расшифровать культурный код фильма при помощи LLM

в 6:19, , рубрики: gpt-4o mini, llm, культурные реалии, субтитры, фильмы

Наверняка многие любят либо изучать, либо поддерживать текущий уровень иностранного языка, смотря фильмы в оригинале. Есть и у меня любимая площадка, где я регулярно смотрю фильмы на английском.

Недавно наткнулась на знаковый для меня фильм I Don't Know How She Does It, 2011. Он про работающую мать, которая балансирует между карьерой и воспитанием детей. Так как мне явно откликнулся образ главной героини, видимо он и сподвиг меня на свершения)

Вот это и есть to spin 50 plates - прибежала с работы, подхватила дитё на руки
Вот это и есть to spin 50 plates - прибежала с работы, подхватила дитё на руки

Фильм я посмотрела на одном дыхании и в целом всё поняла (ага, бывших переводчиков не бывает). Но в переводах-то был Business English, а стоило героине внезапно упомянуть bake sale в садике - и вот уже я засомневалась: кто и зачем продаёт эту выпечку? Так, а кто такие momsters из родкомитета? Неужели это прямо как на...нет, не будем проводить смелые параллели. Или зачем Кейт смешивать водку с ксанаксом к приезду свёкров, и кстати что такое ксанакс (как выяснилось в ходе исследования, это счастье - не знать, что такое ксанакс). Ах, the biggest break in my career - это отнюдь не долгий перерыв в карьере, связанный с декретом, а напротив, карьерный шанс и прорыв! Уф....

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

Опишу пошагово алгоритм своих действий:

  • Нашла на просторах Интернета субтитры к фильму в формате .srt на английском языке.

  • Прогнала файлик в CAT-системе бесплатным машинным переводом от Яндекса, получив параллельные субтитры на русском языке.

    Строго говоря, это необязательный шаг с учётом того, что мы будем просить сильную LLM пояснить англоязычный текст, и он не добавляет ценности процессу. В итоге я удалила МТ, в финальной таблице остался только оригинал с пояснениями.

  • Получила документ в формате .docx с таблицей из двух столбцов: оригинал субтитров и их перевод. Здесь заранее предвижу и допускаю необходимость оптимизации и использования других, более оптимальных табличных форматов - .csv или .xlsx, просто я хотела сделать quick&dirty proof of concept.

  • Попросила GPT-4-o-mini сгенерировать мне код, который будет обрабатывать текст субтитров и писать к ним пояснения, добавляя их в третий столбец в таблице. Для этого требуется API-ключ для вызова одной из моделей OpenAI. Её вполне можно заменить на любую другую доступную вам LLM, но естественно на выходе будет другое качество, да и под другую модель надо будет немного видоизменить код. Если любопытно, он есть по ссылке, но наверняка, если вы настоящий кодер, вживую напишете лучше: JuliaEfimka/Film

  • Вуаля! Получила искомые культурные заметки, но не всё так просто, с первого раза хорошо не вышло. Теперь по порядку.

Мы вроде интуитивно понимаем, что есть некие культурные реалии а-ля "шашлыки на майские", из-за которых нам порой сложно смотреть зарубежные фильмы. Но как их ёмко описать в промпте к модели? Включить ли туда названия музыкальных групп, таблеток или ещё шутки и метафоры? На первый взгляд, нужно всё. Однако определение реалий в каждом случае будет индивидуально, ведь оно зависит от множества параметров: содержания фильма, уровня сложности языка, стартовых языковых и общекультурных знаний смотрящего (чем шире кругозор и выше образованность, тем меньше потребуется пояснений). Иначе можно получить от модели ответы в стиле "спасибо, Кэп!", что и вышло при первой итерации:

"Бостон - это город на северо-востоке США" - был повод снова взглянуть на карту мира.

Выражение "Mama loves you" может отсылать к культуре, где материнская любовь считается важной и безусловной". - а где-то не считается важной?)

Результат впрочем неудивительный - вот такой была первая версия промпта:

Provide cultural notes or explanations for the following text: '{source_text}'. If no cultural notes are needed, return '-'.

Но LLM-ки, как известно, болтливы, и поначалу модель ударялась в объяснения так, что тратила токены быстрее, чем студент стипендию, а объяснение обрывалось на самом интересном месте:

Сокровища спрятаны...подо львом

Сокровища спрятаны...подо львом

Фраза "fake the orgasms" относится к иде ... к чему?

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

Следующая версия промпта:

Extract cultural references that might be unfamiliar to foreigners (idioms, names of places, events, medicines, teams, puns, and jokes) from the following text. Focus on identifying and explaining less obvious or culturally specific references that could be difficult to understand without local knowledge.

For each, provide a concise but thorough explanation in Russian, starting directly with the explanation without repeating the source text. Avoid verbosity and do not explain common or widely understood expressions or basic phrases. If no explanations are needed, return '-'.

Помимо изменений промпта помогло ещё ограничение токенов на выдачу до 100, а ещё оказалось крайне полезно запускать 5-10% от всего текста, чтобы быстро протестировать выдачу (привет, smoke testing!) и не потратить сразу много денег на неудовлетворительный результат. Температуру оставила на 0,5 по рекомендации GPT, но подозреваю, что и тут остаётся большой простор для творчества.

Текст субтитров в данной реализации обрабатывался частями по 10 батчей, чтобы было возможным прогнать большой объём текста по API. Изменение этого параметра может повлиять на скорость обработки, например для более длинных субтитров можно задать меньший размер батча. Но в целом на обработку вполне стандартного фильма длиной 1,5 часа у меня ушло около часа работы в PyCharm, поэтому не думаю, что стоит много играться с этим параметром.

В итоге я получила список из нескольких сотен культурных реалий и вручную сократила его полутора сотен - это мой личный "шорт"-лист, которым я с удовольствием с вами делюсь. С полной версией можно ознакомиться здесь. А здесь я приведу самые интересные варианты. Так что же такое bake sale и кто такие momsters? Ответы найдены:

Оригинал

Пояснение культурных реалий

And all that trouble started with the bake sale.

"bake sale" — это мероприятие, на котором люди готовят и продают выпечку, чтобы собрать деньги на какую-либо благотворительную цель или финансирование. В США и других западных странах такие распродажи часто проводятся в школах или церквях.

Last minute in-laws show up, she can do it without mixing vodka and Xanax.

Упоминание "водка" и "ксанакс" может быть сложно понять для иностранцев. Водка — это традиционный крепкий алкогольный напиток, популярный в России и других странах Восточной Европы. Ксанакс (или ксанак) — это торговое название лекарства, содержащего алпразолам, который используется для лечения тревожных расстройств. В данном контексте смешивание водки и ксанакса подразумевает попытку справиться со стрессом, и это может быть отсылкой к юмористическому или даже ироничному подходу к сложной ситуации.

All us working mothers feel
like we're spinning 50 plates
in they air at once, but Kate,
you can give her ten more plates, all the size of manhole covers, and she just keeps going.

Выражение "spinning 50 plates" (крутить 50 тарелок) относится к цирковому искусству, где артист вращает множество тарелок на палочках, чтобы они не упали. Это метафора для описания состояния многозадачности и стресса, когда человек пытается одновременно справляться с несколькими обязанностями.

Do you have any idea what those dietetically correct mothers would do if I brought cookies with high fructose corn syrup and salt?

Термин "dietetically correct mothers" может отсылать к культурному явлению в США, связанному с осознанным питанием и здоровым образом жизни. Это выражение подразумевает матерей, которые строго следят за рационом своих детей и предпочитают натуральные продукты без добавления искусственных ингредиентов. В некоторых кругах это может быть связано с определённой группой людей, которые активно выступают за здоровое питание и могут осуждать менее обеспокоенных этим вопросом родителей.

That is unset Jell-O, folks.

"Unset Jell-O" — это отсылка к желе, которое не застыло. В американской культуре желе (Jell-O) часто используется как десерт и символизирует что-то нестабильное или неустойчивое. Выражение "unset Jell-O" может также подразумевать нечто, что не имеет четкой формы или структуры, часто в контексте обсуждения ситуаций или идей, которые неопределены.

The Momsters.

'Momsters' — это игра слов, в которой соединены слова "mom" (мама) и "monsters" (монстры). В английском языке это может относиться к стереотипному представлению о мамах, которые чрезмерно заботятся о своих детях или ведут себя агрессивно, защищая их интересы. В русском языке аналогичного термина нет, но можно провести параллели с образами "мамочек" . Тут, гпт, конечно, не в курсе нашего «яжмать»))

On the right, Wendy Best, room parent, field trip chaperone, parent association vice president,
also chief poobah in charge
of terrifying working mothers
with her domestic prowess.

В данном тексте есть несколько культурных ссылок:

1. **room parent** - Это термин, используемый в американских школах, обозначающий родителя, который помогает учителю в классе, организует мероприятия и взаимодействует с другими родителями. В России аналогом может быть классный родитель, но такая роль не всегда так формализована.

2. **field trip chaperone** - Это должность родителя или взрослого, который сопровождает группу детей во время

Fitter than a Navy SEAL,
tougher, too.

3. Фраза "Fitter than a Navy SEAL" ссылается на военно-морских спецназовцев США, известных своей физической подготовкой и выносливостью. Navy SEAL (Sea, Air, and Land) — это элитное подразделение, которое проходит строгую подготовку и считается одним из самых подготовленных военных в мире. Сравнение с Navy SEAL подчеркивает высокую физическую форму и силу человека.

Don't ask me how, but that
guy just keeps failing up.

"Failing up" - Это выражение означает, что человек продолжает продвигаться по карьерной лестнице или достигать успеха, несмотря на свои неудачи или ошибки. Это может быть связано с тем, что такие люди умеют извлекать выгоду из своих неудач или находят поддержку в высокопрофильных кругах, что позволяет им сохранять или даже улучшать свои позиции.

He's our DOA: Designated Office Asshole.

DOA (Designated Office Asshole) - Это игра слов, основанная на аббревиатуре DOA, которая в английском языке часто используется для обозначения "Dead on Arrival" (мертвый по прибытии), что относится к ситуации, когда что-то уже не подлежит спасению. В данном контексте это выражение используется для обозначения человека в офисе, который является раздражающим или неприятным, но с юмористическим оттенком.

The schmooze.

Шмуз (schmooze) — это идиома, происходящая из еврейского языка и часто используемая в американском английском. Она обозначает разговор, который ведется с целью наладить связи, завести знакомства или просто пофлиртовать. Шмуз может подразумевать легкие, непринужденные беседы, зачастую на социальные темы, и часто используется в контексте сетевого взаимодействия.

Kick the tires, see if it's an
idea worth bringing to Harcourt.

"Kick the tires" - Это выражение происходит из автомобильной терминологии и означает проверку или осмотр чего-либо, чтобы оценить его состояние или жизнеспособность. В данном контексте это метафора для проверки идеи перед тем, как представить её кому-то, например, в компании Harcourt.

It's like she's on parole.

Это выражение "на испытательном сроке" (parole) относится к юридической системе, где осужденный освобождается из тюрьмы до окончания срока наказания при соблюдении определенных условий. В данном контексте это может подразумевать, что человек находится под наблюдением или в состоянии ограниченной свободы, что может быть сложно понять без знания системы уголовного правосудия.

Would love to get blotto, sadly can't.

"blotto" - Это сленговое слово, обозначающее состояние сильного опьянения. Оно используется в разговорной речи, чтобы описать человека, который выпил слишком много алкоголя и не может адекватно себя вести. Слово имеет игривый оттенок и часто используется в неформальных беседах.

I had "bouncy house"
written across my hand,
and I was scratching like a dog.
 - Hello?

"Bouncy house" - Это термин, обозначающий надувной замок или батут, популярный на детских праздниках. В России такие конструкции также известны, но могут называться "надувной аттракцион" или "батут". Упоминание "bouncy house" может вызывать ассоциации с детскими развлечениями и весельем на праздниках.

Can you swing it?

'Can you swing it?' - Эта фраза может быть понята как вопрос о том, может ли кто-то справиться с задачей или выполнить что-то. В американской культуре выражение "swing it" часто используется в контексте способности адаптироваться к ситуации или успешно справиться с чем-то, что может быть сложным.

Last year, the nursery school
issued a fatwa on raisins.
 - And yet you have a pinata.
- Well, you know, that's different.

Фатва - это официальное мнение или указание исламского учёного по вопросам религии, которое может касаться различных аспектов жизни. В данном контексте использование термина "фатва" в шутливом смысле подразумевает, что детский сад принял строгие меры против изюма, что может показаться странным и комичным.

Пиньята - это традиционная мексиканская игрушка, обычно сделанная из папье-маше.

I wouldn't thank someone
for giving me a big break,
I mean, possibly the biggest break of my career.

Выражение "big break" относится к значительному удачному моменту или возможности, которая может кардинально изменить карьеру человека, особенно в творческих профессиях, таких как актерство или музыка. В данном контексте это означает, что человек получил важный шанс или успех, который может определить его будущее.

No. If you're gonna sign "XO," you might as well sign,
"Please enter me."
 

"XO" - Это сокращение, которое часто используется для обозначения "поцелуи и объятия" (hugs and kisses). Оно распространено в англоязычных странах как способ выразить теплые чувства в конце письма или сообщения. В данном контексте оно может быть воспринято как игривое или романтическое выражение.

I know you look at me and you see a mess, a hurry, a giant un-tweezed eyebrow, I am walking birth control.

"walking birth control" - Эта фраза является игрой слов и культурным отсылом, который подразумевает, что говорящий выглядит так, что отталкивает потенциальных романтических партнеров. Это выражение намекает на то, что человек выглядит неопрятно или не привлекательно, что делает его "контрацептивом", поскольку отпугивает людей от сексуальных отношений.

The inside of a working
woman's head is like...
 ...the control tower at O'Hare Airport.
 - Richard, honey!

Контрольная башня в аэропорту О'Хара - это одна из самых загруженных и известных контрольных башен в мире, расположенная в Чикаго, США. Она символизирует хаос и необходимость управления большим количеством информации и задач одновременно, что может быть метафорой для жизни работающей женщины, которая часто сталкивается с множеством обязанностей и стрессов. Сравнение подразумевает, что в голове работающей женщины происходит много процессов одновременно.

Everyone says my breast is very juicy.

Слово "juicy" (сочный) в данном контексте может иметь двусмысленное значение, намекая на сексуальность или привлекательность, что может быть неочевидно для иностранных читателей.

Oh, I got a leotard for Emily's ballet recital.

Леотард - это облегающая одежда, обычно используемая в балете и гимнастике. Он часто ассоциируется с танцевальными выступлениями, такими как балетные рециталы, где танцоры надевают такие костюмы для удобства и эстетики.

Было бы обидно потерять такой пласт лексики и юмора, правда?

Стоимость

Для обработки субтитров и генерации пояснений использовалась модель GPT-4o-mini с тарифами $0.075 за 1M входных токенов и $0.300 за 1M выходных токенов. В субтитрах оригинала 45481 токенов, в пояснениях 3068, курс примерно 102 рубля за доллар, итого на обработку субтитров одного фильма было потрачено $0.0043 доллара или ~0.44 рубля. Допускаю, что где-то могла немного ошибиться с расчётами, но не на порядок. Поэтому, как видим, цена вполне демократичная и позволяет поупражняться с целой фильмотекой).

Применение

Данная POC может быть доработана и далее применяться энтузиастами-любителями-лингвистами-преподавателями для изучения языков в индивидуальных образовательных целях и для создания образовательного контента для учеников.

Что можно улучшить?

  • Формат файла: экспортировать результат в Excel, чтобы облегчить фильтрацию и анализ сегментов.

  • Ещё сильнее ограничить болтливость модели, так как пока что объяснения всё ещё излишне обширны.

  • Настройка на другие языки, кроме английского, применение других LLM.

  • Мне как человеку, который любит всё классифицировать, любопытно было бы прикрутить вот какую аналитику: например, каких непонятных реалий в том или ином фильме оказалось больше всего? И если обработать подобным образом несколько фильмов, то можно сравнить их на предмет того, в каком из них каких реалий больше.

    Пока быстрый пример, как могла бы выглядеть такая аналитика:

    Образец диаграммы (возможны другие реализации)

    Образец диаграммы (возможны другие реализации)

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

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

Предвижу критику, готова выслушать конструктивные предложения по улучшению. Отдельно убедительно прошу не хейтить за GPT--кодинг, я честно об этом написала и код в итоге получился рабочий :)

Автор: JuliaEfimka

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js