Magisterarbeit im Fach Linguistische Informatik IMPLEMENTIERUNG EINES AUTOMATISCHEN WORTFORMERKENNUNGSSYSTEMS FÜR DAS ITALIENISCHE MIT DEM PROGRAMM JSLIM Magisterarbeit im Fach Linguistische Informatik 16.05.2007 Carsten Weber
Inhaltsverzeichnis der Magisterarbeit Geschichte der italienischen Sprache Das JSLIM-System Italienische Grammatik Allomorphie Flexion Derivation und Komposition Korpusanalysen 16.05.2007 Carsten Weber
Anmerkungen zum Vortrag Die Geschichte der italienischen Sprache wird nicht behandelt, da das Hauptaugenmerk auf der praktischen Implementierung liegen soll. Auf eine Erklärung des JSLIM-Systems wird verzichtet 16.05.2007 Carsten Weber
Italienische Grammatik Für das Projekt verwendete Wortklassen Offene Wortklassen der Substantive, Verben und Adjektive Geschlossene Wortklassen der Adverbien, Konjunktionen, Interjektionen, Eigennamen und Zahlwörter „Mittelklassen“ wie Pronomina und Präpositionen, die teilweise der Flexion unterliegen Weiterhin: Satzzeichen und Symbole 16.05.2007 Carsten Weber
Substantive Unterschied zum Deutschen: Nur zwei Genera (Maskulina und Feminina) und keine Kasus Insgesamt 7 Flexionsklassen: Singularendung Pluralendung Beispiel -o (maskulin) -i il libro – i libri -a (feminin) -e la casa – le case -a (maskulin) il poeta – i poeti -e (feminin) la base – le basi -e (maskulin) il mare – i mari -a il muro – le mura - Kons./Akzent Keine Änderung il film – i film 16.05.2007 Carsten Weber
Verben Drei Klassen: Endung auf -are, -ere und -ire Alle drei Klassen haben sowohl verschiedene als auch gemeinsame Flexionsendungen Elf verschiedene Zeitformen zur Implementierung (ohne zusammengesetzte Zeitformen) Teilweise äquivalente Formen Beispiel: „diedi“ und „dette“ sind jeweils die 3. Person Singular von „dare“ im Passato Remoto (spezielle Vergangenheitsform) 16.05.2007 Carsten Weber
Adjektive Zwei große Hauptgruppen: Suppletionen in der Komparation einiger Adjektive: Beispiel: buono – meglio - ottimo Singularendung Pluralendung Beispiel -o/-a -i/-e bello - bella belli - belle -e -i grande - grandi Verschiedene Keine Änderung blu - blu 16.05.2007 Carsten Weber
Allomorphie: Das verwendete Lexikon Frequenzliste des CoLFIS (Corpus e Lessico di Frequenza dell‘Italiano Scritto) Basierend auf einem repräsentativen Korpus aus 3 150 075 laufenden Wortformen Vorteile: Frei verfügbar und kostenloser Download Bereits in Wortklassen subkategorisiert 16.05.2007 Carsten Weber
Allomorphie: Das verwendete Lexikon Gesamtanzahl der Lexikoneinträge: 84 624; davon: Verben: 4 771 Substantive: 21 483 Adjektive: 10 189 Pronomina: 85 Zahlwörter: 68 Adverbien: 1 647 Konjunktionen: 182 Präpositionen: 564 Eigennamen: 13 388 Satzzeichen und Symbole: 23 Artikel: 13 Nicht zugeordnete Einträge, die im CoLFIS stehen: 32 051 (z.B. Wörter aus anderen Sprachen, Akronyme, …) 16.05.2007 Carsten Weber
Allomorphie: Das verwendete Lexikon Für die Hapax Legomena wurde ein Vergleichsskript in Perl geschrieben, welches sie mit einem herkömmlichen Lexikon verglich. Es wurde überprüft, ob die Hapax Legomena darin vorkamen. Einige unregelmäßige Lexikoneinträge wurden per Hand ins Lexikon eingetragen, da für sie keine eigene Alloregel erstellt wurde. 16.05.2007 Carsten Weber
Allomorphie: Attribute der Proplets sur: Oberfläche core: Grundform cat: Kategorie (Genus, Numerus, Person) sem: Semantik (Tempus, Modus, Unterspezifikationen, Wortklasse) pfs: Marker für Präfixe sfs: Marker für Suffixe val: Valenzstellen combi: Flexionsklassen Für die geschlossenen Wortklassen wurden die Attribute pfs,sfs, val und combi nicht gebraucht. 16.05.2007 Carsten Weber
Allomorphie: Verben Insgesamt: 31 Alloregeln (5 für Verben auf -are, 22 für Verben auf -ere, 3 für Verben auf -ire und 1 für klitische Verben) Die Klasse der Verben auf -ere ist sehr unregelmäßig (bis zu 6 Proplets bei einer Regel!) Häufig phonologische Aspekte bei Wortstammveränderungen (c > ch bzw. g > gh vor -i und -e) 16.05.2007 Carsten Weber
Allomorphie: Alloregel für „cercare“ RULE_CERCARE [ sur: /(.*)<(c)>(.*)/ allo: cercare ] pcopy(P) nattr(core cat sem pfs sfs val P) regset($1 $2 $3 P.sur) regset($1 $2 $3 P.core) acopy(inf' v P.cat) set(inf P.sem) cancel(P.allo) result(P) regset($1 $2 P.sur) acopy(n' v P.cat) acopy(reg P.sem) regset($1 ch P.sur) acopy(irreg P.sem) 16.05.2007 Carsten Weber
Allomorphie: Lexikoneintrag für „cercare“ !template [ allo: cercare combi: (CERCARE) ] !+sur: cer<c>are ... Um Alloregeln auf Lexikoneinträge anzuwenden, müssen beide denselben Wert im Attribut allo stehen haben (hier: cercare) 16.05.2007 Carsten Weber
Allomorphie: Generierte Proplets für „cercare“ [ sur: "cercare" core: "cercare" cat: (inf' v) sem: (inf) pfs: () sfs: () val: () combi: (CERCARE) ] [ sur: "cerc" core: "cercare" cat: (n' v) sem: (reg) pfs: () sfs: () val: () combi: (CERCARE) ] [ sur: "cerch" core: "cercare" cat: (n' v) sem: (irreg) pfs: () sfs: () val: () combi: (CERCARE) ] 16.05.2007 Carsten Weber
Allomorphie: Substantive Insgesamt: 16 Alloregeln (7 für maskuline, 7 für feminine und 2 für Substantive mit identischen Singular- und Pluralformen) Regelmäßiger als die Verballomorphie; die Regeln dienen meistens der Genuseinteilung Wie bei den Verben phonologische Aspekte bei Wortstammveränderungen (c > ch bzw. g > gh vor -i und -e oder auch Tilgung des -i im Plural bei Endung –io oder -ia) 16.05.2007 Carsten Weber
Allomorphie: Alloregel für „viaggio“ RULE_VIAGGIO [ sur: /(.*)<(i)>(.*)/ allo: viaggio ] pcopy(P) nattr(core cat sem pfs sfs combi val P) regset($1 $2 $3 P.sur) regset($1 $2 $3 P.core) acopy(ms n P.cat) acopy(sost P.sem) cancel(P.allo) result(P) regset($1 i P.sur) acopy(mp n P.cat) 16.05.2007 Carsten Weber
Allomorphie: Generierte Proplets für „viaggio“ [ sur: "viaggio" core: "viaggio" cat: (ms n) sem: (sost) pfs: () sfs: () combi: () val: () ] [ sur: "viaggi" core: "viaggio" cat: (mp n) sem: (sost) pfs: () sfs: () combi: () val: () ] 16.05.2007 Carsten Weber
Allomorphie: Adjektive Insgesamt: 10 Alloregeln Teilweise identischer Aufbau zu den Alloregeln für Substantive, da gleiche Wortstammveränderungen Häufig phonologische Aspekte bei Wortstammveränderungen (c > ch bzw. g > gh vor -i und -e) 16.05.2007 Carsten Weber
Allomorphie: Alloregel für „antico“ RULE_ANTICO [ sur: /(.*)<(c)>(.*)/ allo: antico ] pcopy(P) nattr(core cat sem pfs sfs combi val P) regset($1 $2 $3 P.sur) regset($1 $2 $3 P.core) acopy(ms a P.cat) acopy(agg P.sem) cancel(P.allo) result(P) regset($1 $2 P.sur) acopy(fls' P.cat) acopy(stem P.sem) regset($1 ch P.sur) acopy(mp' fp' P.cat) 16.05.2007 Carsten Weber
Allomorphie: Generierte Proplets für „antico“ [ sur: "antico" core: "antico" cat: (ms a) sem: (agg) pfs: () sfs: () val: () combi: (ANTICO) ] [ sur: "antic" core: "antico" cat: (fls') sem: (stem) pfs: () sfs: () val: () combi: (ANTICO) ] [ sur: "antich" core: "antico" cat: (mp' fp') sem: (stem) pfs: () sfs: () val: () combi: (ANTICO) ] 16.05.2007 Carsten Weber
Allomorphie: Geschlossene Wortklassen Jeweils nur eine Regel mit einem Proplet Die Wortklassen wurden ins cat- und sem-Attribut geschrieben. Bei Unterspezifikationen wurde der Wert ins sem-Attribut geschrieben. Beispiel Eigennamen: Markierung für Eigenname steht im sem-Attribut („nomprop“) 16.05.2007 Carsten Weber
Flexion Vorgehensweise: Verwendung von Kombinationstabellen oder Proplet Tables Zugriff über das combi-Attribut der generierten Proplets Anhängen mehrerer Flexionsendungen möglich (Beispiel Imperfekt Indikativ: sper-av-o) 16.05.2007 Carsten Weber
Flexion: Die Regel STEM+FLS {STEM+FLS} [ cat: Stem1 sem: Sem1 ] ptbl(SS.combi.1 SS.1 NW) concat(" | " NW.sur SS.1.sur) 16.05.2007 Carsten Weber
Flexion: Funktionsweise der Regel 16.05.2007 Carsten Weber
Flexion: Proplet Tables Beispiel: Präsens Indikativ Verben auf –are (Bsp. „cercare“) [ cat: (n' .. v) (fls o) => (s1'.. v) sem: (reg) (indpres indimp) => (indpres) ] cat: (n' .. v) (fls i) => (s2'.. v) sem: (irreg) (indpres indimp) => (indpres) cat: (n' .. v) (fls a) => (s3'.. v) [ cat: (n' .. v) (fls iamo) => (p1'.. v) sem: (irreg) (indpres) => (indpres) ] cat: (n' .. v) (fls ate) => (p2'.. v) sem: (reg) (indpres indimp) => (indpres) cat: (n' .. v) (fls ano) => (p3'.. v) 16.05.2007 Carsten Weber
Flexion Verteilung der Proplet Tables: Insgesamt 131 Flexionsendungen Verben: 28 Substantive: 6 Adjektive: 8 Pronomina: 8 Präpositionen: 1 Zahlwörter: 1 Insgesamt 131 Flexionsendungen 16.05.2007 Carsten Weber
Derivation: Suffigierung Verwendung des Tools LexiconAdder Funktionsweise am Substantiv „speranza“ (mit Suffix „anz“, welches Verben in Substantive ableitet): Es wurde eine Liste mit den Wortstämmen der Verben genommen Aus den Lexikoneinträgen der Substantive wurden alle Einträge mit „anza“ am Ende herausgenommen und um „anza“ gekürzt Mit dem Perl-Vergleichsskript wurde herausgefunden, ob die übrig gebliebene Zeichenkette ein Verbstamm ist oder nicht Mit dem Tool LexiconAdder wurden die Werte in das sfs-Attribut der Proplets geschrieben 16.05.2007 Carsten Weber
Derivation: Suffigierung 1. Substantive auf -anza speranza usanza vacanza stanza arroganza creanza ordinanza romanza costanza eleganza 2. Kürzen der Endungen sper us vac st arrog cre ordin rom cost eleg 3. Wortstämme der Verben sper us aspett st trov cre ordin piang cost fin 4. Ergebnis sper us st cre ordin cost Vergleichsskript 16.05.2007 Carsten Weber
Derivation: Suffigierung 16.05.2007 Carsten Weber
Derivation: Suffigierung Nachbearbeitung bei Wortstämmen mit drei oder weniger Buchstaben nötig (Beispiel: „stanza“ und „stare“) In die Proplets werden Marker geschrieben, die mit denen der Suffixe identisch sind (Achtung: Marker wird nur in Wortstämme eingefügt, nicht in der Grundform). Beispiel Suffix „anz“: [ sur: anz cat: (fls') sem: (stem) sfs: (anz) combi: (AE) ] 16.05.2007 Carsten Weber
Derivation: Die Suffixregel STEM+SFS {STEM+FLS STEM+SFS} [ sfs: (R Suffix S) combi: StemCombi1 ] [ sfs: (Suffix O) combi: SufCombi cancel(Suffix) ecopy(NW.combi SS.combi) ecopy(NW.sem SS.sem) ecopy(NW.cat SS.cat) ecopy(NW.sfs SS.sfs) concat(" | " NW.sur SS.1.sur) 16.05.2007 Carsten Weber
Derivation: Funktionsweise der Suffixregel 16.05.2007 Carsten Weber
Derivation: Suffigierung Für die Suffigierung mussten neue Proplet Tables erstellt werden, die die Grundform generieren können. Insgesamt 140 Suffixe und Suffixvarianten Die Suffixe beinhalten semantische Informationen und können Proplets in andere Klassen ableiten 16.05.2007 Carsten Weber
Derivation: Präfigierung Wieder Verwendung des Tools LexiconAdder Unterschied: Im Gegensatz zu den Suffixen wurden Präfixe abgeschnitten und mit den Grundformen der Lexikoneinträge verglichen Bsp.: ri-tornare → tornare 16.05.2007 Carsten Weber
Derivation: Die Präfixregel PFS+STEM {STEM+FLS STEM+SFS} [ pfs: (Prefix) combi: PreCombi ] pfs: (N Prefix P) combi: StemCombi2 ecopy(NW.cat SS.cat) ecopy(NW.sem SS.sem) ecopy(NW.sfs SS.sfs) ecopy(NW.val SS.val) ecopy(NW.combi SS.combi) ecopy(NW.core SS.core) concat(" | " NW.sur SS.1.sur) cancel(N) cancel(P) cancel(Prefix) 16.05.2007 Carsten Weber
Derivation: Funktionsweise der Präfixregel 16.05.2007 Carsten Weber
Derivation: Präfigierung Insgesamt 103 Präfixe und Präfixvarianten Die Präfixe beinhalten keine semantischen Informationen und dienen nur der Verknüpfung der Oberflächen Marker wird sowohl in die Grundform als auch in die Wortstämme eingefügt Es mussten keine neuen Proplet Tables erstellt werden 16.05.2007 Carsten Weber
Komposition Sehr unregelmäßig und im Vergleich zum Deutschen von nicht so großer Bedeutung Es müssten eine Vielzahl von Regeln erstellt werden, daher Gefahr der Übergenerierung Eher Aufgabe der Syntax, da viele Komposita aus mehreren Teilen bestehen Beispiel: „camera da letto“ (Substantiv + Präposition + Substantiv) „treno notte“ (Substantiv + Substantiv) → Komposita aus einer Wortform wurden als Simplizia im Lexikon belassen 16.05.2007 Carsten Weber
Reduzierung des Lexikons JSLIM „fischt“ Analysen mit dem Befehl -cmp, die sowohl Simplizia als auch Derivata sind Analysetool LexiconFilter kann im Anschluss ein semantisches Lexikon von einem Allolexikon trennen Beispiel „speranza“: steht als Simplizia „speranza“ im Substantivlexikon und wird auch durch regelbasierte Konkatenation mit „sper|anz|a“ gebildet. Die Simplizia können somit herausgefiltert werden → Es bleiben nur noch regelbasierte Lexikoneinträge stehen, dadurch gesteigerte Effizienz 16.05.2007 Carsten Weber
Korpusanalysen Tests an Type- und Tokenlisten des CoLFIS Analysen der Typeliste wurden ausführlich nach Fehlern durchsucht und sukzessive verbessert. → Steigerung der Worterkennungsrate um über 3% Als Abschluss wurde die Tokenliste mit 3 988 463 laufenden Wortformen analysiert 16.05.2007 Carsten Weber
Korpusanalysen: Ergebnisse Typeliste Mit Hapax Legomena: 96,52% Ohne Hapax Legomena: 99,16% Tokenliste Mit Hapax Legomena: 99,85% Ohne Hapax Legomena: 99,94% 16.05.2007 Carsten Weber
VIELEN DANK! 16.05.2007 Carsten Weber