<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">

<channel>

<title>Блог об аналитике, визуализации данных, data science и BI, заметки с тегом: word cloud</title>
<link>http://test.leftjoin.ru/tags/word-cloud/</link>
<description></description>
<generator>E2 (v3365; Aegea)</generator>

<item>
<title>Анализируем речь с помощью Python: Сколько раз в минуту матерятся на интервью YouTube-канала «вДудь»?</title>
<guid isPermaLink="false">136</guid>
<link>http://test.leftjoin.ru/all/youtube-interview-speech-analysis/</link>
<comments>http://test.leftjoin.ru/all/youtube-interview-speech-analysis/</comments>
<description>
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/13-1.jpg" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Выход практически каждого ролика на канале «вДудь» считается событием, а некоторые из этих релизов даже сопровождаются скандалами из-за неосторожных высказываний его гостей.&lt;br /&gt;
Сегодня при помощи статистических подходов и алгоритмов ML мы будем анализировать прямую речь. В качестве данных используем интервью, которые журналист Юрий Дудь (признан иностранным агентом на территории РФ) берет для своего YouTube-канала. Посмотрим с помощью Python, о чем таком интересном говорили в интервью на канале «вДудь».&lt;/p&gt;
&lt;h2&gt;Сбор данных&lt;/h2&gt;
&lt;p&gt;C помощью &lt;a href="https://developers.google.com/youtube/v3"&gt;YouTube API&lt;/a&gt; мы получили список всех видео с канала Юрия Дудя, а также их метаинформацию. О том, как это сделать, вы можете узнать, например, из &lt;a href="http://test.leftjoin.ru/all/youtube-api/"&gt;статьи нашего блога&lt;/a&gt;.&lt;br /&gt;
Если вы уже слышали знаменитое “Юрий будет дуть, дуть будет Юрий”, то наверняка знаете, что на этом канале есть документальные фильмы, а также интервью, в которых участвуют сразу несколько гостей. Нас заинтересовали только те выпуски, в которых преимущественно говорит только один гость. Поэтому нам пришлось провести фильтрацию всех видео вручную.&lt;br /&gt;
Для дальнейшего анализа нам необходимо было получить длительности роликов. Это мы сделали с помощью GET-запросов к YouTube API. Результаты приходили в специфическом формате (для примера: “PT1H49M35S”), поэтому их нам пришлось распарсить и перевести в секунды.&lt;br /&gt;
Итак, мы получили датафрейм, состоящий из 122 записей:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/--1.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;На основе метаинформации по лайкам, комментариям и просмотрам мы построили следующий Bubble Chart:&lt;/p&gt;
&lt;iframe width="730" height="480" frameborder="0" scrolling="no" src="//plotly.com/~satiukov.e/29.embed?showlink=false"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Так как наша цель — проанализировать речь в интервью, нам необходимо было получить текстовые составляющие роликов. В этом нам помог API-интерфейс &lt;a href="https://pypi.org/project/youtube-transcript-api/"&gt;youtube_transcript_api&lt;/a&gt;, который скачивает субтитры из видео на YouTube. Для каких-то роликов субтитры были прописаны вручную, но для большинства они были сгенерированы автоматически. К сожалению, для 10 видео субтитров не оказалось: беседы с L’one, Шнуром, Ресторатором, Амираном, Ильичом, Ильей Найшуллером, Соболевым, Иваном Дорном, Навальным, Noize MC. Причину их отсутствия мы, к сожалению, понять не смогли.&lt;/p&gt;
&lt;h2&gt;А гости кто?&lt;/h2&gt;
&lt;p&gt;Спектр рода деятельности гостей канала «вДудь» достаточно обширен, поэтому было решено пополнить исходные данные информацией о том, чем же в основном занимается приглашенный участник каждого интервью. К сожалению, ролики не сопровождаются четкими метками профессиональной принадлежности гостя, поэтому мы прописали эту информацию сами. На момент выгрузки данных последним видео на канале был разговор с комиком Дмитрием Романовым.&lt;br /&gt;
Если с идентификацией профессии каждого гостя мы не ошиблись, то вот такое распределение в итоге получается:&lt;/p&gt;
&lt;iframe width="730" height="480" frameborder="0" scrolling="no" src="//plotly.com/~satiukov.e/31.embed?showlink=false"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Музыканты, рэперы и актеры — самые частые гости Юрия, скорее всего, они являются самыми интересными для автора и аудитории. Представителей научного сообщества (астрофизик, историк, экономист и т.д) наоборот, гораздо меньше, ведь научно-популярные интервью — прерогатива других интервьюеров.&lt;/p&gt;
&lt;h2&gt;Обработка текста&lt;/h2&gt;
&lt;p&gt;Анализ текстовой информации сложен в той степени, в какой сложен язык, на котором написан текст. Подробно о подготовке текста к анализу мы рассказывали в материале &lt;a href="http://test.leftjoin.ru/all/borderline-text-analysis/" class="nu"&gt;«&lt;u&gt;Python и тексты нового альбома Земфиры&lt;/u&gt;»&lt;/a&gt;. Тут была проведена идентичная работа.&lt;br /&gt;
Как и раньше, для решения аналитической задачи мы решили использовать такой подход как лемматизация, т. е. приведение слова к его словарной форме. Проведя лемматизацию текстовых данных по правилам русского языка, мы получим существительные в именительном падеже единственного числа (кошками — кошка), прилагательные в именительном падеже мужского рода (пушистая — пушистый), а глаголы в инфинитиве (бежит — бежать). В этом проекте мы опять воспользовались библиотекой &lt;a href="https://pymorphy2.readthedocs.io/en/stable/"&gt;Pymorphy&lt;/a&gt;, представляющую собой морфологический анализатор.&lt;br /&gt;
Помимо приведения к словарной форме нам потребовалось убрать из текстов часто встречающиеся слова, которые не несут ценности для анализа. Это было необходимо, потому что так называемые стоп-слова могут повлиять на работу используемой модели машинного обучения. Список таких слов мы взяли из пакета &lt;a href="https://www.nltk.org/api/nltk.corpus.html"&gt;ntlk.corpus&lt;/a&gt;, а после расширили его, изучив тексты интервью. Конечно, мы также убрали все знаки пунктуации.&lt;/p&gt;
&lt;h2&gt;Анализ словарного запаса&lt;/h2&gt;
&lt;p&gt;После обработки текста мы посчитали для каждого интервью количество всех слов, а также абсолютное и относительное количество уникальных слов. Конечно, полученные значения неидеальны, так как, во-первых, для большинства интервью были получены автоматически сгенерированные субтитры, которые являются неточными, а во-вторых, тексты были очищены от лишней информации.&lt;br /&gt;
Сперва мы решили наглядно представить основной массив лексики, которая звучит в интервью. После группировки интервью по роду деятельности гостя нам удалось это сделать и в этом нам помогла библиотека &lt;a href="http://amueller.github.io/word_cloud/"&gt;wordcloud&lt;/a&gt;. У нас получились такие облака слов:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/All-wordclouds.png.jpg" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Лейтмотивом всех интервью Юрия являются обсуждение России (политики, социальной жизни и других особенностей), уровня заработка гостей, а также непосредственно профессиональной деятельности гостя (это особенно заметно у представителей индустрии кинопроизводства).&lt;br /&gt;
Далее мы решили построить боксплот для количества слов для каждого рода деятельности (профессии, которые были представлены единственным гостем, мы не стали учитывать):&lt;/p&gt;
&lt;iframe width="730" height="480" frameborder="0" scrolling="no" src="//plotly.com/~satiukov.e/33.embed?showlink=false"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Наиболее разговорчивыми гостями оказались блогеры. По медиане, они наговорили больше всего слов. Чуть поодаль от них журналисты и комики, а вот самыми немногословными оказались рэперы.&lt;/p&gt;
&lt;iframe width="730" height="480" frameborder="0" scrolling="no" src="//plotly.com/~satiukov.e/35.embed?showlink=false"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Что касается количества уникальных слов, то тут ситуация аналогичная. И рэперы опять в аутсайдерах…&lt;/p&gt;
&lt;iframe width="730" height="480" frameborder="0" scrolling="no" src="//plotly.com/~satiukov.e/37.embed?showlink=false"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Если говорить об отношении уникальных слов к общему количеству, то тут можно увидеть совершенно иную картину. Теперь впереди оказываются, рэперы, музыканты и бизнесмены. Предыдущие же лидеры, наоборот, становятся самыми последними.&lt;br /&gt;
Конечно, стоит отметить, что такие сравнения могут быть несправедливыми, так как длительность интервью у каждого гостя Дудя разная, а потому кто-то просто мог успеть наговорить больше слов, чем остальные. Наглядно в этом можно убедиться, взглянув на распределение длительности интервью по роду деятельности (для построения использовался тот же пул гостей, что и для боксплотов выше):&lt;/p&gt;
&lt;iframe width="730" height="480" frameborder="0" scrolling="no" src="//plotly.com/~satiukov.e/39.embed?showlink=false"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;К тому же, разные роды деятельности представляет разное количество человек, это тоже могло сказаться на результатах.&lt;br /&gt;
Далее мы составили список слов, появление которых в интервью было бы интересно отследить, и посмотрели как часто они упоминаются для каждого рода деятельности. Также мы решили учесть дисбаланс среди представителей разных профессиональных категорий и разделили полученные частоты на соответствующее количество гостей.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/-.png" border="0" width="90%" height="90%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Первое место по упоминаниям очевидно занимает Россия. Что касается Запада, то про США гости говорили в 2,5 раза меньше. Что касается лидера РФ, то про него речь заходила достаточно часто. Его оппонент, Алексей Навальный, в этой словесной “баталии” потерпел поражение. Интересно, что политики далеко не в топе по упоминаниям Путина. Впереди оказался экономист Сергей Гуриев, после него ведущий Александр Гордон, а тройку замкнули журналисты.&lt;br /&gt;
Глагол “любить” чаще использовали люди, имеющие отношение к искусству, творчеству и гуманитарным наукам — кинокритик Антон Долин, мультипликатор Олег Куваев, историк Тамара Эйдельман, актеры, рэперы, художник Федор Павлов-Андреевич, комики, музыканты, режиссеры. Про страхи (если судить по глаголу “бояться”) гости говорили реже, чем о любви. В топ вошли историк Эйдельман, дизайнер Артемий Лебедев, кинокритик Долин и политики. Может быть в этом кроется ответ на вопрос, почему же политики не так охотно произносили имя президента России.&lt;br /&gt;
Что касается денег, то о них говорили все. Ну, за исключением человека науки, астрофизика Константина Батыгина. С церковью же имеем совершенно обратную ситуацию. О ней по большей части говорили только писатели и художник Павлов-Андреевич.&lt;/p&gt;
&lt;h2&gt;Анализ мата&lt;/h2&gt;
&lt;p&gt;Далее мы решили проанализировать то, как часто гости Юрия Дудя ругались матом. С помощью регулярных выражений мы составили словарь матерных слов со всех интервью. После этого, для каждого ролика было подсчитано суммарное количество вхождений элементов составленного словаря.&lt;br /&gt;
Мы построили диаграммы, отражающие топ-10 любителей нецензурно выражаться по количеству “запрещенных” слов в минуту.&lt;/p&gt;
&lt;iframe width="730" height="480" frameborder="0" scrolling="no" src="//plotly.com/~satiukov.e/43.embed?showlink=false"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Как видим, рэперы и музыканты почти полностью захватили топ. Помимо них очень часто ругались такие гости как блогер Данила Поперечный и комики Иван Усович и Алексей Щербаков. Первое место в рейтинге с большим отрывом от остальных держит Morgenstern (признан иностранным агентом на территории РФ), а вот Олег Тиньков в своем последнем интервью матерился не так много, чтобы попасть в Топ-10.&lt;br /&gt;
Зато, как искрометно!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/FSgosl8XwAAmtpw.jpg" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;После персонального анализа мы решили узнать, насколько насыщена нецензурными словами речь представителей разных профессиональных групп. Нулевые показатели при этом были опущены.&lt;/p&gt;
&lt;iframe width="730" height="480" frameborder="0" scrolling="no" src="//plotly.com/~satiukov.e/41.embed?showlink=false"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ожидаемо, что больше всех матерились рэперы. На втором месте оказались блогеры (по большей части за счет Поперечного). За ними следует Артемий Лебедев, единственный дизайнер в нашей выборке, благодаря разнообразия речи которого, представители этой профессии и попали в топ-3 этого распределения. Кстати, если вы еще не знакомы с нашим &lt;a href="https://habr.com/ru/post/596035/"&gt;анализом телеграм-канала Лебедева&lt;/a&gt;, то мы не понимаем, чего же вы ждете! Несмотря на то что генератор постов Артемия Лебедева сейчас выключен, исследование его телеграм-канала все равно заслуживает вашего внимания.&lt;/p&gt;
&lt;h2&gt;Ограничения анализа&lt;/h2&gt;
&lt;p&gt;Стоит отметить, что в нашем небольшом исследовании есть два недостатка:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Как уже говорилось ранее, мы не смогли отделить слова гостей Дудя от речи Юрия, который и сам зачастую не брезгует использовать нецензурные выражения. Однако, задача интервьюера — подстроиться под стиль речи гостя, поэтому, скорее всего, результаты бы не сильно изменились.&lt;/li&gt;
&lt;li&gt;В автосгенерированных субтитрах нам встретилось некое подобие цензуры — некоторые слова были заменены на ‘[ __ ]’. Тут можно выделить несколько интересных моментов:
&lt;ul&gt;
  &lt;li&gt;действительно некоторые матерные слова были зацензурены (по большей части слово “бл**ь”);&lt;/li&gt;
  &lt;li&gt;остальные матерные слова остались нетронутыми;&lt;/li&gt;
  &lt;li&gt;под чистку попали некоторые другие грубые слова, при этом не являющиеся матерными (“мудак”, “гавно”).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Продемонстрируем наглядно на примере следующего диалога:&lt;br /&gt;
