Inspiration

As a student, self-study is a key part of learning, and it often involves reading from a text book. However, passively reading a text may not be the optimal way of absorbing information due to a myriad of reasons — missing certain points in the text, not paying attention throughout the period of reading, forgetting previously read portion etc. In order to tackle this issue, I built a web application where the student or (anyone who wants to absorb the maximum information from a passage of text) is more involved and active whilst learning. The web application — Keep Learning enables students to actively learning by taking a passage of text as an input and generates both questions and answers based on the content of the input text.

What it does

The application would take in a passage of text, and produce questions from the passage, which the user could answer so as to ensure that all the content present in the text is covered.

How we built it

Used a language model pipeline that was trained on SQuAD 1.0. The T5 model described in this paper is used for multipurpose Q&A generation. The model generates questions to which it already has answers. This model is used for generating questions and displaying the corresponding answers. For the purpose of answering questions, the question-generation pipeline was used. The model is deployed using Flask, a microframework.

Challenges we ran into

Perhaps the biggest challenge was working on this project as a solo participant. I had a myriad of ideas regarding how Q&A can be demonstrated in a practical manner. I thought of a quiz application that would generate questions (and also the answers) from different topics. This would eliminate the involvement of humans in the preparation of questions and answers as is the case in traditional quiz applications. The problem with this was generating relevant incorrect options for a particular question. The model is capable of knowing what the correct answer is, but producing words that are similar to the correct answer was bit of a challenge. One of the methods of tackling this could have been using cosine distance. However, due to the constraint of time, I dropped the idea, and instead decided to build something that is simpler — a web application that would extract questions and answers from the passage.

Accomplishments that we're proud of

The web application is at least ready to be used in its skeletal form, and I can use it for personal use while skimming through passages of text.

What we learned

I learnt about various language models,

What's next for Keep Learning

Currently the interface and the functionality is simplistic. I would like to have the feature of taking a test from the application and challenging other users for a live quiz.

Built With

Share this project:

Updates