Inspiration
McGill provides a lot of helpful resources to support their student's learning and promote better mental and physical well being. But oftentimes, such resources can get lost within the many webpages of information and become difficult and confusing for students to access. For students to make better use of the resources the university has to offer, our team came up with McGill's very own chatbot. People are more likely to ask a friend for help than search through links and we hope to emulate that experience with the McGill ChatBot. It makes finding university resources easier, quicker and much more interactive!
What it does
Our McGill ChatBot is able to engage in simple conversations with users and help guide them towards the resources they need. This includes but is not limited to McGill libraries, mental wellness services and nearby coffee shops around campus.
How we built it
Our Chatbot is built using a simple two layer neural network, which is a ML model that takes in a collection of data and predicts how closely related the given inputs are to the actual labels. In between, hidden layers exist to recognize a pattern among the arrangement of the input and transfer this newly identified pattern to the next layer when they get activated. Since we were dealing with chatbots, some natural language processing techniques were incorporated to preprocess texts and transform them into numerical values which later could be interpreted by the ML model. Since it revolves around guiding users related to school resources, the dataset was created in relation to the expected questions/messages and the corresponding context. After centralizing crucial data, we trained the model based on this dataset so that our chatbot application can predict the user’s text message to the closest context and provide resources such as links. An API was implemented with Flask to bridge the bot model made in Python on a static website using CSS, HTML and JavaScript.
Challenges we ran into
Since the chatbot dealt with a very niched topic, it was initially difficult to find a large enough data set to train the model for high accuracy. We therefore polled ourselves in the team, and came up with a large enough working data set and hence further optimized the accuracy of the model.
Accomplishments that we're proud of
We are proud of producing a functional product for 3/4 of our team’s first time participating in a hackathon. Not only did we finish, but we are especially proud of learning about concepts taught in upper year courses and applying them with our limited experience.
What we learned
Firstly, we learned about working in a team dynamic to implement technology-based solutions to real world problems. This involved learning about time management for small-scale projects, the delegation of labor, and effective communication. On the tech side, we learned the basic principles of training a neural network, natural language processing, implementing flask APIs and creating frontend interfaces using CSS, HTML and JavaScript
What's next for McGill ChatBot
In the future, we plan to increase the size of our datasets used to train our AI. Ideally, we would be able to scrape data from McGill’s websites to enlarge our data and make it smarter and more functional. We would like to widen the range of topics the ChatBot is able to assist with, such as helping with course recommendations and extracurricular activities. It would also be interesting to turn the McGill ChatBot into a web extension similar to other popular McGill specific extensions.
Log in or sign up for Devpost to join the conversation.