We were inspired by our own experiences as Uni students - often notes are either handwritten, or not organised, or quite long, or all three and more - so a system that could extract questions and their answers from a set of notes would be great, and help us with studying.
What it does
We've built a web system that allows the user to upload a text file containing their notes. The system then runs some natural language processing algorithms and generates a graph of some of the facts and definitions it can find in the notes. This graph is then used to generate questions (and their answers), which are shown to the user. Since the algorithm isn't foolproof, the user has the option to edit their auto-generated flashcards before downloading them.
How we built it
We built the system by first dividing it into chunks and splitting among our team members: one person looked at the web frontend, one person at natural language processing, one person on a graph database, and one person worked on question generation. Once we had some basic systems working, we put it all together and got a very basic site working (with fairly bad generated questions, but working nonetheless)! After this, team members took turns taking breaks while people deep-dived into polishing particular areas: making the frontend nice, adding more questions that could be generated, etc.
Challenges we ran into
One of our team members accidentally deleted her home directory, essentially disabling her computer for the rest of the hackathon (and losing a few hours trying to fix it). The question generation and actual processing of notes were also very hard - natural language is tricky and often fragile, and even the most cutting edge libraries and frameworks can break in odd ways. This meant we had to work around this, and write some lightweight custom algorithms to detect patterns specific to lecture notes that were useful for e.g. finding out examples, or determining definitions.
Accomplishments that we're proud of
Getting this working at 11pm was really nice and boosted everyone's mood, even if it was a barebones MVP - gave everyone the peace of mind to actually get some sleep. Getting a working project using tools we've never used before (neo4j) in such a short time frame was really rewarding.
What we learned
NLP entity parsing, how to integrate and use graph databases in projects.
What's next for Lec2Flash
Making the AI systems more advanced, by using more recent NLP research. Adding more imports formats (different file types) and export types (to different flashcard systems)!
You can see our presentation here.