Inspiration
We were inspired to create this application after looking into ways to make daily activities more convenient for the user. Initially, we were interested in developing a web scraper that would concatenate all the data from different online applications onto one page for ease of use. However, we pivoted towards focusing on SMS/chat messages as this could be applied to many different social media platforms through the use of their respective API. We wanted to be able to apply AI to help the user’s experience and comfort and figured applying AI to messaging services would address this.
What it does
MePri is an application that helps organize a user’s messages and notifications by ranking the priority of a message the user receives based on a neural network model that we developed. Based on this determined priority, the notification’s alert and display is altered to help fit the needs of the user. The user can then submit feedback on the response to help train and improve the AI being used. Right now this is implemented as a discord bot, but in the future can be integrated with other messaging platforms and mobile devices (SMS messages). As of right now, MePri is able to achieve an accuracy of 99.62% after full training with test data that is sent through the discord bot.
How We built it
First, we obtained a training dataset for the neural network model by logging all the conversation between us on discord. This provided us with thousands of messages with contextual conversations, which would help train the model to understand and use the user’s history to determine whether the current message is of priority or not. After reading and organizing the different features from the dataset, these features are then passed to the model as a training dataset. After the model is fully trained, it then can receive input from Discord as text messages with information about the sender, the reply time, and more and determine its priority. It can also help train/learn from these new inputs, and also notifies the user in Discord if the priority is high.
Challenges We ran into
The first challenge we ran into was using the Naive Bayes algorithm in our machine learning model. All three of us have had some experience with training neural networks. However, text classification and the algorithms associated with it were all new to us. We discovered the Naive Bayes algorithm after seeing other text classification examples using it, and from there we had to understand and learn the computations behind it to ensure that it’d work with our desired model. After that, we implemented this algorithm with tensorflow and sckit-learn to our AI to classify the messages
Another challenge we ran into was writing the Discord bot. Previously, none of us had experience with writing a bot for Discord. So for this process, we had to read through the documentation and get familiar with the API, and also connect the model with the bot to be able to dynamically read messages and return the result.
Accomplishments that We’re proud of
We’re proud of being able to push our learning in neural networks to learn and implement a new algorithm in a short amount of time. We’re also proud of learning how to use the Discord API and implement a bot using it. In both of these areas learning new tools to use in our code challenged our previous knowledge while making us more proficient.
What We learned
Over the course of this project we strengthened our skills in neural networks and machine learning. We learned how to implement a Naive Bayes neural network as practically apply it. We also learned how to use the Discord API to write a bot that bridged the gap from Discord to our Neural Network. In doing, so we strengthened our overall critical thinking and Python skills.
What's next for Message Classifier
The next steps would be to expand the application, both in the applications it’s integrated with as well as the product itself. First, we would want to expand the output of the neural network and application. Right now, the discord bot is able to return the priority and have a designated notification and be able to receive feedback. However, we want a more impressive output in a sense while still determining the priority, which would mean seeing alternatives that are available in the API. Also, we would like to expand this to other platforms, like Slack, Instagram, etc. and even on mobile devices. On mobile devices, this could target SMS messages and have control over shown or minimized notifications.
What we did beforehand
Before the hackathon, we set up the GitHub repository. The resulting commits were only for changes to the README and .gitignore
Built With
- artificial-intelligence
- discordapi
- machine-learning
- pandas
- python
- scikit-learn
- tensorflow
Log in or sign up for Devpost to join the conversation.