Я сделал программу, которая анализирует историю сообщений в Telegram и/или ВК. Вот визуализация отношений на расстоянии с моей девушкой

Я сделал программу, которая анализирует историю сообщений в Telegram и/или ВК. Вот визуализация отношений на расстоянии с моей девушкой Отношения, График, Программирование, Python, Длиннопост

FAQ


• Все данные взяты с нашей с девушкой переписки в Telegram и ВКонтакте. Мы перешли на Telegram где-то в мае 2017.


• Код на GitHub: https://github.com/vlajnaya-mol/message-analyser


• Если хотите попробовать на своей переписке, то все инструкции можно найти в файле README на репозитории. Необходима будет установка Python3.6+ и нескольких пакетов для него, с кодом можно не работать - я добавил простенький графический интерфейс. Сама программа делает немного больше чем то, что я вместил в пост.


• Слова в посте перед визуализацией были профильрованные вручную мной так, что остались только наиболее употребляемые и наполненные смыслом слова (без "я", "ну", "да" и так далее). А также я перевел их с украинского на русский :)


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

Статистика

795 постов3.1K подписчик

Добавить пост

Правила сообщества

1. Не нарушать правил pikabu

2. Постить контент относящийся к теме сообщества

Вы смотрите срез комментариев. Показать все
95
Автор поста оценил этот комментарий

FAQ


• Все данные взяты с нашей с девушкой переписки в Telegram и ВКонтакте. Мы перешли на       Telegram где-то в мае 2017.


• Код на GitHub: https://github.com/vlajnaya-mol/message-analyser


• Если хотите попробовать на своей переписке, то все инструкции можно найти в файле README на репозитории. Необходима будет установка Python3.6+ и нескольких пакетов для него, с кодом можно не работать - я добавил простенький графический интерфейс. Сама программа делает немного больше чем то, что я вместил в пост.


• Слова в посте перед визуализацией были профильрованные вручную мной так, что остались только наиболее употребляемые и наполненные смыслом слова (без "я", "ну", "да" и так далее). А также я перевел их с украинского на русский :)


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

раскрыть ветку (117)
11
Автор поста оценил этот комментарий

@moderator , можно прикрепить этот комент к посту?

раскрыть ветку (6)
15
Автор поста оценил этот комментарий

Да, сделано :)

раскрыть ветку (5)
11
Автор поста оценил этот комментарий
Вы поменяли аватарки, потому что некоторые пользователи поставили аватарку печеньки с баяном?
раскрыть ветку (4)
11
Автор поста оценил этот комментарий

Нет :)

раскрыть ветку (3)
6
Автор поста оценил этот комментарий
А можно мне такую же аватарку?
раскрыть ветку (2)
12
DELETED
Автор поста оценил этот комментарий

Да.

раскрыть ветку (1)
Автор поста оценил этот комментарий

А могу поменять вашу аватарку?

21
Автор поста оценил этот комментарий

Если подкрутишь юзер френдливость для тех кто не шарит в этих ваших питонах и удавах - будет супер. например закинуть сцыль на сам питон и инструкцию по грамонтой его установке, и подробнее что и как делать с самой прогой, а то в реадме как-то не сильно понятно, честно говоря (ИМХО)

56
Автор поста оценил этот комментарий
• Найдите девушку.
раскрыть ветку (1)
24
Автор поста оценил этот комментарий

У него там "батя"

9
Автор поста оценил этот комментарий

Тааак. Есть пара моментов:

Out of memory. На двух разных текстовых файлах переписок с разными людьми.

И я не знаю, следствие out of memory или наоброт, или это не бага, но с графики как то странно уперлись в потолок.

Ну и с большими временным отрезками истории тоже надо что-то делать. Или менять масштаб оси времени, или я не знаю :)

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (13)
16
Автор поста оценил этот комментарий

Хмм, я не ожидал, что настолько большие отрезки времени будут анализироваться, по-этому сделал гибкий масштаб только для меньших отрезков (месяцы на недели заменяются)
Насчет out of memory интересно - сколько всего сообщений в диалоге?

раскрыть ветку (11)
2
Автор поста оценил этот комментарий
А можно как-то и в ватс ап сообщения анализировать?
2
Автор поста оценил этот комментарий

Один диалог, поменьше.
Start date:,2016-02-01 13:06:24

Duration:,1117 days 1:27:34

Days without messages:,384,

Most active day:,2016-03-29 : 485 messages

Average messages per day:,13.96 messages

Longest pause:,9 days 2:00:10 From 2018-12-21 16:49:02 to 2018-12-30 18:49:12


