Inspiration
The COVID-19 pandemic has fastened innovation in digital learning and increased the availability of online courses, degree programs, and more. However, many students have struggled with staying engaged, accessing the course material, keeping up with deadlines, and getting the educational support they need in online learning. Low-income students and students of color have been disproportionally impacted by many of these issues. We wanted to address the problems with engagement and equity in virtual learning and allow students to learn more effectively/efficiently through EduBot.
What it does
EduBot contains multiple features that allow students to learn and manage classwork efficiently. First, EduBot allows students to upload files containing information from a class such as a syllabus, course notes, etc. It then utilizes natural language processing to answer any questions students may have regarding this material. For instance, if a student uploads the class syllabus and later wants to know what the second unit the class covers is, instead of looking back at the syllabus, the student could simply ask the bot “What is the second unit?” and get a correct response. This allows students to quickly access the information they need, saving time and allowing them to focus on the coursework. Furthermore, students can also receive automated answers to questions they have about the coursework without needing to ask the teacher, which is helpful in cases where the teacher is busy or inaccessible.
EduBot also allows students to keep track of the assignments/tasks they need to do. Students can add assignments and the amount of time they have to complete them or the amount of time they want to take to complete them using the ‘todo’ command. Then, the student can start the task, and when their time is almost up, they will receive a notification/reminder. The bot also contains capabilities that allow students to view all of the tasks in their to-do list at any time and to delete tasks.
Finally, EduBot contains a sentiment analysis feature that allows students to chat with one another to destress. In order to monitor the nature of the language, and whether it is appropriate for students to discuss in a classroom setting. Specifically, we seek to analyze the sentiment of messages within a channel or from a specific user. In the end, the analysis provides enough information to produce a summary of the percent positivity of the channel/user’s discord messages.
How we built it
We built EduBot using Python and the Discord API. We also used BERT (a transformer-based machine learning technique for natural language processing) for the feature that involves answering questions from the text data.
EduBot also collects messages by taking a combination of an integer, a user Discord ID, and a text channel within the Education server, extracting the [integer] most recent applicable messages from either all users or the mentioned user in the given channel. This is accomplished by using a scraping feature through regex functions to find the parts of the discord messages with text other than a URL, user mention, or text channel. After collecting the messages, EduBot uses VADER sentiment analysis on each message, getting a result in [-1,1], where negative scores represent negative sentiment, and positive scores represent positive sentiment.
The reported summary is created through the numpy mean feature.
Challenges we ran into
As this was our first time creating a Discord bot, we ran into challenges regarding getting certain features to properly work. For instance, we had trouble figuring out how to code the part that allows the bot to take an attached PDF file a user sends in the Discord channel and extract the text from the file.
Accomplishments that we're proud of
We are proud that we were able to create a fully functioning Discord bot containing multiple features allowing for efficient student learning. More specifically, we were able to implement commands allowing students to create/manage their own to-do list, upload course files, get their questions answered, and receive sentiment analysis data.
What we learned
We learned how to create/program a Discord bot and furthered our understanding of natural language processing (extractive question answering and sentiment analysis).
What's next for EduBot
Due to the time constraints of the hackathon, we were unable to fully create all of the capabilities we would have liked to have in EduBot. In the future, we plan to add additional features to EduBot to further aid students in online learning. For instance, we could have a feature that keeps track of a student’s grade in the class.
Built With
- bert
- discord
- discord-api
- natural-language-processing
- python
- sentiment-analysis
Log in or sign up for Devpost to join the conversation.