Inspiration
Lili and her siblings grew up learning German, and throughout years of German school they could never find an accurate grammar checker. The existing ones would either accept blatantly wrong text, or only correct the easiest parts of the language, such as spelling. Growing up, they had all wished there was an accurate way to check their grammar which also helped them understand what was wrong and how to fix it.
What it does
Given a text input, such as a phrase or sentence, the program outputs the sentence with annotation (such as parts of speech: noun, verb etc) and their relations (subject, direct object). These features are very important for determining the correct grammar of a German sentence. The idea is to give the student an easy way to see how all the pieces of their sentence fit together.
How we built it
The front-end is built with React.js, html, and css. The backend uses StanfordNLP, Python, and Flask.
Technical explanation
When learning German, mistakes are most often made with gender, case and adjective endings. Our program analyzes the sentence using pretrained natural language processing models and determines the case of each word based on features such as the gender and part of speech. Then, the program can guess what the correct articles and endings should be.
Example: Der Frau gab ich den Hut.
The program will identify 'ich' as the subject, 'Hut' as the direct object and 'Frau' as the indirect object. Therefore, the correct article for 'Frau' is 'der' (dative case) and the correct article for 'Hut' is 'den' (accusative). If the student made a mistake of using 'Die Frau' or 'der Hut', the program would identify that and suggest the correct article.
Challenges we ran into
We wanted to host the server using Google Cloud Platform, however, we struggled to get the server to run. We couldn't use Heroku or Google App Engine because these services didn't offer the memory required for our project. After spending a considerable amount of time working on getting the server up and running, we decided to do everything locally. We enjoyed learning more about Google Cloud Platform and how to set it up.
Many of the tools we used for this were quite old so we ran into a lot of down websites and broken links. It took quite a while to set up the annotation frontend, because the software used for it is no longer available. We didn't have enough time to display all the data given by the backend and display the suggestions in a user friendly fashion.
Accomplishments that we're proud of
We are proud of diving into Full Stack Development, Machine Learning and Natural Language Processing.
What we learned
We learned how to combine back-end functionality with the front-end, as well as working with external APIs. Our project uses NLP and other machine learning models to check for German grammar.
Most of the tools we used or tried to use were new to us, such as google cloud apis, stanfordnlp, react, and conllu.
What's next for Grammatik!
We plan on iterating on the project, and improving the machine learning models!
Log in or sign up for Devpost to join the conversation.