Inspiration

Our inspiration initially came from two things: wanting to implement machine learning, and wanting to create a project that would have an impact on our everyday lives. Regarding the latter, GroupMe is used by students in nearly every class to communicate, but it does not have any functionality in terms of chat moderation.

What it does

Our program is a bot that will monitor the chat, and send a warning message when it detects anything it deems as foul language

How we built it

For the server-side, we utilized Python with a Flask framework. We also used Ngrok for web tunneling, allowing us to run the server locally but interact with the GroupMe API. For the machine learning model, we utilized an example Python script that worked with the same dataset, modifying it to our needs. For libraries, we utilized Numpy, Scikit-learn, Pandas, and more.

Challenges we ran into

On the server-side, we ran into an issue with one of our routes where our program appeared to hang, not throwing any errors but also not executing any code below the route. This was our biggest issue, and we spent a good deal of time trying to fix this. With the machine learning, our biggest issue was filtering the messages used to train the model. The messages were all tweets, so they contained lots of extraneous text that was unnecessary.

Accomplishments that we're proud of

We are the most proud of incorporating machine learning into a broader project. Our members have experience with machine learning models and web servers separately, but none of us had ever combined the two in a project, and so it made us very proud to create something unique and useful that incorporates machine learning.

What we learned

This project allowed us to fill in the gaps of our knowledge. Our team members who typically work with back-end servers were able to learn about machine learning, and our team members who are knowledgeable on machine learning were able to learn about back-end servers.

What's next for GroupMe Clean Chat Bot

Our plans now are to look into new useful features, and find more datasets for training our model. One feature we wanted to add was having the bot kick users accused of foul language, but the GroupMe API does not allow for this. A feature we do want to implement is having the bot DM the username of anyone accused of foul language to the group owner, so that they may kick them.

Discord

Feel free to contact one of our members on Discord, Joshua Lamb, at Armoresh#5028.

Share this project:

Updates