Análisis de un grupo de WhatsApp con Python

Arling Vázquez
MCD-UNISON
Published in
4 min readDec 8, 2020
man using mobile smartphone

Familia, amigos, trabajo, escuela, tías … la lista es larga. Ser agregado a grupos de WhatsApp es algo que ocurre con frecuencia; analizar los datos que se generan en ellos, no tanto.

A continuación, se presenta el proceso de análisis de un grupo de WhatsApp basado en el artículo Whatsapp Group Chat Analysis using Python and Plotly de Saiteja Kura.

Obteniendo datos

El contenido del chat se exporta a un archivo de texto omitiendo mensajes multimedia; además, se definen algunas funciones cuyo propósito es verificar si cada línea inicia con fecha y hora, encontrar el autor del mensaje y dividir cada línea en columnas.

Para facilitar la lectura, el código que corresponde a esta etapa se colocó al final del artículo.

Tratamiento de los datos y anonimización

Por privacidad, los nombres de los integrantes fueron reemplazados por personajes de Brooklyn Nine-Nine.

Ahora, los datos son anónimos 🙊

Estadísticas del grupo

En 4 años se han enviado más de 22 mil mensajes, casi el 19% de ellos son multimedia.

Mensajes enviados:  22777
Mensajes multimedia: 4327
Emojis: 7840
Links enviados: 326

Se han enviado 521,793 palabras y 392 emojis diferentes.

En la siguiente tabla se muestra el top 15 de emojis. Desde 😂 hasta 🍻.

Los emojis más utilizados son 😂 y 🤣, con 15.2% y 12.1%, respectivamente.

Ahora, algunos estadísticos por autor

Resumen de Charles -
Mensajes: 1125 - Palabras por mensaje 5.44 - Multimedia: 52 - Emojis: 684 - Links: 15

Resumen de Amy -
Mensajes: 3242 - Palabras por mensaje 5.22 - Multimedia: 1233 - Emojis: 1381 - Links: 70

Resumen de Kevin -
Mensajes: 5081 - Palabras por mensaje 4.15 - Multimedia: 478 - Emojis: 529 - Links: 110

Resumen de Sharon -
Mensajes: 1336 - Palabras por mensaje 5.81 - Multimedia: 433 - Emojis: 1114 - Links: 25

Resumen de Hitchcock -
Mensajes: 650 - Palabras por mensaje 4.34 - Multimedia: 73 - Emojis: 627 - Links: 7

Resumen de Pimiento -
Mensajes: 2612 - Palabras por mensaje 7.26 - Multimedia: 904 - Emojis: 880 - Links: 42

Resumen de Raymond Hold -
Mensajes: 1530 - Palabras por mensaje 3.77 - Multimedia: 304 - Emojis: 1502 - Links: 5

Resumen de Jake -
Mensajes: 1164 - Palabras por mensaje 4.78 - Multimedia: 422 - Emojis: 533 - Links: 10

Resumen de Gina -
Mensajes: 682 - Palabras por mensaje 4.78 - Multimedia: 211 - Emojis: 218 - Links: 7

Resumen de Rosa -
Mensajes: 348 - Palabras por mensaje 3.42 - Multimedia: 41 - Emojis: 189 - Links: 3

Resumen de Doug Judy -
Mensajes: 308 - Palabras por mensaje 5.29 - Multimedia: 57 - Emojis: 8 - Links: 10

Resumen de Scully -
Mensajes: 243 - Palabras por mensaje 8.49 - Multimedia: 61 - Emojis: 90 - Links: 22

Resumen de El Buitre -
Mensajes: 107 - Palabras por mensaje 5.79 - Multimedia: 54 - Emojis: 71 - Links: 0

Emojis enviados por persona

Amy 🤣😂

Kevin 🙌🙏

Pimiento 🤣

Hitchcock✨👏

Jake 👀🙊

Rosa 👍😡

El buitre 🙆‍♂️🥳

Nube de palabras

Para generar la nube de palabras se actualizó el listado de stopwords en español. Entre las palabras más enviadas destacan: jaja, equipo, gracias, favor, encuesta, equipo y mañana.

Cantidad de mensajes enviados por día

Los días que se han enviado más mensajes fueron el 1 de julio de 2018 y el 8 de mayo de 2020, ¿asunto? un proyecto de trabajo y restricción en la compra-venta de bebidas alcohólicas 🍺 en Sonora por COVID-19.

En viernes se envían más mensajes que el resto de la semana; por otro lado, los días menos activos son el domingo y, obviamente, los lunes.

Funciones, parseo y tokenización

Background photo created by Dragana_Gordic

--

--