BreakupBot: An AI Therapeutic Chatbot Conducting Empathetic Counselling via Heartrate Sentimental Analysis

BreakupBot is a therapeutic chatbot developed to help get over romantic breakups. Organically acquired 200+ users of varying demographics. The system, initially built to help people who could not get over breakups, uses scraped content from dating sites and builds a philosophical counselling knowledge graph as the decision tree for generating responses to user input.

[paper] [code] [app]

Technical summary

  • Built Android application and JSON-based API that receives user text input and returns counselling-based responses

  • Based on real-time user variables (lover type, heartrate-sentiment approximation), categorized text corpus is filtered before running hidden markov chain text generator

  • Used random forest classification model and hierarichal clustering to bucket users into John A. Lee’s six types of lovers based on preliminary text input

  • Adopted script that estimates heartrate from camera image input based on measurement of signal peak difference at time intervals

  • Scripted web scrapers to pull high-rated responses from love-related forums; constructed knowledge graph from corpora to facilitate filtering for text generator


The backstory of the project started off in my freshman year when my close friend got dumped by his girlfriend right before his final exams, and his GPA dropped from 3.7 to 2.7. It made me realize that even someone as intelligent as my friend could be vulnerable to the emotional dangers of romance. So I set out to figure out a way to help him recover. He did not want to talk about his situation with anyone and wanted to save “face”, so I figured he could speak with a very smart bot.

I started out surveying the preferences of users (students who went through breakups recently), to validate the method of human-computer interaction, and to identify the optimal counselling approach. After settling on a chatbot interface, the next step was building the backend system.

The first component of the system was user characterization (identifying which type of lover the user is based on discussion with the bot, based on the Love Attitudes Scale framework). The second component was heartrate sentitivity analysis to adjust the direction and sensitivity of responses generated. By using phone LED and camera to capture the redness of the finger and processing the image with Laure’s algorithm, we can estimate heartrate as a proxy for instantaneous stress of the user mid-conversation. The third component would be usage of philosophical counselling (which is more open-ended and dialogue-based than psychological counselling). Based on Sternberg’s Triangular Theory of Love, the bot would attempt to rationalize the relative position of the user in their relationship. The fourth component would be the source data of responses (scraped from dating sites or love advisory sites), and based on the personality adjustment mechanisms would run a text generation algorithm as response to user input.


After building and testing the system within a group of test users, I additionally submitted the project to the President’s Cup. I was the only participant who was a Year 1 Business student and working solo; all other competitors are Post-graduate or Final Year students working in teams of four or five.


prototypevideoposterFurther reference and media

You may install the apk file for Android. You may also preview a simplified demo of the NLP system through Facebook: Click “Send Message” to start interacting with the isolated NLP system.