Что ж, давайте посмотрим правде в глаза одной из самых важных ассиом в этом мире: все любят «Во все тяжкие».

Должен сказать, я нашел много людей, которым это не нравится: ну, ладно, вы все правы, но я твердо верю, что любой, кто имеет немного серьезного опыта в сериалах, не может отрицать тот факт, что «Во все тяжкие» — один из лучших сериалов, когда-либо созданных. Я хотел бы отметить, что я не фанат Breaking Bad (Scrubs FTW!), хотя я согласен с последним предложением. ББ четко срежиссирован, все имеет конкретное место в сценарии и в нем нет дыр. Диалоги никогда не бывают плоскими, и у каждого персонажа есть особая и детальная роль. Сериал представляет собой запутанную сеть человеческой природы, преступности и греха.

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

Введение (или WTF я делаю?)

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

  • для обработки видео одним из наиболее распространенных подходов является глубокое обучение, но я не могу позволить себе построить нейронную сеть и обучить ее на всей серии;
  • для обработки аудио, но я действительно недостаточно знаю, чтобы сделать это :(

Поэтому я решил пойти по пути скрипта. К сожалению, я не нашел ни одного сценария (или, по крайней мере, полного, охватывающего каждый эпизод) сериала, поэтому я выбрал субтитры. В Интернете доступны десятки субтитров, и найти их для ББ было несложно: я скачал их отсюда. Для каждого эпизода есть разные версии одних и тех же субтитров, но от разных релизеров. На этапе предварительной обработки я пытался по возможности выбирать только субтитры из одного и того же релизера.

В следующих разделах я кратко объясню, что я сделал, покажу вам несколько симпатичных графиков и попытаюсь придумать какое-то объяснение. Это первая часть из серии постов, в которых я пытаюсь анализировать ББ (а может и другие сериалы).

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

МНЕ ПОЛЕЗНО, дай код!

Весь код, который я использовал на каждом этапе предварительной обработки, доступен на GitHub. Весь смысл этого поста заключался в том, чтобы улучшить опыт работы с некоторыми библиотеками Python, такими как matplotlib, scikit и т. д. Я не думаю, что сейчас буду чистить код, делать его быстрым или что-то еще из-за нехватки времени.

Что ж, давайте начнем с этой первой части!

Распределение времени разговора

Я помню другой сериал, Остаться в живых, в котором персонажи, кажется, разговаривают МНОГО времени! Они использовались для объяснения всего происходящего на острове и большую часть времени все (включая зрителя) НИЧЕГО не понимали. Итак, мне было любопытно найти время разговора БиБи.

Я начал с определения времени разговора для каждого эпизода с помощью субтитров. Каждая строка подзаголовка (которая является строкой или частью строки для актера) имеет начальный момент времени (STP) и конечный момент времени (ETP). ; при этих значениях временная длина строки определяется разницей между ETP и STP, поэтому время разговора для эпизода представляет собой сумму всех длин строк для субтитров.
Для продолжительности каждого эпизода Я просто пошарил в сети.

По данным мы находим, что среднее время разговора для эпизода BB составляет 24 минуты, а среднее время показа эпизода — 47 минут. Плотность разговоров, определенная как 24/47, составляет 0,5047, что означает, что 50% серии говорят! Я действительно ожидал таких результатов, учитывая вид шоу.

Более того, минимальное время разговора приходится на серию 4x10 с ~18 минутами, а максимальное — на серию 5x4 с ~31 минутой.

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

Действительно, у нас есть 48,16% для первого сезона, 47,18% для второго, 47,93% для третьего, 51,02% для четвертого и 55,77% для пятого. Обратите внимание, что первый сезон состоит всего из семи серий, тогда как второй сезон состоит из тринадцати серий, хотя плотность разговоров в первом сезоне больше, чем плотность разговоров во втором!

Полярность на серию

В анализе настроений полярность предложения или, в более общем смысле, текстового объекта — это степень позитивности или негативности самого объекта. Прежде чем дать результат такого рода анализа, я должен с высокой уверенностью сказать, что результаты это только для развлечения и любопытства. Действительно, чтобы вычислить полярность какого-то диалога между двумя или более персонажами, который практически является сценарием эпизода, нам нужно (как минимум)

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

Во всяком случае, вот результаты!

Учитывая, что результаты совсем ненадежны, мы видим, что минимальная полярность соответствует третьему эпизоду первого сезона (мы все знаем, что там происходит :P), а максимальная соответствует десятому эпизоду второго сезона.

Какой-то вывод

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

В любом случае, надеюсь, вам понравился этот экскурс! Не стесняйтесь оставлять комментарии, критические замечания или идеи!