Inspiration
Students often have difficulty retaining information-heavy topics presented in lectures, whether the difficulty is derived from the content of the course or the lack of interactivity of a standard college lecture. Our web app, RevU, aims to combat both of these problems.
What it does
The main functionality of RevU is automatic summarization and multiple choice generation. Users are able to input a YouTube URL or copy and paste a piece of text that they would like to enhance their understanding of. RevU directs them to a page with either their embedded video or their inputted piece of text next to a summary of the the inputted material, and multiple choice questions below to test their comprehension. In addition, we provide an interface to connect the user back to the media they inputted. Users may click on sentences in the summary to either jump to the segment in the video containing that material or bold the text where it appears in their inputted text entry, so they can review the material our algorithms deem most important. Similarly, when a user answers a question incorrectly, we offer them an opportunity to jump in the video to where the multiple choice question was taken from. If a our users are trying to enhance their understanding of a particular topic, they can search for keywords with our search feature, and RevU jumps to the first segment in the video that mentions that topic.
How we built it
Our web app was built with a Django backend and an HTML, CSS, and Javascript frontend. RevU accepts a YouTube URL and uses the YouTube API to both extract the text from the video and embed the video in the user’s browser. From there, RevU uses Aylien to generate summaries of each lecture or text input, whether the text was from a user entry or from the translated text from the video. A huge portion RevU’s source code is dedicated to generation of good multiple choice questions in order to enhance interactivity. Automatic multiple choice question generation is considered an open machine learning problem as of now. Our approach to this problem was to replace words from select sentences in the lecture and create fill-in-the-blank multiple choice questions by blanking out certain terms in the selected sentences. We broke this problem down into 3 steps: selection of sentences to use as questions, selection of key terms in each question, and selection of distractor (incorrect) answers. For sentence selection, we used a biterm topic model (BTM), and for selection of words to test on, we used TFIDF and a skip-gram model. We also selected similar words to the key term in each sentence using Cortical.io, an advanced API that can be used for word similarity measures.
Challenges we ran into
Our team faced an assortment of challenges both technical and non-technical. Despite bringing two laptops, one of our team members was unable to access the wifi on either for a considerable period of time. Additionally, one of our team members got sick on Saturday night, so we were without that valuable member for a number of hours. We had immense difficulty navigating the various challenging APIs we found, as well. As mentioned above, multiple choice generation is considered an unsolved problem, and because of this, we spent an extensive amount of time planning for this solution. One of our team members spent almost the entire time working on just this part of our application.
Accomplishments that we're proud of
Our team is very proud of the usefulness and functionality of our application as a whole. We were able to make something that could improve the lives of students in a very short amount of time with an extremely simple and user-friendly UI. The features of RevU allow students to learn and review online more effectively and simply than ever before. We are also very proud of the model we used for multiple choice generation as it was such a difficult problem. Finally, we are proud of our team for how well we worked together in a fairly stressful environment, solving complex and important issues.
What we learned
Our team learned a lot about application development as a whole during this process. We were able to strengthen our knowledge in Django development, web design with Bootstrap, and Natural Language Processing. We learned a lot about team development and cooperation, as our team took on difficult challenges..
What's next for RevU
RevU will continue development focusing on making a more polished final project. We are planning on supporting a file upload in addition to the two entry methods we have already and will continue to optimize each of our features to greater develop our user’s experience. We would like to eventually host a website so that all students can use our service.
Log in or sign up for Devpost to join the conversation.