&lt;i&gt;Дудь: Почему твои треки такое гавно?&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Гнойный: Мои треки ох**тельные, Юра, просто ты любишь гавно.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/image.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Такие замены встречались в субтитрах роликов с людьми, которые не употребляли нецензурные выражения в своей речи (по крайней мере на протяжении интервью). Однозначное решение, что же делать с ‘[ __ ]’, мы не смогли принять, поэтому для некоторых гостей какая-то часть матерных слов была, увы, не подсчитана.&lt;/p&gt;
&lt;h2&gt;Работа с Word2vec&lt;/h2&gt;
&lt;p&gt;После статистического анализа интервью мы перешли к определению их контекста. Для этого мы, как и раньше, воспользовались моделью Word2vec. Она основана на нейронной сети и позволяет представлять слова в виде векторов с учетом семантической составляющей. Косинусная мера семантически схожих слов будет стремиться к 1, а у двух слов, не имеющих ничего общего по смыслу, она близка к 0. Модель можно обучать самостоятельно на подготовленном корпусе текстов, но мы решили взять готовую — от &lt;a href="https://rusvectores.org/ru/"&gt;RusVectores&lt;/a&gt;.  Для ее использования нам понадобилась библиотека &lt;a href="https://radimrehurek.com/gensim/"&gt;gensim&lt;/a&gt;.&lt;br /&gt;
Мы рассчитали векторы-представления для каждой профессиональной группы. Наверное, можно ожидать, что режиссёры обсуждали кино и все, что с ним связано, а музыканты — музыку. Поэтому для каждого рода деятельности мы получили список слов, описывающих тематику текстов соответствующих роликов. Также мы раскрасили ячейки в зависимости от того, насколько каждое полученное слово было близко к текстам соответствующей категории гостей.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/-10-----.png" border="0" width="120%" height="120%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Можно сказать, что в целом каждая профессиональная категория описывается вполне соответствующими терминами. Конечно, некоторые слова могут показаться спорными. К примеру, на первом месте для рэперов стоит слово “джазовый”, хотя ни с 1 представителем хип-хоп течения речь о джазе не заходила. Тем не менее модель посчитала, что это слово достаточно близко к общему смыслу интервью людей, относящихся к этой категории (видимо, за счет непосредственного отношения рэперов к музыке).&lt;/p&gt;
&lt;h2&gt;P.S. Мистическое число 25.000000&lt;/h2&gt;
&lt;p&gt;Как мы уже говорили, среди скачанных субтитров некоторые были написаны вручную. Интересно, что все они начинаются с числа 25.000000, причем оно нигде не озвучивается.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/25.000000--1.png" border="0" width="50%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Что же это за мистическое число? Если уйти в конспирологию, то можно вспомнить про 25-й кадр. К сожалению, нам об этом ничего неизвестно, мы просто оставим это как пищу для размышлений…&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/25.000000-.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Thu, 02 Jun 2022 11:09:33 +0300</pubDate>
</item>


</channel>
</rss>