INFO,TOTAL,Никита Буновский,Ксения Камалдинова

All messages,15607,9590,6017


Второй диалог, самый большой у меня:

Start date:,2010-07-20 17:09:28

Duration:,3135 days 8:56:10

Days without messages:,2375,

Most active day:,2017-09-14 : 279 messages

Average messages per day:,10.79 messages

Longest pause:,791 days 12:53:04 From 2014-08-25 23:27:12 to 2016-10-25 12:20:16


INFO,TOTAL,Никита Буновский,Максим Малков

All messages,33840,19691,14149


В обоих случаях out of memory после этапа 2019-02-23 15:58:11,531 - distplot_messages_per_day was created. Могу скинуть куда-нибудь резалт из vkopt, если так будет проще.

раскрыть ветку (9)
4
Автор поста оценил этот комментарий

Да, так было бы намного проще. Сейчас посмотрю в чем проблема

раскрыть ветку (8)
Автор поста оценил этот комментарий

проблема решилась?))

раскрыть ветку (6)
1
Автор поста оценил этот комментарий

Скорее всего памяти недостаточно. Нужно увеличить стек.

Или возможно проблема в том, что у вас python3.7, хотя у некоторых и на нём все работает

раскрыть ветку (5)
DELETED
Автор поста оценил этот комментарий

Как освоить питон за неделю?

раскрыть ветку (4)
Автор поста оценил этот комментарий

Смотря как именно освоить

раскрыть ветку (3)
DELETED
Автор поста оценил этот комментарий

Чтобы полноценно кодить и зарабатывать на этом.

раскрыть ветку (2)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

id90741140 в вк.

2
DELETED
Автор поста оценил этот комментарий

или это не бага, но с графики как то странно уперлись в потолок.

Это нормализация на 100%

3
Автор поста оценил этот комментарий

Спасибо за интересную либу


Подскажите, пожалуйста, как создать облако слов ("Слова за частотой")

У меня в папке results есть всё, кроме картинки с облаком слов https:// i.ibb.co/Q896Qkz/Selection-029.png

раскрыть ветку (6)
3
Автор поста оценил этот комментарий

На начале поставь галочку на "Add file with words" и добавь файл со словами, которые тебя интересуют. Просто по слову в новой строке.

раскрыть ветку (5)
3
Автор поста оценил этот комментарий

За ответ спасибо)


Ну я хочу всю переписку использовать для создания облака. Думаю, что логичнее добавлять файл слов-исключений.


p.s. Сделаю отдельный файл с сообщениями из генирируемого messages.txt

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Очень много будет таких слов для исключения)

Автор поста оценил этот комментарий

просто создаю txt в блокноте, пишу таким образом слова, а powershell в конце выдает, что необходимо добавить хотя бы одно слово ,got 0

Иллюстрация к комментарию
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Закрой файл и снова открой. Скорее всего вместо слов ты увидишь что-то типа "?????". Нужно файл сохранить в формате UFT-8 или Unicode, не ASCII.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо, изменил формат, сразу все сработало)

4
Автор поста оценил этот комментарий

Огонь!!

4
Автор поста оценил этот комментарий

Еее, петон

1
Автор поста оценил этот комментарий

Как я понял, скрипт не работает, если включена двухфакторная аутентификация

раскрыть ветку (3)
Автор поста оценил этот комментарий

Да(

Не знал о ее существовании

раскрыть ветку (2)
Автор поста оценил этот комментарий

А telegramm api вообще поддерживает двухфакторную аутентификацию?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Вроде да, я использовал посредником telethon, а там ее можно пройти (сам только узнал), поэтому логично что и в telegram api она есть.

1
Автор поста оценил этот комментарий

Вечер добрый, хочу повторить на своей переписке, но не могу разобраться как это запустить. Установил Питон и все необходимые модули (с этим тоже долго разбирался, устанавливал через pip), а когда пытаюсь из командной строки с помощью команды .\python setup.py запустить, он мне выдаёт: ".\python : Имя ".\python" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьт

е правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.

строка:1 знак:1

+ .\python setup.py

+ ~~~~~~~~

+ CategoryInfo : ObjectNotFound: (.\python:String) [], CommandNotFoundException

+ FullyQualifiedErrorId : CommandNotFoundException"

А если двойным кликом, то загружается командная строка питона где я не могу вводить текст
Как быть? :(

раскрыть ветку (6)
Автор поста оценил этот комментарий
Так пиши просто python setup.py
раскрыть ветку (2)
Автор поста оценил этот комментарий

Пробовал
приписка .\ нужна чтобы Win Comm Shell разрешал Питону работать
Во всяком случае мне так написал мой компьютер)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Пбуйте вместо python в командной строке писать просто py.

1
Автор поста оценил этот комментарий

Python неправильно установился, или скорее всего недоустановился. Погугли, как добавить Python в PATH, должно помочь

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Добавил в PATH, запустился GUI, но дальше момента выбора .txt файла не идёт
____________________________________
UPD
Перераспаковал файлы из архива и всё заработало как надо
хз как программисты так работают))

