Being the nerd I am, I've always wanted some data-backed insight into the nature of my social interactions online, and I figured I wasn't the only one, Thus arose the idea to build a simple, easy-to-use tool for that purpose, to analyze one's personal data from Facebook Messenger (which seems to be the dominant online text communication platform).

What it does

Messenger Analyzer is a command line tool which allows the user to quickly glean a few interesting results and trends within their recorded history of conversations on Facebook Messenger. The only effort the user must invest is to download his/her Messenger data folder from Facebook's website (an intuitive < 2 minute process), and then provide to Messenger Analyzer a local file path to it.

Messenger Analyzer then offers multiple analysis types to the user, documented in the "help" text that displays when no arguments are provided to the program. The key options in the current version of the program are:

1) Rank all your friends by how much you have talked to them (measured by the total length of all your conversations in characters)

2) Construct a table which indicates week by week how much you've talked to each of your friends (ranked by length of conversations, similarly to as in option 1)

3) Choose a group chat you're in, and rank all the members in it by the total length of their contributions to the chat (measured by total length in characters, again)

4) Dump all of the basic data, sorted alphabetically by conversation name, for perhaps further analysis in a spreadsheet program or another different program

Regardless of the choice of analysis type, the output is an intuitive, conveniently formatted .csv file which can be directly imported into Excel or similar programs, to quickly create a good visualization. Option 2, especially, tends to yield very interesting insights into the trajectory of friendships over time.

How I built it

Building Messenger Analyzer was primarily a matter of designing and maintaining the data structures necessary to efficiently process the relatively-large quantities of data involved. I myself am not the most active user of Messenger (I used different texting platforms for most of high school), but for someone with years of frequent usage, there would be a lot of data, and a lot of potentially significant insights to be derived about their social interactions.

Challenges I ran into

Minute aspects of the debugging process (e.g. making sure everything type-checked properly, fixing hidden typos, etc.) were sometimes rather irritating due to the complexity of the data structures and their interactions.

Accomplishments that I'm proud of

I've been meaning to construct such a personal texting-data-analysis-tool for quite a while, so it feels good to finally bring it to life. I've already discovered some cool trends in my own interactions with people, and in my friends interactions in group chats, just today in the development of Messenger Analyzer - so I'm excited to offer a similar chance to others.

What I learned

I picked up quite a bit of experience in data structure design and efficient data processing throughout this whole process.

What's next for Messenger Analyzer

There is a LOT of room to add additional features and depth of analysis to Messenger Analyzer, to make the tool even more potent at enabling people to derive interesting insights about their interactions. Data like reaction counts, emoji usage, word choice patterns, etc. could easily be integrated, to useful effect.

Built With

Share this project: