Freudian Chat

Technologies Used:Java,Python,Flask

Hello all. We are looking at one of my android projects this time. It is named as Freudian Chat.As always i start with crediting my friends Aditha Selvaraj and Aniket Bapat who played a big part in this project completion as it was a group project. This is an interesting concept which is based on identifying the sentiment of the user based on how his chats in a group.This is an interesting and upcoming concept where in companies are trying to identify how users are feeling currently and suggest them to perform some action.

In this app we are going to identify the sentiment of the user based on how he communicates in a group and then suggest him some movie scenes. We are currently identifying 3 types of sentiment.HAPPY, SAD and NEUTRAL, and also how happy or sad a user is. We are using Google Natural Language API to identify the sentiment of the user. We will be analyzing the sentiment of each sentence by sending an appropriate request to Google CLoud Platform and then calculate the average score over the period of time to identify the magnitude of his emotions. The Chat application on top of which this process is carried out is built using the SendBird API. SendBird allows us to create easily a group chat application that we can use to perform other operations.Once we have the sentiment score we then send to a python backend which then processes the sentiment and suggests us movies .The movies are obtained using the MovieLens Database and we classify the movies and suggest top movies from different Journal based on users sentiment.

Once we have the movie Names we then use the youtube API to fetch relevent short clippings from the suggested movies that the user might be interested in watching. My Task in this project was to extract the messages sent by the user in the group chat and then process them using the Google Natural Language API and then get the sentiment score for each message and process them to find and real time average over a period of time and the send a request to the Python Backend. I also word on processing the response sent from the Python backend and making a request to the Youtube API for getting the appropriate movie clipping links and displaying it to the user.

The first part of this APP was to contruct the Chat application. This is constructed using the SendBird API. Sendbird helps us to create a customizabale chat application easily. They provide great UI's whcih we can use if wanted. It also allows us to create a group chat easily which will allow us to communicate easily with our friends.

The below Image shows some of a random conversion between me and Aniket Bapat

List of Chat Members


A conversation between Me and Aniket

As you can see there were some mixed contents , some happy and some sad. These contents are then processes to find the cumulative sentiment so that appropriate requests can be sent to the server for processing.

The processing of data is done on the server using Apache Spark.We use the MovieLens database which consists of large sets of movies. When a request comes to the server we first process the senttiment score sent from the client. Depending on whether the user is happy , sad or neitral we then begin querying the dataset. We then get the top ranked movies from the required journal and send the movie list from teh server back to Android. For example if the user is SAD we iterate over the comedy Journal and suggest a list of movies from that journal.

Once we receive the list of movies from the Python Server via the Flask web Framework.We then form out required queries based on the user sentiment and send a request to the Youtube API. The Youtube API then returns a list of movie scenes from the requested movies. The user then gets to watch these links.

A List of movies returned from the Youtube API

This bring to the end of this project. Which has got a lot of scope. We are further planning to add user ratings to these movie scenes so that we can further alter out movie suggestions