Из-за эпидемии каникулы становятся все длиннее и длиннее, и я уже давно никого не видел.
Думая о приближающемся Дне святого Валентина, я проснулся и подумал, что могу создать облако слов, чтобы показать любовь на основе записей чата WeChat, и чат, чтобы выразить свою любовь. Но, если подумать, поскольку история чатов WeChat была загружена, почему бы не проанализировать данные дальше? Таким образом, целями анализа становятся:
- генерировать облако слов;
- Простой текстовый анализ расшифровок чата.
1. Сбор данных
Поскольку эта часть не является основным содержанием, вы можете напрямую использовать контент, связанный с Baidu, например статью «Android взламывает базу данных WeChat для получения записей чата». Для Android основные моменты перечислены ниже:
- Получите root-права на свой мобильный телефон или загрузите эмулятор Android и проверьте «root-права»;
- Найдите папку с длинным списком имен в пути «/data/data/com.tencent.mm/MicroMsg» мобильного телефона или симулятора (красная рамка на рисунке ниже) и найдите файл базы данных с именем EnMicrioMsg. db, в котором хранится история чата.
- Используйте MD5, чтобы взломать строку «IMEI (серийный номер мобильного телефона) UIN (номер информации пользователя)», выберите 32 строчных символа, а первые 7 цифр расшифрованного кода являются паролем базы данных.
- Используйте sqlcipher (ссылка:disk.baidu.com/yes/1IM3 вы 02 и выше…Код извлечения: ka4z) Прочтите и откройте EnMicrioMsg.db и преобразуйте его в формат csv.
После того, как я получил CSV-файл и открыл его в Excel, у нас с женой оказалось более 13 000 записей чата. WeChat — это действительно основа отношений на расстоянии. После анализа данных выясняется, что тип — это тип сообщения, например, type = 1 относится к обычным текстовым сообщениям, type = 3 — к голосовой информации и т. д., isSend — к тому, кто отправил сообщение, а isSend = 0 представляет другую сторону.отправлено, 1 означает, что оно было отправлено нами, createTime относится к метке времени сообщения, а content представляет содержимое сообщения. Текстовый анализ содержимого чата в основном выполняется для этих четырех столбцов данных.
После простой сортировки данные csv импортируются, и весь процесс анализа завершается с помощью pandas.
import pandas as pd
data = pd.read_csv('data.csv')
2. Генерация облака слов
Чтобы использовать python для создания облака слов, вам нужно вызвать wordcloud.Если он не установлен, вам необходимо сначала установить его.
pip install wordcloud
Процесс генерации облака слов не сложен.Во-первых, алгоритм jieba используется для сегментации каждой записи чата.Конечно, перед сегментацией слов вы должны импортировать свои собственные стоп-слова и свои собственные фразы, и каждый раз сохранять полученные слова в массиве all_words. После того, как сегментация слов завершена, частота слов сортируется в пандах с использованием метода, аналогичного сводной таблице и сортировке в Excel, После завершения сортировки он экспортируется в csv.Ключевые 4 строки кода выглядят следующим образом.
df = pd.DataFrame({'word': all_words})
words_count = df.groupby(by=['word'])['word'].agg({"计数": np.size})
words_count = words_count.reset_index().sort_values(by="计数", ascending=False)
words_count.to_csv('词频.csv', encoding='utf-8')
Откройте «word Frequency.csv» и обнаружите, что всего 14 слов с частотой слов выше 100. За исключением прозвищ, «хахаха» и «хахахаха» занимают две другие позиции в первой пятерке. Мы все ха-ха .
Чтобы увидеть частотное распределение слов более интуитивно, используйте следующий код для создания облака слов.
loveImg = imageio.imread('love.png')
wordcloud = WordCloud(background_color='white',
mask=bimg, font_path='simhei.ttf')
words = words_count.set_index("word").to_dict()
wordcloud = wordcloud.fit_words(words["计数"])
bimgColors = ImageColorGenerator(loveImg)
plt.axis("off")
plt.imshow(wordcloud.recolor(color_func=bimgColors))
plt.show()
Хм... Содержимое похоже на то, что представлено в таблице, так что особо толковать не буду.Я кисло и слишком сладко... Накорми себя лимонной серией...
3. Анализ текста чата
В предыдущей части для генерации облака слов необходимо использовать код для удаления отправленных выражений. Во время анализа текста я отсортировал и подсчитал выражения в этой части и обнаружил, что 10 самых популярных системных выражений, отправленных моей женой и мной (отсортированы слева направо), показаны ниже. У [Happy] больше всего выражений, и все еще довольно много общих выражений~
Подсчитав время общения в чате, выяснилось, что 12:00 и 22:00 являются пиковыми периодами общения в чате, что указывает на то, что мы очень заняты в течение дня... Небольшой пик приходится на 12:30, что соответствует наше время сна очень хорошо.
Используйте метод, упомянутый в разделе «Использование Python для анализа текста ваших собственных статей», рассматривайте каждый день как «статью» и используйте TextRank (TF-IDF не работает) для получения ключевых слов каждого дня. формируется матрица слов, и получается следующий рисунок.
Все темы вращаются вокруг слова «жена», включая основные события, которые произошли в то время (например, эпидемия, Иран и т. д.), работу (например, открытие, парковочные места и т. д.), обучение (например, образование, домашнее задание, и т. д.), жизнь (например, еда), захват билетов и т. д.), эмоциональные обмены (объятия, радость и т. д.), это очень теплый чат. Анализ данных не может определить чувства, но может отражать чувства только с одной стороны. Факты доказали, что наши чувства позитивны и мы продолжаем двигаться вперед~
Публичный аккаунт недавно рекомендовал прочитать:\
GAN существует уже 6 лет! Пришло время для инсульта!
Были загружены сотни документов GAN! С недавним обзором генеративно-состязательных сетей!\
В небе дождь, а у меня его нет! Как насчет GAN для удаления дождя?\
Угасание! ГАН прогнозировать?\
Руошуй три тысячи, только бери свою отметку! Как насчет AL (активного обучения) в сочетании с GAN?\
Обнаружение аномалий, как работает GAN?
Виртуальная переодевание! Взгляните на то, что делают эти последние газеты!\
Миграция макияжа лица! Краткий обзор нескольких статей с использованием GAN
[1] Как насчет генерации GAN на медицинских изображениях?
01-Краткий принцип формулы GAN - Маленькие сокровища в железной броне
GAN&CV группа обмена , будь вы новичок или большой парень, сердечно приглашаем вас присоединиться!\
Обсуждайте и общайтесь вместе! Нажмите и удерживайте заметку [Присоединиться к группе], чтобы присоединиться:
Чтобы больше поделиться, нажмите и удерживайте, чтобы подписаться на эту официальную учетную запись:\