Иллюстрация к комментарию
Автор поста оценил этот комментарий

Я наверно ерунду скажу, но если в архиве нет файла setup.py то собственно, как он откроется?

4
Автор поста оценил этот комментарий

студент что-ли?

раскрыть ветку (13)
25
Автор поста оценил этот комментарий

Ага, третий курс

раскрыть ветку (12)
7
Автор поста оценил этот комментарий

Слово учить вижу не самое любимое )

9
Автор поста оценил этот комментарий

Заметно по коду. Почитай Лутца, оно большее, местами старое, но норм мозг ставит, чтобы лапшекод не писать

раскрыть ветку (10)
17
Автор поста оценил этот комментарий

Спасибо, поэтому и прикрепил код, может кто-то лицом в гадость тыкнет)

раскрыть ветку (7)
9
Автор поста оценил этот комментарий
От себя посоветую еще
Иллюстрация к комментарию
раскрыть ветку (2)
2
DELETED
Автор поста оценил этот комментарий
Почему на обложке птица?
Или это какая-то известная птица-программист?
раскрыть ветку (1)
6
Автор поста оценил этот комментарий

Потому что это издательство O’Reilly. У них все книги такие

4
DELETED
Автор поста оценил этот комментарий

в setup.py нужно пихать не запускалку, а скрипт установки. https://docs.python.org/3/distutils/setupscript.html

ещё стайлгайд стоит почитать https://www.python.org/dev/peps/pep-0008/

раскрыть ветку (3)
3
Автор поста оценил этот комментарий

Да, за setup.py знаю, но я не видел смысла устанавливать пакет, а не просто запускать его.

Стайлгайд вроде читал, что конкретно смущает?

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Для запуска достаточно скрипт отдельный написать типа main.py и туда поместить точку входа как у тебя в классе GUI сделана. Либо можно с помощью pyinstaller бинарники собирать

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо, буду знать)

12
Автор поста оценил этот комментарий

За такие советы ебало бить надо. Советы без конкретики только такого заслуживают.

10
Автор поста оценил этот комментарий

А можно пару примеров вкратце что у автора не так?

Автор поста оценил этот комментарий

Здравствуй. Извини, не программист, поэтому очень сложно понять некоторые моменты.

Что значит Install requirements.txt? Установить то, что там перечислено, или установить файл? Вообще не понимаю этого пункта.

На команду python main.py выдаёт это:

Иллюстрация к комментарию
раскрыть ветку (15)
1
Автор поста оценил этот комментарий

Установить файл можно командой "pip install -r requirements.txt"

Эту, и команду "python main.py" нужно вводить в командную строку, не ту, что на скрине. Нужная командная строка вызывается через Shift+Правая клавиша мыши на папку -> PowerShell

раскрыть ветку (13)
2
Автор поста оценил этот комментарий

ага, всё заработало. Спасибо!

но вот дальше, я так понимаю, для работы с телегой из РФ нужно юзать прокси?

раскрыть ветку (10)
Автор поста оценил этот комментарий

Да. Надо будет добавить фичу со встроенным прокси, полезная штука как оказалось

раскрыть ветку (9)
3
Автор поста оценил этот комментарий

спустя 4 часа попыток запустил ваше творение))
Очень не хватает мануала что и как делать, ссылок откуда скачать одно, другое, куда что писать
Для неопытного пользователя это невозможно почти

А само приложение на 5 из 5, ваш труд стоил своего времени

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий

хм, вот использовал прокси, но всё равно пишет, что нет интернета

и ещё, имеет значение что я пишу в этом месте?

Иллюстрация к комментарию
раскрыть ветку (6)
Автор поста оценил этот комментарий
раскрыть ветку (5)
Автор поста оценил этот комментарий

окей, я смогъ, спасибо!

почему-то через прокси не работало, пришлось ставить OpenVPN, и через него как-раз и заработало.

Ещё последний вопрос: анализировать в тг пока только личные чаты можно? Беседы нельзя?

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Да, пока только личные

раскрыть ветку (3)
Автор поста оценил этот комментарий

Ещё раз спасибо! Очень крутая программа!

