Education Tools Inspired by the COVID-19 Crisis
We created a web application that allows the user to input a text file from their device, submit the file, and our program will process the text file and extract a summary from it and generate supplemental questions. We have done this first through the use of Natural Language Processing Libraries that test to see if each sentence in the text file holds any importance to the overall subject of the passage. If it does, we keep it as part of the summary. Once the summary is generated, our program will go through the summary and generate questions, so that only important questions that are relevant and helpful are generated. The program only outputs four questions at a time and if the user wants new question he/she can click generate questions once more. We then created the front-end for this web app using Flask Web Framework: a sophisticated web framework that runs python backend and can support simple web applications like ours.
Through this coronavirus pandemic, many children are forced to stay at home and receive lectures and textbook chapters from their teachers with a lack of real projects to instill content. As two high schoolers ourselves, we would really like a way for us to take pages from our textbooks given by our teachers through eLearning and transform them into a concise summary with questions generated in order for us to truly grasp the concepts we are learning. We plan to improve our project and make is usable for all throughout these hard times.
Challenges We Ran Into
While trying to finish this project, we ran into numerous challenges. First, we were facing dependency issues with the libraries we were using and had to keenly search through Stack Overflow to find answers. This task is not a common one to be done before, so it was difficult to find people with previous experience on something like this. We also faced issues with grammar in our outputs such as antecedent pronouns, misplaced modifiers, and fragments that we plan on fixing in the future. Lastly, it was pretty difficult to combine the NLP Algorithms with the front-end Flask programs as the former is very flexible and unorganized, while Flask needs files to be organized and works with specific function and features.
Accomplishments That We Are Proud Of
As people who are relatively new to Machine Learning relative to the professionals and adults who could accomplish this tasks, we are really proud of ourselves for sticking to it and staying determined. We thoroughly enjoyed making this project and we are proud that we were able to practice our python and programming skills, all while having fun. Finishing the prototype in such a small amount of time is an accomplishment in and of itself and we are so proud that we stayed focused and kept our eyes on the goal.
What We Learned
We learned so much from doing this project such as teamwork, more python, NLP techniques, and Flask techiques. We also developed sharper skills for finding help online, which is a crucial process of improving your code. We also learned that the most impactful ideas are the ones that can affect the most amount of people through this process as we talked with many students who wished something like this was out there. Overall, we are very happy with our prototype!
First, install the requirements for this to function
pip install -r requirements.txt
Next, run this line to satisfy the staCy library requirements
python -m spacy download en_core_web_sem
(Depends) You may need to run this after the previous one if mentioned.
python -c "import nltk; nltk.download(averaged_perceptron_tagger)"
Running the Program
On your command line:
Once, this is ran, it will display a localhost port to copy and paste into your browser (Ex: 127.0.0.1:5000)
What's Next for StudyBuddy
In the future, we plan on creating a way to generate bullet-pointed notes from text, an OCR to scan handwriting to text, an algorithm to transform audio to text so students can record and upload teachers' lectures, flashcards for the questions and answers, and a page that parses online information to provide extra help and info for the student on the topic relates to the text file. In regards to the front-end, we would like to make the interface responsive to all platforms. We would also like to add a login interface, so users can create accounts and save their generated questions, notes, texts, and lectures organized by class. This would add organization and individualization to our platform making it favorable to all!
Automatic Question Generator: https://github.com/adityasarvaiya/Automatic_Question_Generation
High Level Summarizer: https://github.com/miso-belica/sumy
Try It out