Discord sentiment monitoring app
The above app is a simpler version of an app I developed to monitor sentiment in a Discord channel. Currently it monitors a private chat, but the framework can be applied to any Discord channel and scaled to deal with much larger amounts of data. Pretty much every part of this can be made more (or less) complex, from the data handling to the analysis and dashboard displays.
Project Overview
This application provides real-time sentiment analysis and topic categorization for Discord messages of a specific channel, in a specific server. It leverages natural language processing (NLP) techniques to offer insights into user sentiment and discussion topics, helping end-users better understand their customer base.
Key Components
1. Discord Bot
– Listens to messages in specified channels
– Sends collected data to the central database
2. Database
– PostgreSQL database hosted on Heroku
– Stores processed sentiments and categorized topics
– Enables efficient querying for analytics and dashboard display
3. Sentiment Analyzer
– Uses a Huggingface model for sentiment analysis
– Classifies messages into 5 distinct sentiment categories: very positive, positive, neutral, negative, or very negative
– Associates these sentiments to scores for potentially more nuanced analysis
4. Topic Categorizer
– Uses zero-shot classification to categorize topics given pre-defined categories
5. Email Notification
– Sends an email notification if sentiment of a specified number of messages drops below a specified threshold
6. Integration Script
– Python-based script that orchestrates data flow between components
– Retrieves new messages from the database
– Processes messages through sentiment and topic models
– Updates database with analyzed results
7. Web Dashboard
– Built with Flask
– Displays real-time sentiment trends
– Classifies users into different groups based on average sentiment of messages
– Features interactive charts and graphs for data visualization
8. Heroku Deployment
– Fully deployed on Heroku’s cloud platform
– Utilizes Heroku Scheduler for running periodic tasks
– Implements auto-scaling to handle varying loads
Technologies Used
– Python and many libraries
– Natural Language Processing
– Machine Learning
– Web Development
– Database
– DevOps
Key Features
– Real-time sentiment analysis of Discord messages
– Dynamic topic categorization to identify discussions
– Interactive web dashboard for data visualization
– Scalable architecture capable of handling high message volumes
This app demonstrates knowledge in full-stack development, machine learning, natural language processing, and cloud deployment, showcasing the ability to create end-to-end data-driven applications.
Click here for Github repo