Кстати, было бы очень классно, если бы слова записывались не в .txt, а в таблицу Excel. Чтобы можно было сортировать какое именно мы чаще всего используем слово.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Просто поменяй расширение .txt на .csv и будет тебе счастье)

PS У тебя может быть проблема с отображение кириличных символов в Excel, вот эта ссылка может помочь:
https://community.jaspersoft.com/wiki/how-import-csv-documen...

раскрыть ветку (1)
Автор поста оценил этот комментарий

Что-то у меня на telethon и matplotlib ругается.. No matching distribution found для обоих

Автор поста оценил этот комментарий

Лучше всё же создавать виртуальное окружение

Автор поста оценил этот комментарий

Подожду ответа, так выскакивает то же самое

Автор поста оценил этот комментарий
А можно сделать некую прогу под ведро?
Автор поста оценил этот комментарий

что такое «матем»?

Автор поста оценил этот комментарий

а я что то не понял, в чем проблема, библиотеки и тд и тп все поставил..)

Иллюстрация к комментарию
раскрыть ветку (9)
Автор поста оценил этот комментарий

wordcloud не установился

Попробуйте через pip install wordcloud

Или так, как описано в этой ветке: #comment_134558040

раскрыть ветку (8)
Автор поста оценил этот комментарий

visual studio стоит, если через whl ставлю говорит не поддерживается, точнее тулз и сама вижуал

Иллюстрация к комментарию
раскрыть ветку (7)
Автор поста оценил этот комментарий

Не совсем понял при чем установка whl к вижуал студии

раскрыть ветку (6)
Автор поста оценил этот комментарий

там ошибка, что нет библиотечки vs 14, а whl просто не ставится

раскрыть ветку (5)
Автор поста оценил этот комментарий

Можно скрин ошибки с whl?

раскрыть ветку (4)
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (3)
Автор поста оценил этот комментарий

У тебя Python3.7 судя по предыдущим скринам. Тебе нужны эти файлы:

wordcloud‑1.5.0‑cp37‑cp37m‑win32.whl

wordcloud‑1.5.0‑cp37‑cp37m‑win_amd64.whl

раскрыть ветку (2)
Автор поста оценил этот комментарий

win32 не нашел, 64 нне поставилось

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

омг, поставилось как то через pip

Автор поста оценил этот комментарий
@EomEr, а можешь сделать подробную инструкцию, или даже видос запилить, так как в этой фигне и в английском мой интелект сравним с табуреткой
Автор поста оценил этот комментарий

Привет, подскажи пожалуйста что за код требует в авторизации?

Автор поста оценил этот комментарий
Здравствуйте, захотел тоже посмотреть статистику переписки в телеграмме, но так как с момента написания поста прошло больше 2 лет, хочу спросить как сейчас можно посмотреть такую статистику, может уже появились за это время какие то новые инструменты, спасибо.
раскрыть ветку (2)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ку! Пытался запустить старый код для тг, ругается что не может открыть базу данных. Видимо ее уже не получает :( Что там с новым релизом? А то получается это единственный сносный тул для тг...

Автор поста оценил этот комментарий

Привет)
Выскакивает вот такая ошибка:

Иллюстрация к комментарию
раскрыть ветку (8)
1
Автор поста оценил этот комментарий

В 3.6 питоне должно работать без out of memory. Буду смотреть почему такая проблема с 3.7

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да, на 3.6 работает, спасибо)

Автор поста оценил этот комментарий

Ласка, правда? :D

Пишет, что памяти нема. Странная ошибка

раскрыть ветку (3)
Автор поста оценил этот комментарий

Ну да, Ласка)

Автор поста оценил этот комментарий

Попробуй увеличить размер стека, скорее всего его попросту не хватает.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ето не у меня проблема, а у комментатора выше

Автор поста оценил этот комментарий

После distplot_messages_per_day выскакивает?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Уже не могу сказать, ибо после установки Питона 3.6 со всеми модулями прога начала корректно отрабатывать и на 3.7.

Автор поста оценил этот комментарий

Не совсем понятно как вывел облако популярных слов, как понимаю, в выгрузке они все зашифрованы

раскрыть ветку (3)
Автор поста оценил этот комментарий

Не знаю о какой шифрации идет речь, у меня с этим проблем не было.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Тьфу, да, тут просто кодировка - \u043f\u0440\u0438\u0432\u0435\u0442

раскрыть ветку (1)
Автор поста оценил этот комментарий

b'\u043f\u0440\u0438\u0432\u0435\u0442'.decode('unicode_escape')

ещё комментарии
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку