#1553·stanza

DE training data extension to fix grammar parsing bugs

Author: fingoldoCreated Mar 30, 2026Updated Jul 1, 2026
Labelsbug

German (DE) — Stanza Error Patterns & Training Data

Silver set: 289 sentences, 13 categories, 183 with corrections Reference treebank: UD_German-GSD (train split, 13,814 sentences)


Error Classes

1. Reflexive sich — Case=Acc instead of Case=Dat (30 sentences)

When a verb has both a reflexive sich and a separate accusative object, sich is the indirect object (Case=Dat, deprel=iobj). Stanza tags it as Case=Acc + deprel=obj regardless of context.

Example: Er bestellte sich einen großen Kaffee und ein Stück Kuchen.

Stanza output:

3  sich    sich  PRON  PRF  Case=Acc|Person=3|PronType=Prs|Reflex=Yes  2  obj
6  Kaffee  Kaffee  NOUN  NN  Case=Acc|Gender=Masc|Number=Sing          2  obj

Correct:

3  sich    sich  PRON  PRF  Case=Dat|Person=3|PronType=Prs|Reflex=Yes  2  iobj
6  Kaffee  Kaffee  NOUN  NN  Case=Acc|Gender=Masc|Number=Sing          2  obj

GSD context: GSD has 0 sentences with sich(Acc,obj) co-occurring with another obj on the same head. The treebank avoids this construction entirely, leaving the model with no training signal for dative reflexives.


2. sein + past participle — spurious Degree=Pos, inconsistent ADJ/VERB (22 sentences)

Past participles in sein-constructions are tagged ADJ with Degree=Pos, even for unambiguous sein-perfects of motion verbs where VERB + VerbForm=Part is the only valid analysis.

Example: Der Vogel ist über das Dach geflogen und verschwand schnell.

Stanza output:

3  ist       sein     AUX   VAFIN  ...  7  aux:pass
7  geflogen  fliegen  ADJ   ADJD   Degree=Pos  0  root

Correct:

3  ist       sein     AUX   VAFIN  ...  7  aux
7  geflogen  fliegen  VERB  VVPP   VerbForm=Part  0  root

Note: GSD itself is inconsistent on Zustandspassiv — sein+participle is ADJ+cop ~74% (834 instances) vs VERB+aux ~26% (298 instances). The spurious Degree=Pos is the clearest error regardless of ADJ vs VERB choice.


3. sein-perfect tagged aux:pass instead of aux (22 sentences)

For intransitive motion/change-of-state verbs using sein as perfect auxiliary (fahren, fliegen, wachsen), Stanza assigns deprel=aux:pass + nsubj:pass as if it were a passive construction.

Example: Sie ist mit dem Auto zur Arbeit gefahren wegen des Regens.

Stanza output:

1  Sie       sie   PRON  PPER  ...  9  nsubj:pass
2  ist       sein  AUX   VAFIN ...  9  aux:pass
9  gefahren  fahren  VERB  VVPP  VerbForm=Part  0  root

Correct:

1  Sie       sie   PRON  PPER  ...  9  nsubj
2  ist       sein  AUX   VAFIN ...  9  aux
9  gefahren  fahren  VERB  VVPP  VerbForm=Part  0  root

4. Oblique PPs and temporal accusatives mis-attached (45 sentences)

PPs modifying the verb (temporal, locative, causal) get attached as nmod of a nearby noun instead of obl of the verb. Accusative time expressions ("den ganzen Tag") tagged obj instead of obl.

Example: Er arbeitete den ganzen Tag an einem schwierigen Problem.

Stanza output:

5  Tag  Tag  NOUN  NN  Case=Acc|Gender=Masc|Number=Sing  2  obj

Correct:

5  Tag  Tag  NOUN  NN  Case=Acc|Gender=Masc|Number=Sing  2  obl

GSD context: GSD has 10 tokens of Tag/Nacht/Morgen/etc. with deprel=obj, but manual inspection shows these are genuine objects ("einen Tag verbringen"). True temporal adverbials are underrepresented.


5. Homograph noun lemmas — pipe-delimited or fabricated (27 sentences)

Stanza emits non-existent lemma Drach for Drachen (kite/dragon), and pipe-delimited ambiguous lemmas like Berg|Bergen for dative plural Bergen.

Example: In den Bergen wanderten sie den ganzen Tag durch schöne Wälder.

Stanza output:

3  Bergen  Berg|Bergen  NOUN  NN  Case=Dat|Gender=Masc|Number=Plur  4  obl

Correct:

3  Bergen  Berg  NOUN  NN  Case=Dat|Gender=Masc|Number=Plur  4  obl

GSD context: GSD contains 0 pipe-delimited multi-lemmas. This is purely a Stanza lemmatizer bug.


6. Weak/participial adjective lemma confused with verb lemma (27 sentences)

geschickt (skillful/dexterous) is lemmatized as schicken (to send). Stanza treats the adverb/adjective as a past participle of the verb.

Example: Ein großer Affe kletterte geschickt auf den höchsten Baum.

Stanza output:

5  geschickt  schicken  ADJ  ADJD  Degree=Pos  4  advmod

Correct:

5  geschickt  geschickt  ADV  ADV  _  4  advmod

7. Days of the week tagged PROPN instead of NOUN (7 sentences)

Montag, Mittwoch, Donnerstag, etc. systematically tagged PROPN. UD cross-linguistic guidelines treat days of the week as common nouns.

Example: Der Mittwoch war besonders kalt und windig in der Stadt.

Stanza output:

2  Mittwoch  Mittwoch  PROPN  NE  Case=Nom|Gender=Masc|Number=Sing  5  nsubj

Correct:

2  Mittwoch  Mittwoch  NOUN  NN  Case=Nom|Gender=Masc|Number=Sing  5  nsubj

8. Separable-prefix verb lemmas missing prefix (20 sentences)

Separable-prefix verbs (vorbereiten, aufräumen) are lemmatized as the base verb without the prefix (bereiten, räumen). Additionally, inherently reflexive verbs get sich=obj instead of sich=expl:pv.

Example: Er bereitete sich auf die wichtige Prüfung im Juni vor.

Stanza output:

2   bereitete  bereiten  VERB  VVFIN  ...  0  root
3   sich       sich      PRON  PRF    Case=Acc|...  2  obj
11  vor        vor       ADP   PTKVZ  _  2  compound:prt

Correct:

2   bereitete  vorbereiten  VERB  VVFIN  ...  0  root
3   sich       sich         PRON  PRF    Case=Acc|...  2  expl:pv
11  vor        vor          ADP   PTKVZ  _  2  compound:prt

Additional training categories (coverage, no specific Stanza bug)

Category Sentences Purpose
de_noun_gender 27 Noun gender assignment (Masc/Fem/Neut)
de_gender_diag 22 Gender diagnostics (compounds, loanwords)
de_nom_inf 20 Nominalized infinitives (das Schwimmen, beim Lesen)
de_weak_noun 20 Weak noun declension (den Assistenten, dem Soldaten)

Corrections Propagatable to UD_German-GSD

Based on searching the GSD training data (13,814 sentences):

Fix recommended: Days of the week PROPN → NOUN (44 tokens)

GSD has 44 day-of-week tokens, ALL tagged PROPN, 0 as NOUN. The XPOS is NN (common noun) in most cases, contradicting UPOS=PROPN. UD cross-linguistic guidelines treat days of the week as common nouns (they are not unique referents).

Fix recommended: sein + aux:pass on intransitive verbs (~3 tokens)

GSD has 348 tokens with lemma=sein + deprel=aux:pass. Of these, ~345 are legitimate Zustandspassiv. However, ~3 are sein-perfects of intransitive verbs incorrectly labeled aux:pass:

  • sind eingetroffen (eintreffen = arrive, intransitive motion)
  • ist ... geworden (werden = become, copular)
  • passieren context (passieren = happen, intransitive)

Not a treebank issue: pipe-delimited lemmas

GSD has 0 pipe-delimited multi-lemmas. The Berg|Bergen pattern is generated by Stanza's lemmatizer, not present in the training data.

Intentional GSD convention: NumType=Card on indefinite article ein

GSD has 4,652 DET tokens of ein/eine/etc. with NumType=Card. This is virtually 100% of indefinite articles — a deliberate design decision, not a bug. Linguistically debatable but internally consistent.

Not a bug: temporal accusatives as obj

GSD's 10 tokens of Tag/Nacht/etc. with deprel=obj are genuine objects ("einen Tag verbringen"), not temporal adverbials. Our silver set provides new examples for the underrepresented temporal adverbial pattern.

Not a bug: Voice=Pass on werden auxiliaries

GSD has 2,965 werden-auxiliary tokens with Voice=Pass. These are all Vorgangspassiv constructions — correct per UD German convention.

de.zip