Вы находитесь на странице: 1из 21

Анализ диалогов

в телеграмме
март 2022
Порядок выполнения работы
01 02 03
Выгрузка данных и Построение моделей, Обработка результатов,
их первичная анализ зависимостей, реализация примера
обработка визуализация монетизации
результатов
▪ Выгрузка данных из ▪ Построение модели
телеграмма временных рядов
▪ Подсчет числа ▪ Анализ результата и
сообщений в день, статистической
обработка текста, информации на графиках
подсчет статистических prophet, seaborm,
данных matpoltlib и pandas
Данные
Выгрузка данных

● Установите приложение telegram desktop


● Откройте диалог, который хотите проанализировать
● Нажмите на 3 точки вверху справа и выберите “Export
chat history”
● Далее уберите все галочки во всплывшем окне, укажите
формат JSON и поменяйте путь файла, как указано в
README
Первичная обработка и подготовка данных
Какие библиотеки были Что было сделано
использованы Для удобства я ввела класс, который
содержит информацию об участнике диалога
● pandas (количество сообщений, стикеров, видео и
● re голосовых сообщений и сами сообщения).
Дальше текст сообщений был обработан
● json (удаление лишних символов, лемматизация,
● datetime удаление стоп-слов). Создала словарь из
оставшихся слов и отсортировала по их
● pymorphy2 количеству. Также сгенерировала файлы с
● os весами tf-idf для каждого пользователя.
Далее был создан pandas dataframe из дат
● tmdq (от самой старой до самой последней) и
● collections количества отправленных в тот день
сообщений (это будет нужно для построения
модели prophet).
Что такое стоп-слова?
Стоп-слова это — дополнительные слова, которые не несут смысловой нагрузки.
К ним относятся местоимения, частицы и некоторые общеупотребительные глаголы.
В нашем случае было разумно их удалить, так как увидеть одним из самых популярных
слов местоимение “я” или слово “привет” не интересно и не информативно.

Пора
разобраться

местои некоторые кек, лол


частицы мения глаголы и тд

массив слов
Как создать веса tf-idf?
TF-IDF (от англ. term frequency и inverse document frequency — частота слова и обратная частота
документа) — это показатель, который используется для оценки важности слова в документе.

TF (частота слов) характеризует отношение числа вхождений конкретного слова к общему набору слов в
документе. Чем выше TF, тем весомее конкретное слово в рамках документа.

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

число вхождений слова t в документ число документов в коллекции

общее число слов в данном документе число документов в коллекции где встречается данное слово
prophet
модель прогнозирования временных рядов prophet
Методология

В основе этой методологии лежит процедура подгонки аддитивных регрессионных моделей


(Generalized Additive Models, GAM) следующего вида:
где g(t) и s(t) — функции, аппроксимирующие тренд ряда и сезонные
колебания (например, годовые, недельные и т.п.) соответственно, h(t) — функция, отражающая эффекты
праздников и других влиятельных событий, а ϵt — нормально распределенные случайные возмущения.
Для аппроксимации перечисленных функций используются такие методы, как тренд (кусочная
линейная регрессия или кусочная логистическая кривая роста), годовая сезонность (частичные суммы
ряда Фурье, число членов которого (порядок) определяет гладкость функции), недельная сезонность
(представлена в виде индикаторной переменной) и т.д.

Данные

Prophet очень удобна нет, что работает с данными в формате pandas dataframe. Требуется лишь создать
столбец дат под названием ds и столбец значений, которые будем предсказывать, с названием y.
модель прогнозирования временных рядов prophet
У prophet есть возможность учитывать множество параметров (годовую/месячную/недельную сезонность,
праздники, сторонние факторы и т.д.).

В результате работы мы получаем dataframe в котором описаны предсказанные значения и имеем


возможность посмотреть следующие графики:

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

Prophet также предоставляет возможность проанализировать данные, в данном случае общения, по


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

Кол-во
сообщений
каждого Топ слов по
пользователя частоте

Сравнение по
отправленным
Общение медиа файлам
пример монетизации
проекта
какие этапы?

Предоставлен
Сбор информации Визуализация
ие заказчиком
от желающих анализа в
данных (в
проанализировать “понятном” и
данном случае
диалог интересном
переписки)
виде

Так как пользователям трудно предоставить персональные


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

Что мы отправляли друг другу?


А что писала тебе я?
что можно добавить

Различные модели Сервис Полноценный


продукт
▪ Семантический ▪ Сайт, куда ▪ Оформлять данным
анализ пользователь может в полноценный
загрузить свою продукт (например
▪ Анализ тональности переписку и книгу) с учетом
получить в личных, для
▪ Выявление результате документ клиента, мелочей
ключевых тем в с данными и (как в примере с
диалогах описанием графиком общения)
заключение
в работе были затронуты
следующие темы:
Работа с данными (json, pandas, классы, словари, списки)

Обработка данных (морфологический анализ, библиотеки re и


pymorphy2, стоп-слова, tf-idf)

Визуализация результатов (matplotlib, seaborn, pandas, prophet)

Самостоятельно были изучены: модель временных рядов


prophet, разработан алгоритм создания списка tf-idf,
СПАСИБО за
внимание :)

Вам также может понравиться