Skip to content

Commit

Permalink
Improve training data
Browse files Browse the repository at this point in the history
1. An additional list wit nouns that have an Ablaut in plural, to make sure that every plural form is linked correctyly to its lemma
2. Preprocessing of Tiger Corpus to remove some errors and inconsistencies
  • Loading branch information
wartaal authored Aug 9, 2022
1 parent 207d4e0 commit 19a3597
Show file tree
Hide file tree
Showing 2 changed files with 327 additions and 0 deletions.
134 changes: 134 additions & 0 deletions repair_tiger.py
Original file line number Diff line number Diff line change
@@ -0,0 1,134 @@
import codecs


def correctlemma(word,lemma,pos,features):
if pos == 'NNE':
pos = 'NE'
elif word == 'propperen' and features.strip() == 'case=gen|number=sg|gender=neut|degree=comp':
features = 'case=gen|number=sg|gender=neut|degree=pos'
elif pos[:3] == 'ADJ' and lemma == 'erster':
lemma = 'erst'
elif pos[:3] == 'ADJ' and lemma == 'letzter':
lemma = 'letzt'
elif pos == 'ADJD' and word == 'ausgebremst':
lemma = 'ausbremsen'
pos = 'VVPP'
features = "_"
elif pos == 'ADJD' and word == 'ehesten' and lemma == 'ehesten':
lemma = 'eher'
elif pos[:3] == 'ADJ' and word[:7] == 'nächste':
lemma = 'nächster'
if features[-3:] == 'sup':
features = features[:-3] 'pos'
elif pos[:3] == 'ADJ' and lemma == 'drittbester' and features[-3:] == 'sup':
features = features[:-3] 'pos'
elif pos[:3] == 'ADJ' and lemma == 'achthöchster' and features[-3:] == 'sup':
features = features[:-3] 'pos'
elif word == 'dass' and lemma == 'daß':
lemma = 'dass'
elif word == 'destabilisieren' and lemma == 'handeln':
lemma = 'destabilisieren'
elif word == 'bedeuteten' and pos == 'VVINF':
word = 'bedeuten'
elif word == 'anorden' and lemma == 'anordnen':
word = 'anordnen'
elif word == 'tolerien' and lemma == 'landespolitisch':
word = 'tolerieren'
lemma = 'tolerieren'
elif word == 'aushebeln' and lemma == 'gewaltlosem':
lemma = 'aushebeln'
elif word == 'rapen' and lemma == 'rappen':
word = 'rappen'
elif lemma == 'Wirtschafts-':
lemma = 'Wirtschaft'
elif lemma == 'Verkaufs-':
lemma = 'Verkauf'
elif lemma == 'Staats-':
lemma = 'Staat'
elif lemma == 'Maschinen-':
lemma = 'Maschine'
elif lemma[-1] == '-' and pos == 'TRUNC':
lemma = lemma[:-1]
elif lemma == 'nom.sg.masc' and word == 'Werbespot':
lemma = 'Werbespot'
elif word.lower().startswith('unser') and pos == 'PPOSAT':
lemma = 'unser'
elif word.lower().startswith('eu') and pos == 'PPOSAT':
lemma = 'euer'
elif lemma.lower().endswith('innen') and pos == 'NN' and len(lemma) > 10:
lemma = lemma[:-3]
elif lemma == 'losgelöst' and pos == 'VVPP':
lemma = 'loslösen'
elif lemma == 'angewiesem' and pos == 'VVPP':
lemma = 'anweisen'
elif lemma == 'losgelöst' and pos == 'VVPP':
lemma = 'loslösen'
elif lemma == 'uraufgeführen' and pos == 'VVPP':
lemma = 'uraufführen'
elif lemma == 'angemaßen' and pos == 'VVPP':
lemma = 'anmaßen'
elif lemma == 'angewiesen' and pos == 'VVPP':
lemma = 'anweisen'
elif lemma == 'hevorgegangen' and pos == 'VVPP':
lemma = 'hervorgehen'
elif lemma == 'abgespalten' and pos == 'VVPP':
lemma = 'abspalten'
elif lemma == 'losgeworden' and pos == 'VVPP':
lemma = 'loswerden'
elif lemma == 'anvisiert' and word == 'avisierte':
lemma = 'avisiert'
elif lemma == 'Importeuer':
lemma = 'Importeur'
elif lemma == 'unnbekannte':
lemma = 'unbekannte'
elif lemma == 'Museumsqualitaet':
lemma = 'Museumsqualität'
elif lemma == 'Pepräsentant':
lemma = 'Repräsentant'
elif lemma == 'Lösug':
lemma = 'Lösung'
elif lemma == 'Faktum' and word == 'Fakten':
lemma = 'Fakt'
elif lemma == 'Kellerzelle' and word == 'Killerzellen':
lemma = 'Killerzelle'
elif lemma == 'Deutsche_Mark' and word == 'DM':
lemma = 'DM'
elif lemma == 'Gesamtkunstwerk' and word == 'werk':
lemma = 'Werk'
elif lemma == 'Stadtbaukunst' and word == 'Stattbaukunst':
word = 'Stadtbaukunst'
elif lemma == 'Verkauf' and word == 'Staats-':
lemma = 'Staat'
elif word == 'Fraktionsvorsitzene':
word = 'Fraktionsvorsitzende'
elif word == 'Abs.':
lemma = 'Abs.'
elif word == 'Art.':
lemma = 'Art.'
elif word == '%' and pos == 'NN':
lemma = '%'
elif lemma == 'nirgenswo':
lemma = 'nirgendswo'
elif word == 'Themenwechseln' and lemma == 'Themawechsel':
lemma = 'Themenwechsel'
elif word == 'unakzeptbalen' and lemma == 'unakzeptabel':
word = 'unakzeptablen'
elif lemma == "--" or lemma == "---":
lemma = word

