Ambience is a WhatsApp Chat Analysis WebApp.
Given you have a long English chat conversation, you can export and analyze it. For each single message in the chat, ambience predicts an intent and provides an overview of used intents. How does this help? For example, it can provide an overall impression which chat participant is more likely to propose something, or who asks more.
Find a deployed version here: https://ambience.uber.space.
An overview of the conversation will look like this:
The frontend is a React web app. For message classification, we use Rasa NLU. The predictions are transmitted via a lean Flask webserver.
To build the frontend, run:
yarn --cwd frontend
To install the pip requirements, and download the NLP model, run:
pip install -r nlp/requirements.txt
./nlp/get_mitie_models.sh
To start the frontend, run:
yarn --cwd frontend start
To start the backend, run:
python nlp/server.py
To verify that the setup works you can open http://localhost:3006
and upload a chat file like data/chat_en_short.txt
.
Of course you can also take your own exported WhatsApp conversation.
In order to (re)train the Rasa classification model, run:
python -m rasa_nlu.train \
--config nlp/config_mitie.yml \
--data data/training_data_mixed.json \
--path nlp/projects
Analogously to rasa intents:
- goodbye
- greet
- affirm
- deny
- argue
- propose
- ask
- explain
- other
In order to deploy this to our Uberspace, we followed the the instructions in deploy/README.md
Rasa: