I have combined the process of learning German with my hobby, and would like to present the prototype of the parser of the subset of German language.

Illustration to the problem

Vorwort (Deutsch)

Circa vor vier Monaten habe ich angefangen Deutsch zu lernen. Zuerst war es schwierig, weil ich viel zu kleiner Wortschatz hatte und nur einfache grammatikalische Regeln gekannt habe.

Trotzdem habe ich jetzt mehr Lust Deutsch zu lernen, weil ich den Lernprozess mit meinem Hobby kombiniert habe. Mein Hobby ist Computerlinguistik (sogenannt "Natural Language Processing" oder kurz "NLP"), und ich hatte eine Idee, um einen einfachen grammatikalischen Parser (Grammatik-Analyse-Tool) für die Teilmenge von Deutsch zu programmieren.

Vor einiger Zeit habe ich einen universellen Parsing Algorithm programmiert (gekannt als "Earley Parser"): https://github.com/lagodiuk/earley-parser-js, und deshalb muss ich nur grammatikalische Regeln von Deutsch als Kontextfreie Grammatik bestimmen.

Damit möchte ich den Prototype des grammatikalisches Parser präsentieren.

Ich auch denke, dass systematische Aufzählung der grammatikalischen Regeln mir hilft Deutsch zu lernen.

Preface (English)

Approximately four months ago I have started to learn German. At first it was difficult, because I had too small vocabulary and knew only simple grammatical rules.

Nevertheless, now I have more desire to learn German, because I have combined the learning process with my hobby. My hobby is Computational Linguistics (so-called "Natural Language Processing" or shortly "NLP"), and I had an idea to develop a simple grammatical parser (grammar analysis tool) for the subset of German.

Some time ago I have implemented a universal parsing algorithm (known as "Earley parser"): https://github.com/lagodiuk/earley-parser-js, and therefore I have to determine only grammatical rules of German as a Context Free Grammar (CFG).

So I would like to present the prototype of grammatical parser.

I also think that systematic enumeration of grammatical rules (in the form of Context Free Grammar) helps me to learn German.

Demo

Note: as far as this is just a prototype, the grammar contains very small amount of nouns and verbs (mostly related to food) and very limited subset of grammatical rules (e.g. modal verbs, limited capabilities of parsing dependent clauses, standard sentences in the present tense, etc.).

Press here, if you would like to see the full-screen demo.

Beispielsätze - klicken Sie auf den Satz, bitte (DE)
Example sentences - click on the sentence, please (EN)


Den Abstand zwischen den Knoten des Baums vergrössern (DE)
Increase the separation between the nodes of the tree (EN)

Verwenden Sie blättern, um Zoom-in/out (DE)
Use scroll to zoom-in/out (EN)


Die grammatikalischen Regeln (Context Free Grammatik) (DE)
The grammar rules (Context Free Grammar) (EN)

Used Tools and Libraries