return word,lemma,pos,features


fin = codecs.open("tiger.16012013.conll09", "r","utf-8")
fout = codecs.open("tiger.16012013.conll09c", "w","utf-8")

for line in fin:
columns = line.split()
if len(columns) == 15:
#word,lemma,pos = columns[1], columns[2], columns[4]
word, lemma, pos, features = correctlemma(columns[1], columns[2], columns[4],columns[6])
print(columns[0],word,lemma,columns[3],pos,columns[5],features, *columns[7:], sep='\t',end='\n',file=fout)
else:
print(line,end='',file=fout)
fout.close()
fin.close()
193 changes: 193 additions & 0 deletions substantive.txt
Original file line number Diff line number Diff line change
@@ -0,0 1,193 @@
Abgrund masc Abgründe
Abstand masc Abstände
Anfang masc Anfänge
Angst fem Ängste
Anhänger masc Anhänger
Apfel masc Äpfel
Apfel masc Äpfel
Arzt masc Ärzte
Ast masc Äste
Auftrag masc Aufträge
Axt fem Äxte
Bach masc Bäche
Bad neutr Bäder
Ball masc Bälle
Band neutr Bänder
Bank fem Bänke
Bart masc Bärte
Bauch masc Bäuche
Baum masc Bäume
Belag masc Beläge
Blatt neutr Blätter
Block masc Blöcke
Bock masc Böcke
Bogen masc Bögen
Brand masc Brände
Bruch masc Brüche
Bruder masc Brüder
Buch neutr Bücher
Bund masc Bünde
Busch masc Büsche
Dach neutr Dächer
Damm masc Dämme
Dampf masc Dämpfe
Darm masc Därme
Dorf neutr Dörfer
Duft masc Düfte
Entschluss masc Entschlüsse
Faden masc Fäden
Fall masc Fälle
Fass neutr Fässer
Fenster neutr Fenster
Floh masc Flöhe
Fluch masc Flüche
Flug masc Flüge
Flügel masc Flügel
Fluss masc Flüsse
Frosch masc Frösche
Frucht fem Früchte
Fuchs masc Füchse
Furz masc Fürze
Fuß masc Füße
Gang masc Gänge
Gans fem Gänse
Garten masc Gärten
Garten masc Gärten
Gebäude neutr Gebäude
Gehalt neutr Gehälter
Geruch masc Gerüche
Glas neutr Gläser
Gott masc Götter
Grab neutr Gräber
Gras neutr Gräser
Grund masc Gründe
Gruß masc Grüsse
Guss masc Güsse
Hafen masc Häfen
Hahn masc Hähne
Hals masc Hälse
Hand fem Hände
Hang masc Hänge
Haus neutr Häuser
Hof masc Höfe
Holz neutr Hölzer
Horn neutr Hörner
Hut masc Hüte
Kalb neutr Kälber
Kamm masc Kämme
Kampf masc Kämpfe
Kanal masc Kanäle
Kasten masc Kästen
Kloß masc Klöße
Kloster neutr Klöster
Knopf masc Knöpfe
Koch masc Köche
Kopf masc Köpfe
Korb masc Körbe
Kraft fem Kräfte
Krampf masc Krämpfe
Kraut neutr Kräuter
Krug masc Krüge
Kuh fem Kühe
Kunst fem Künste
Kuss masc Küsse
Laden masc Läden
Lamm neutr Lämmer
Land neutr Länder
Laster masc Laster
Laster fem Laster
Lauf masc Läufe
Lehrer masc Lehrer
Loch neutr Löcher
Lohn masc Löhne
Luchs masc Lüchse
Luft fem Lüfte
Macht fem Mächte
Magen masc Mägen
Mann masc Männer
Mantel masc Mäntel
Maul neutr Mäuler
Maus fem Mäuse
Mund masc Münder
Mutter fem Mütter
Nacht fem Nächte
Nagel masc Nägel
Naht fem Nähte
Nuss fem Nüsse
Ofen masc Öfen
Pass masc Pässe
Pflock masc Pflöcke
Pflug masc Pflüge
Plan masc Pläne
Platz masc Plätze
Rad neutr Räder
Rand masc Ränder
Rang masc Ränge
Raum masc Räume
Rock masc Röcke
Ross neutr Rösser
Sack masc Säcke
Sänger masc Sänger
Sarg masc Särge
Satz masc Sätze
Sau fem Säue
Saum masc Säume
Schacht masc Schächte
Schatz masc Schätze
Schaum masc Schäume
Schlag masc Schläge
Schloss neutr Schlösser
Schlumpf masc Schlümpfe
Schnabel masc Schnäbel
Schnur fem Schnüre
Schrank masc Schränke
Schüler masc Schüler
Schuss masc Schüsse
Schwamm masc Schwämme
Schwan masc Schwäne
Schwanz masc Schwänze
Segel neutr Segel
Sohn masc Söhne
Spaß masc Späße
Stadt fem Städte
Stadt fem Städte
Stamm masc Stämme
Statt fem Stätte
Stock masc Stöcke
Storch masc Störche
Stoß masc Stöße
Strauch masc Sträucher
Strauß masc Sträuße
Strumpf masc Strümpfe
Stuhl masc Stühle
Stumpf masc Stümpfe
Sturm masc Stürme
Sumpf masc Sümpfe
Tanz masc Tänze
Tochter fem Töchter
Tochter fem Töchter
Ton masc Töne
Topf masc Töpfe
Traum masc Träume
Tuch neutr Tücher
Tür fem Türen
Turm masc Türme
Vater masc Väter
Verband masc Verbände
Verschluss masc Verschlüsse
Vogel masc Vögel
Vogel masc Vögel
Volk neutr Völker
Vorrat masc Vorräte
Vortrag masc Vorträge
Wald masc Wälder
Wand fem Wände
Wolf masc Wölfe
Wort neutr Wörter
Wurf masc Würfe
Wurm masc Würmer
Wurst fem Würste
Zahn masc Zähne
Zaun masc Zäune
Zopf masc Zöpfe
Zug masc Züge

0 comments on commit 19a3597

Please sign in to comment.