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

Мы можем определить начало и конец сцен, что означает, что мы можем изолировать диалоги и анализировать их как единый, самостоятельный разговор. Проще всего это сделать, посмотрев на субтитры, которые представляют собой правдивую транскрипцию диалога — распознавание звука не требуется. Ранее мы разработали систему для загрузки файла субтитров фильма .srt в кадры данных pandas с использованием библиотеки Python pysrt. Мы будем использовать библиотеку Python SpaCy для проведения анализа НЛП.

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

Декларации от первого лица

Во-первых, мы хотим идентифицировать объявления от первого лица, которые могут быть символом, объявляющим что-то. Примеры включают:

  • — Я не могу сейчас выдержать большую речь.
  • "Но я люблю тебя."
  • — Я оттолкнул тебя, потому что я тупой.

Мы ищем предложения, в которых субъектом предложения (обозначаемым зависимостью «nsubj») является «я».

Это важно, потому что персонаж может заявлять что-то личное. Например, заявление от первого лица «Я принесу лишнюю куртку» более информативно для персонажа, чем обычное высказывание «На улице холодно». Мы знаем, что персонажу лично холодно, что более конкретно, чем знание того, что на улице холодно.

Адреса от второго лица

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

  • "Ты был прав."
  • — Я думаю, тебе следует уйти.
  • — Это потому, что ты одинок.

Мы ищем предложения, в которых субъектом предложения (обозначаемым зависимостью «nsubj») является «вы».

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

Направленные вопросы

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

  • "Как дела?"
  • "Что ты здесь делаешь?"
  • "Что ты учишь?"

Мы ищем предложения, в которых субъектом предложения (обозначаемым зависимостью «nsubj») является «вы» и оканчивается вопросительным знаком.

Они очень информативны, потому что вызывают личную реакцию другого персонажа. Мы также можем хранить ответы на каждый вопрос. В этом примере из «Трудностей перевода» (2003) мы успешно узнаем больше о главных героях, когда они разговаривают в первый раз. Они узнают друг о друге, задавая личные, направленные вопросы.