note-o-matic

Inspiration

As a group of students, we're often presented with huge amounts of notes to condense and read through in a painful, paragraphed format. We built note-o-matic to combat this problem, by taking in notes, reading and condensing them through NLTK, finding key words using an expectation maximisation algorithm and outputting new, fresh notes.

How did we make it?

We used Flask in order to connect our frontend and backend together, and the application is hosted using Google Cloud's App Engine. We used the NLTK module in Python in order to process the notes as per the English language, and using word2vec to create and graph words, as well as density-based scanning, we were able to determine what words are most linked to others in clusters, allowing us to graph and source the key words from the inputted notes.

What did we learn?

We all managed to improve our Python skills, especially mathematically and algorithmically due to the complexity of word2vec. Creating a whole application from scratch was something none of us have done before, and integrating each of our individual skills together - design, coding, testing and cloud work - was an exciting task.

How challenging was it?

The one common technology everyone on our team knew was Python, so creating and building the Python backend was no issue - however, we all have little experience with Flask, Google Cloud and NLTK (with its related technologies). For us, it was difficult to learn a lot of this from scratch, especially dealing with Google Cloud errors and the algorithmic complexity of graphing and extracting words from clusters.

Future Plans

To develop the project further, we'd like to add functionality using PyLaTeX and pdfLaTeX to format notes and outputted data into a final PDF which can be downloaded.

Share this project:

Updates