Inspiration
Our project drew inspiration from both DevRev's challenge and our own experiences as customers interacting with companies that cater to a diverse array of consumers, each with varying needs and attitudes.
What it does
Sentix contains a dashboard with statistics taken from a database of customer feedback tweets. It performs sentiment analysis on the tweets, allowing companies to gauge the positivity, negativity, or neutrality of their feedback, as well as displays trending keywords within the collective customer feedback pool. In addition, Sentix contains a chatbot where a company can input their prospective responses to customer feedback and receive a more polished, approachable version of their text.
How we built it
First, we obtained a dataset provided by DevRev (Customer Support on Twitter) and performed various text pre-processing methods in Python in order to clean the data. This includes storing the tweets in their lowercase form, removing non-letters from text, tokenizing text and storing it as a list of words, removing stopwords from words, and applying stemming to words (i.e., removing suffixes). We chose to solely use AmazonHelp’s data for demonstration purposes. After singling out this data, we found the 30 most common keywords in the tweets that mentioned @AmazonHelp and filtered them using a natural language processing library called spaCy in order to identify words that contained product-related themes. We created a dataframe that contained these words and their counts, generated a csv file for this dataframe, and used Tableau to visualize the data in a horizontal bar chart. We then performed sentiment analysis on all of the tweets that mentioned @AmazonHelp and created a new column in the original AmazonHelp dataframe that assigned values of positive, negative, or neutral to each tweet. In Tableau, we visualized this in a pie chart.
For our front-end, we created a React application, and we embedded the code for both Tableau visualizations into our application to create a dashboard.
Finally, for our chatbot, we utilized OpenAI’s ChatGPT for chat completion in order to be able to take user input (in our case, a company’s prospective response to a customer), perform sentiment analysis on the input, and, if the input had a negative sentiment analysis value, output a more amiable response.
Challenges we ran into
One of the main challenges we ran into was using Open AI’s API. Although some of us had experience working with APIs, issues arose with varying API syntax between different versions of OpenAI. Another problem we ran into was formatting all our features on the website, including implementing the Bootstrap code properly, routing, and styling, since some of us had more experience with Angular rather than React. Preprocessing and tokenizing the Tweets was also a bit of a challenge due to the existence of emojis, multiple languages, and other interruptions in the text.
Accomplishments that we're proud of
Successfully implementing the OpenAI API was a proud moment for us partially because of the amount of time spent on debugging. Utilizing and understanding sentiment analysis was also notable for us because it allowed us to develop a deeper understanding of machine learning. Embedding a dynamic dashboard using Tableau was significant due to the extra layer of visual appeal it gave to our app.
What we learned
We gained much more proficiency in understanding what an API is and implementing it as well as applying transferable skills across frameworks (e.g., Angular -> React). We also learned the various methods of data cleaning, specifically for text, and gained knowledge of all the options available for natural language processing/sentiment analysis.
What's next for Sentix
We would like to implement a backend with MongoDB and Express in order to store various types of feedback (e.g., Github issues) and then use a combination of OpenAI and web scraping to generate automated responses to frequent errors or questions. In addition, we plan to implement DevRev’s API into a revamped version of our app that integrates NLP into ticket management for software developers.
Log in or sign up for Devpost to join the conversation.