Большие данные — это возможность упорядочить и понять то, что раньше казалось человеку хаосом или случайностью. Эксперты Platforma обнаружили очень интересное исследование продакт-менеджера австралийской компании CoAbility Шилпи Бхаттачарья, анализирующее факторы популярности телесериалов (ссылка открывается при использовании VPN). Казалось бы, причём здесь наука, цифры и расчёты, когда всё «завязано» на эмоциях? Но с помощью Big Data можно разложить по цифрам не только ассортимент в магазине или распланировать открытие розничной сети, но даже эмоциональные составляющие успеха сериала.
Содержание:
- Что представляет собой популярный ситком?
- Доступность данных
- Определение эмоций персонажей
- Watson Personality Insights (WPI) для исследования личности персонажей
- Что делать с этими знаниями?
Текстовая аналитика расшифровок диалогов с использованием Keras-Tensorflow-LSTM, Watson NLU и Watson Personality Insights.
Недавно на Data Science Salon в Лос-Анджелесе я рассказывал об исследовании расшифровок (стенограмм) ситкомов. Моей целью было понять, по каким принципам создаются популярные телесериалы.
В этой статье я расскажу, как проходило исследование, и какие результаты я получил после использования «специально обученных» нейронных сетей, а также моделей Watson NLU (Natural Language Understanding, понимание естественного языка) и Personality Insights. Самой сложной частью работы стала подготовка данных: поиск в интернете письменных расшифровок диалогов в ситкомах.
В двух словах о моём подходе к проекту в области Big Data. Я регулярно задаюсь множеством интуитивных вопросов, связанных с нужной мне сферой, ищу отзывы экспертов и дополняю/изменяю свою анкету.
Главное здесь — представлять, какой результат я хочу достичь, и чётко понимать критерии успеха. До тех пор, пока результаты меня не убеждают, продолжаю итерации (повторения) с более качественными вопросами, моделями и лучшими/большими данными.
Обратите внимание, что убедительные результаты ни в коем случае не означают, что они соответствуют моим ожиданиям. Мы занимаемся наукой, чтобы исследовать факторы, которые приводят к появлению тех или иных данных (результатов). А затем прогнозируем результаты, используя эти признаки в качестве базовой истины, а не наоборот. Это искусство, основанное на науке.
Что представляет собой популярный ситком?
По нашей версии, среди ключевых факторов успеха можно выделить следующие:
1. Последовательность в речи и поведении отдельных персонажей.
2. Кадры в одних и тех же локациях, благодаря чему у зрителей со временем возникает ощущение, что они давно знают эти места.
3. Сходство/различие в манере речи и поведении разных персонажей.
4. Сериал делает интересным сбалансированное распределение эмоций — таких, как радость, грусть, страх, гнев, отвращение.
5. Схожесть/различие характеров персонажей помогают поддерживать связь с аудиторией.
6. Зрителей «цепляют» интересные флэшбэки (ретроспективные кадры).
Очевидно, что гипотез может быть гораздо больше. Поэтому перед началом работы над любым проектом в области Big Data необходимо запросить и изучить отзывы (реакцию) экспертов в ней, чтобы убедиться в правильности поставленных вопросов.
Для данного анализа я планировал использовать следующие сериалы — «Друзья», «Теория большого взрыва» и «Во все тяжкие». По моему мнению, это должно было создать достаточную базу для анализа.
Доступность данных
После интенсивного поиска в интернете я получил html-транскрипты со следующих URL.
«Друзья» (10 сезонов): https://fangj.github.io/friends/
«Теория большого взрыва» (10/12 сезонов): https://bigbangtrans.wordpress.com/
«Во все тяжкие» (5 сезонов, с некоторыми отсутствующими данными): https://en.wikiquote.org/wiki/Breaking_Bad
Ниже приведен пример того, как выглядят эти транскрипты.
Ниже приводится последовательность действий для подготовки набора данных для моделирования:
- html-транскрипты для ситкома скопировать и сохранить в txt. файл
- Разбираем и группируем текст, произносимый каждым персонажем, с помощью Python
- Очищаем текст путем удаления стоп-слов, удаления нетекстовых символов и лемматизации с помощью ntlk – пакета библиотек и программ для символьной и статистической обработки естественного языка, написанных на языке программирования Python
- Создаем фреймы данных из текста, произнесенного каждым персонажем
- Извлекаем из текста местоположение и место действия
- Объединяем отдельные фреймы данных
Создание этих наборов данных потребовало от меня значительных усилий. Поэтому я выложил их на Kaggle, чтобы ими могли воспользоваться все желающие. Код для подготовки и обработки данных для каждого сериала можно найти здесь.
1. Определение эмоций персонажей
Для определения эмоций персонажей я использую Watson Natural Language Understanding (NLU). Это набор API-интерфейсов, анализирующих текст с помощью обработки разговорного языка. Другими словами — система машинного обучения, направленная на понимание смысла неструктурированного текста. Данный набор API-интерфейсов позволяет анализировать текст, чтобы вы могли понять его концепции, смыслы, ключевые слова, настроение и так далее. В основе обработки разговорного языка лежит классификация текста.
Watson NLC (Natural Language Classifier — классификатор разговорного языка) позволяет классифицировать текст по пользовательским категориям. NLC сочетает в себе различные передовые методы машинного обучения. Они могут обеспечивать максимально возможную точность, не требуя большого количества обучающих данных.
Для достижения высокой точности NLC использует набор моделей классификации, а также методы неконтролируемого и контролируемого обучения. После сбора обучающих данных NLC оценивает их с помощью метода опорных векторов (SVM — способ классификации данных по видам).
Также используется свёрточная нейронная сеть (CNN), которая нужна для распознавания образов. Она действует на основе сервиса машинного обучения IBM Deep Learning As a Service (DLaaS). Код, соответствующий каждому сериалу для разделов 1, 2 и 3, можно найти здесь.
Следующие графики показывают, какие эмоции испытывают главные персонажи трёх сериалов. Чем выше столбец — тем сильнее выражена эмоция у данного персонажа.
1.1. Друзья
1.2 Теория большого взрыва
1.3 Во все тяжкие
2. Watson Personality Insights (WPI) для исследования личности персонажей
Я использую сервис Personality Insights для прогнозирования личностных характеристик, потребностей и ценностей на основе письменного текста. Сервис IBM Watson Personality Insights использует лингвистическую аналитику для выделения спектра умственных и социальных характеристик человека из текстовых данных. Эти данные человек генерирует в блогах, твитах, сообщениях на форумах и так далее. Например, Watson определил Дональда Трампа по его текстам как «буйного» («неистового»).
Так, я решил воспользоваться этим сервисом для анализа письменных расшифровок диалогов из сериалов, чтобы определить индивидуальность отдельных персонажей. Код, соответствующий каждому сериалу для разделов 4 и 5, можно найти здесь.
Как был подготовлен текстовый ввод для отправки в WPI:
1. Собрать все расшифровки 10 сезонов сериала (для Breaking Bad расшифровки ограничены).
2. Разобрать эту скомпилированную версию, чтобы извлечь все предложения, произнесенные главными героями.
3. Передать эту коллекцию предложений по каждому персонажу в Watson Personality Insights с помощью следующей команды в Jupyter notebook:
!curl -X POST -u “apikey:yourapikey” – header “Content-Type: text/plain;charset=utf-8” – header “Accept: application/json” – data-binary @”sopken_text.txt” “https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2017-10-13” -o output.json
4. В результате получаем файл output.json с процентным соотношением всех черт личности.
Я ориентируюсь на результаты «большой пятерки» личностных качеств от WPI:
- Эмпатия: способность сочувствовать другим людям и сотрудничать с ними.
- Сознательность: способность действовать организованно и продуманно.
- Экстраверсия: сосредоточенность на внешних событиях и эмоциях, поиск вдохновения в компании других людей.
- Эмоциональный диапазон: степень, в которой эмоции человека оказываются чувствительны к тому, что его окружает.
- Открытость: степень готовности к тому, чтобы попробовать новые для себя виды деятельности.
2.1 Друзья
Любой балл, превышающий среднее значение 0,5, указывает на более высокую, чем средняя, склонность к данной характеристике. Показатель 0,75 или выше указывает на легко различимые аспекты характеристики; такие показатели считаются высокими.
Противоположные утверждения справедливы для оценок ниже 0,50 и 0,25, которые считаются низкими.
Личности всех героев сериала «Друзья» в целом довольно схожи.
2.2. Теория большого взрыва
Личности всех героев сериала «Теория большого взрыва» похожи.
2.3. Во все тяжкие
Что делать с этими знаниями?
Анализ причин успешности ситкомов с помощью Big Data влияет, в первую очередь, на отрасль кинопроизводства. В будущем продюсеры смогут создавать сериалы с изначально большими шансами на успех.
В выигрыше не только их создатели, но и рекламодатели. С помощью Big Data они могут выяснить, кто смотрит эти сериалы, и показывать релевантную для данной аудитории (или групп аудиторий) рекламу во время просмотра очередной серии. В нашем арсенале уже есть такой инструмент — продукт «ТВ реклама и аналитика». С его помощью вы можете планировать размещение на ТВ за счёт точных аудиторных сегментов, созданных на основе анонимизированных данных. Десятки форматов, подходящих для ваших задач — от всплывающих окон до интеграции роликов в video on demand.
Кейс: Исследование компаний «Эверест» и Platforma об эффективности ТВ-рекламы на канале «Домашний»
Нам нужно было понять, как ТВ-реклама повлияла на продажи одного из брендов в категории «Парфюмерия и косметика». С помощью анализа больших данных мы отследили количество и продолжительность телепросмотров. Затем сопоставили эту информацию с данными о «целевых действиях»: заходах на сайт компании-продавца и покупках. Анализ показал рекламодателю, что он не зря вложился в кампанию. Оказалось, что среди посмотревших рекламу жителей Москвы и Московской области вероятность совершить покупку выросла на 77% по сравнению с теми, кто не видел эту рекламу. Удалось оценить «в цифрах» и такие показатели, как влияние рекламной кампании на прирост новых пользователей и узнаваемость бренда.