Nominalphrasen Deutsch

Use Cases

Detection of noun phrases (also known as noun chunks) is needed for at least two important rules:

  • detection of agreement errors like "Die Autos ist schnell.", "Das Haus sind groß.", (whereas "Die Wohnung und das Haus sind groß" is correct)
  • detection of government errors like "Sie gibt ihren Freund einen Hut." (ihren -> ihrem) - not implemented yet (as of 2/2015)

Beispiele

[Der Sattel]
[Der Sattel [des Fahrrads]]
[Der Sattel [des Fahrrads [meines Freundes]]]
[[Meines Freundes] [Fahrrad]]
[[Meines Freundes] [großes Fahrrad]]
[Der große Sattel]
[Der wirklich schwarze Sattel]
[Der große, schwarze Sattel]
[Der [meinen Freund gehörende] Sattel]
die Lieferung
die angekündigte Lieferung
die von Ihnen angekündigte Lieferung
die von Ihnen mit Schreiben angekündigte Lieferung
die von Ihnen mit Schreiben vom 22.7.1993 angekündigte Lieferung
das interessante neu entwickelte Verfahren
Er muss [dem Hund] [Futter] geben.
[Eine Terrasse], [die Blume], [die Wörter] und so weiter.
Als [der Hund] [das Ei] auf [den Ofen] legt.
[Das Wasser], das [Schüler] trinken sollen. (keine Kongruenz zwischen "das" und "Schüler" -> keine NP)
[Der Hund], der [Tische] anknabbert. — Würde man erkennen "[Der Hund], [der Tische] anknabbert." -> NOM GEN -> passt nicht zur Valenz von 'anknabbern' (NOM AKK)
[Der Hund] ist schön.
[Die Hunde] sind schön.
[[Die Katze] und [der Hund]] sind schön.
[Jan und Peter] sind schön.
[[Herr Peters] und [Frau Meyer]] sind [ein Paar].
[[Der junge Herr Peters] und [die etwas ältere Frau Meyer]] sind [ein Paar].

Software

Implementation

Advantages and drawbacks of three main approaches:

  • Rule based: use the existing mechanism in disambiguation.xml
    • + no additional Java code needed; no external dependency
    • - seems to be buggy with max=…; not all features from grammar.xml yet supported (e.g. antipattern); very verbose syntax
  • Rule based: implement our own rule-based chunker
    • + no external dependency
    • - probably a lot of work -> turns out this is is manageable, see GermanChunker
  • Stochastic based: implement a class that implements Chunker and use OpeNLP chunker (this is what we do for English already)
    • + probably not too difficult to implement, but complex phrases like "NP und NP" need to be merged to one plural noun phrase; can use unification from disambiguation.xml (we need a new kind of chunking for that which is called after disambiguation, but this is easy to implement)
    • - quite slow, as we also need to run the tokenizing and POS tagging from OpenNLP to use the chunker; 10 MB data needed (tokenizer, POS, and chunker model)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License