Natural Language Processing

Ähnliche Dokumente
Einführung in die Computerlinguistik

Einführung in die Computerlinguistik Morphologie (1): morphembasierte Morphologie mit Transduktoren

Einführung in die Computerlinguistik Morphologie (1): morphembasierte Morphologie mit Transduktoren

Einführung in die Computerlinguistik Morphologie (morphembasiert mit Transduktoren)

Natürlichsprachliche Systeme I Materialien zur Vorlesung

Lemmatisierung und Stemming in Suchmaschinen

Lemmatisierung und Stemming in Suchmaschinen

Stemming. OS Einblicke in die Computerlinguistik Felix Hain HTWK Leipzig

Korrekturprogramme. Von Emine Senol & Gihan S. El Hosami

Finite-State-Morphologie in XLE. Grammatikentwicklung, SS 2010

KASUS NUMERUS GENUS DEKLIN. MUSTER/PARA. -en Gen (Sg) Schw 10 / 26

Centrum für Informations- und Sprachverarbeitung Uni München Repetitorium ZP Sommersemester 09. Morphologie. Alla Shashkina

Seminar Text- und Datamining Textmining-Grundlagen Erste Schritte mit NLTK

Sprachtechnologie als Grundlage für die maschinelle Auswertung von Texten

Friedrich-Alexander-Universität Professur für Computerlinguistik. Nguyen Ai Huong

NLP Eigenschaften von Text

Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko

Einführung Computerlinguistik. Konstituentensyntax II

Natural Language Processing

Einführung in die Computerlinguistik: Morphologie und Automaten I

Seminar Ib Wort, Name, Begriff, Terminus Sommersemester Morphologie. Walther v.hahn. v.hahn Universität Hamburg

Vertiefung der Grundlagen der Computerlinguistik. Semesterüberblick und Einführung zur Dependenz. Robert Zangenfeind

Wann sind Codes eindeutig entschlüsselbar?

Einführung in die französische Morphologie

Nikolaus Schpak-Dolt. Einführung in die Morphologie des Spanischen

IR Seminar SoSe 2012 Martin Leinberger

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

Einführung in die französische Morphologie

Konstruieren der SLR Parsing Tabelle

19. Dynamic Programming I

Sprachlehr- & Sprachlernsysteme

HS: Angewandte Linguistische Datenverarbeitung Prof. Dr. Rolshoven Universität zu Köln. Edit distance. Referentinnen: Alena Geduldig, Kim Opgenoorth

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Anwendung von Vektormodell und boolschem Modell in Kombination

Computerlinguistik I

Morphologie. 1. Flexion und Derivation 2. Analyse mittels lexikalischer Regeln

Grammatiken und ANTLR

Dynamische Programmierung

Übersicht. Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene

Die Wortbildung des Deutschen. Wortbildungsmittel

Phonetische Lexika Morphologische Analysen. Uwe D. Reichel IPSK, LMU München 9. Januar 2008

Aufbau eines Flexionslexikons für die Katalogbereinigung

Einführung in die Computerlinguistik Finite State Transducers und Morphologie

Morphologie. Ending Khoerudin Deutschabteilung FPBS UPI

Datenstrukturen & Algorithmen

Automatische Rekonstruktion und Spezifizierung von Attributnamen in Webtabellen

Tagger for German. Online BRILL-Tagger für das Deutsche

Einführung in die Computerlinguistik. Morphologie II

Tokenisierung und Lemmatisierung in Suchmaschinen

Wortbildung und Wortbildungswandel

9. Heuristische Suche

Studienprojekt TaxoSearch Spezifikation

Einführung in das Natural Language Toolkit

Kapitel 5: Syntaxdiagramme und Grammatikregeln

Algorithmen und Formale Sprachen

Algorithmische Bioinformatik 1

Lateinische Morphologie: Anleitung

Einführung Computerlinguistik. Konstituentensyntax II

Spezielle Themen der KI. NLP Natural Language Processing. Sprachverstehen

Algorithmische Bioinformatik 1

Computerlinguistische Grundlagen. Jürgen Hermes Sommersemester 17 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln

Algorithmen und Datenstrukturen II

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung

Hidden-Markov-Modelle

Einführung in die Programmiertechnik

Lernmodul 7 Algorithmus von Dijkstra

Sprachsynthese: Textnormalisierung

Kontrastive Linguistik und Lexikographie XII

Algorithmische Bioinformatik 1

Der Viterbi Algorithmus

Was ist ein Wort? Morphologie I Einf. in die Linguistik

Einleitung. Kapitel 1

Installation und Benutzung. LangCorr ApS Erritsoegaardsvej 11 DK 7000 Fredericia Denmark

Inhaltsverzeichnis. Abkürzungen... 9 Niveaustufentests Tipps & Tricks Auf einen Blick Auf einen Blick Inhaltsverzeichnis

Kanditatenkolloqium Syntax - AG

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

PÄDAGOGISCHE FAKULTÄT. Einführung in die Morphologie der deutschen Sprache

Kanditatenkolloqium Syntax - AG

Inverted Files for Text Search Engines

Kontextfreie Grammatiken

5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)?

Wirtschaftsinformatik (PWIN) 5. Mentorium. Wirtschaftsinformatik (PWIN), SS2010, Professur für Mobile Business & Multilateral Security 1

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26

Kapitel 18 Fehlertolerantes Retrieval

KAPITEL I EINLEITUNG

Einführung in die Computerlinguistik. Morphologie III

Seminar Text- und Datamining Textmining-Grundlagen Erste Schritte mit NLTK

Teil 111. Chart-Parsing

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

Einführung in die Linguistik. Morphologie: Lösung

WMS Block: Management von Wissen in Dokumentenform PART: Text Mining. Myra Spiliopoulou

Earley Parsing. Parsing - WS 2012 / 2013 Lisa Orszullok & Anika Stallmann

Plank, WS 03/04, EinfLing, M&S 4b 1 Morphologische Analyse:

Informationsextraktion

Grundkurs Linguistik - Morphologie

Transkript:

Natural Language Processing Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Prof. Dr. Johannes Maucher HdM MIB Version 1.1 23. Oktober 2015 Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 1 / 38

Document History Version Date Changes Nr. 1.0 07.03.2012 Initiale Version. Teile dieses Foliensatzes (Lemmatisierung und Stemming) befanden sich früher im Foliensatz Textpreprocessing. 1.1 10.10.2013 Anpassungen für WS 13/14 Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 2 / 38

Übersicht Vorlesung Text Preprocessing 1 Einführung Sinn und Zweck dieser Vorlesung 2 Morphologie Morphologisches Parsen 3 Morphologie Parser Anwendungen Parser Realisierung 4 Normalisierung durch Stemming und Lemmatisierung 5 Ähnlichkeit zwischen Zeichenketten Minimum Edit Distance Berechnung der MED Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 3 / 38

Einführung Sinn und Zweck dieser Vorlesung Lernziele Was ist Morphologie? Wortformen Wozu werden Morphologische Parser benötigt? Wie funktionieren morphologische Parser? Was ist Lemmatisierung? Was ist Stemming? Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 4 / 38

Morphologie Morphologie,Morpheme, Wortformen Morphologie untersucht den Aufbau von Wörtern aus Morphemen Morphem: Minimale bedeutungstragende Einheit in einer Sprache Beispiele für Morpheme in Wörtern: Schule n Nacht zug un fair nacht s Morpheme werden unterteilt in Stamm (Wurzel) (z.b. fair) und Affix (z.b. un). Die verschiedenen Wortformen eines Worts besitzen in der Regel den gleichen Stamm und unterscheiden sich in den Affixen Affixtypen: Suffix: Hund e Präfix: un heil Zirkumfix: ge leit et Freies Morphem kann eigenständig als Wort vorkommen (z.b. heilig) gebundene Morpheme können nur zusammen mit anderen Morphemen auftreten (z.b. un) Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 5 / 38

Morphologie Flexion und Wortbildung Morphologie wird unterteilt in Flexion und Wortbildung Wortbildung wird unterteilt in Komposition und Derivation Abbildung: Flexion und Wortbildung nach [Carstensen] Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 6 / 38

Morphologie Formveränderungen (Flexion) im Deutschen Deklination: Dekliniert werden Substantive, Adjektive, Artikel, Pronomen nach Geschlecht, Zahl und Fall. Beispiele: das farbige Bild, des farbigen Bildes, dem farbigen Bild, die farbigen Bilder, der farbigen Bilder, den farbigen Bildern Konjugation: Konjugiert werden Verben nach Person, Zahl, Zeit, Aussageweise und Handlungsart (Aktiv, Passiv). Beispiele: ich mache, du machst, er/sie/es machte, wir werden machen, ihr machtet, sie hätten gemacht, es wird gemacht Steigerung: Betrifft Adjektive: Grundstufe, Höherstufe, Höchststufe. Beispiele: schnell, schneller, am schnellsten gut, besser, am besten Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 7 / 38

Morphologie Morphologisches Parsen Morphologisches Parsen Eingabe: Wort in beliebiger Form Ausgabe: Morpheme, und morphologische Eigenschaften Beispiele: Eingabe Ausgabe Eingabe Ausgabe cities city+n+pl gehst geh+v+2.sg merging merge+v+prespart gehen geh+v+inf cats cat+n+pl gehen geh+v+3.pl Tabelle: Ein-und Ausgabe eines morphologischen Parsers Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 8 / 38

Morphologie Parser Morphologisches Parsing wird gebraucht für: Effiziente Realisierung elektronischer Wörterbücher: Es muss nicht für jedes Wort jede Wortform gespeichert werden. Häufig reichen Morpheme und morphologische Regeln, die z.b. die Flexion regelmäßiger Verben definieren. Rechtschreibkorrektur liefert Grundlage für merkmalsbasierte Grammatiken, die u.a. für syntaktische Analyse, semantische Analyse oder Grammatikkorrektur eingesetzt werden. Part-of-Speech-Tagging Web-Search benötigt Normalisierung (siehe nächste Seite) Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 9 / 38

Morphologie Parser Anwendungen Normalisierung Problem: Menschen benutzen verschiedene Wortformen (Beugungsformen) für die Beschreibung von Dingen, Anfragen, usw. Das vom Computer zu berechnende Antwort soll aber unabhängig von den verschiedenen Wortformen sein. Beispiele: Die in einem Review zu berechnende Stimmung soll unabhängig davon sein, ob z.b. mag, mochte, mögen, gemocht, mochten im Review geschrieben wurde. Folgende Suchanfragen sollten das gleiche Ergebnis liefern: Video konvertieren, Konvertierung von Video, Wie konvertiert man Videos, video konvertierung. Lösung: Vereinheitlichung der verschiedenen Formen durch Normalisierung Hier behandelete Normalisierungsmethoden: Abbildung auf ausschließlich Kleinbuchstaben oder ausschließlich Großbuchstaben Abbildung aller Wortformen auf Ihre Grundform mit Stemming oder Lemmatisierung Beachte: Durch die Normalisierung kann auch wertvolle Information verloren gehen, d.h. sie ist nicht in jeder Anwendung sinnvoll. Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 10 / 38

Morphologie Parser Anwendungen Einsatz der Normalisierung Die Textnormalisierung wird vor allem im Information Retrieval (IR) 1 eingesetzt. Normalisierung wird meist nach der Tokenisierung und vor der Indexierung durchgeführt. Der Index enthält dann nur die Wortstämme. Vorteile: weniger Speicheraufwand für den Index schnellere Suche im Index Bessere Suchergebnisse, da diese durch gestemmte Indexe unabhängig von den verschiedenen Beugungsformen sind. 1 Gezielte Suche nach Material (Dokumenten), das unstrukturierte Daten (Text) enthält Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 11 / 38

Morphologie Parser Parser Realisierung Morphologische Parser benötigen Lexikon, das alle Stämme und Affixe enthält und Zusatzinformation, z.b. Wortkategorie (POS) Morphologische Regeln: Beschreiben welche Morphem-Typen aufeinander folgen dürfen. Orthographische Regeln: Beschreiben z.b. Veränderung von Morphemen beim Zusammenfügen (Bsp.: city + s cities). Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 12 / 38

Morphologie Parser Parser Realisierung Modellierung von morphologischen Regelsystemen (Lexikas) mit endlichen Automaten (FSAs) (1) Abbildung: Präsens-Formen von beten in einem endlichen Automaten dargestellt Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 13 / 38

Morphologie Parser Parser Realisierung Modellierung von morphologischen Regelsystemen (Lexikas) mit FSAs (2) Abbildung: Erweiterung durch Hinzunahme weiterer Verbstämme Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 14 / 38

Morphologie Parser Parser Realisierung Modellierung von morphologischen Regelsystemen (Lexikas) mit FSAs (3) Abbildung: Erweiterung durch Hinzunahme der Präteritumformen Generierende Anwendung: Effiziente Repräsentation von elektronischen Wörterbüchern Analysierende Anwendung: Überprüfen auf Wohlgeformtheit. Jedoch noch keine Ausgabe der Form wie in Tabelle 1 möglich. Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 15 / 38

Morphologie Parser Parser Realisierung Vollständiges Parsing mit Finite State Transducer (FST) Gesucht: Parser, der vollständige Struktur wie in Tabelle 1 liefert. Also z.b. zur Eingabe beteten auch noch die Information liefert, dass es sich um eine Imperfekt-Form 1.PL oder 3.PL handelt. Lösung: Finite State Transducer (FST) FSA erzeugt Menge gültiger Morphemketten FST erzeugt Menge gültiger Abbildungen von Morphemketten auf andere Ketten Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 16 / 38

Morphologie Parser Parser Realisierung Finite State Transducer (FST) Abbildung: Verbformen im FST FST ermöglicht Analyse: beteten V impf 1PL Generierung: V impf 1PL beteten Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 17 / 38

Morphologie Parser Parser Realisierung Regelmäßige und unregelmäßige Verben Obige Beispiele: Regelmäßige Verben Bei regelmäßigen Verben bleibt der Verbstamm grundsätzlich in allen Zeiten und Modi unverändert. Bei unregelmäßigen Verben ist dies nicht der Fall, z.b. gehen, ging gegangen Unregelmäßige Verben müssen daher in jeweils eigenen (weniger kompakten) FSTs behandelt werden. Abbildung: Flexion regelmäßiger Verben im Präsens und Präteritum [Canoonet] Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 18 / 38

Morphologie Parser Parser Realisierung Orthographische Regeln (phonologisch) Für die verschiedenen Wortkategorien (Nomen, Verb, Adjektiv, usw.) sind neben den Flexionsregeln, die für alle Wörter der Klasse gelten, noch spezielle orthographische Regeln definiert, die vor allem die Aussprache erleichtern sollen. Für die Kategorie Verb gehört hierzu z.b.: e-erweiterung: Wenn der Verbstamm durch t, oder st gefolgt wird, muss z.b. bei Verben, deren Stamm auf d oder t endet, ein e eingefügt werden: e-tilgung Abbildung: Beispiel regelmäßiges Verb mit e-erweiterung Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 19 / 38

Morphologie Parser Parser Realisierung Realisierung orthographischer Regeln in FSTs Jede orthographische Regel (Besonderheit) kann in einer jeweils eigenen FST realisiert werden. Die orthographischen FSTs werden dann der lexikalischen FST nachgeschaltet (kaskadiert). Abbildung: Regelmäßiges Verb ohne Besonderheit Abbildung: Regelmäßiges Verb mit e-erweiterung Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 20 / 38

Normalisierung durch Stemming und Lemmatisierung Unterscheidung Stemming und Lemmatisierung Morphologische Parser werden für die Textnormalisierung in der Lemmatisierung und im Stemming eingesetzt. Lemmatisierung Jeder eingegebene Term wird auf eine lexikalische Grundform (Baseform) abgebildet, also auf ein in einem Wörterbuch enthaltenes Wort. Lemmatisierung liefert für die unterschiedlichen Part Of Speech (POS)-Kategorien (Verb, Substantiv, usw.) jeweils einen eigenen Stamm. Beispiele: Verbindlichkeiten Verbindlichkeit Sätze Satz läßt lassen Stemming Der eingegebene Term wird auf einen Kern reduziert. Der Kern ist nicht zwingend ein gültiger lexikalischer Eintrag. Beispiele: Verbindlichkeiten verbind Sätze satz läßt lasst Nach dem Stemming kann i.d.r. nicht mehr die POS bestimmt werden. Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 21 / 38

Normalisierung durch Stemming und Lemmatisierung Stemming: Verfahren Table Lookup: Wortstämme und deren Beugungen sind in Tabellen eingetragen. Die gebeugte Form kann damit eindeutig ihrem Stamm zugeordnet werden. Produktive Techniken: Automatische Generierung der Stamm-Beugungsform Tabelle durch Anwendung von Beugungsregeln (Realisierung durch FSTs). Affix Removal: Wörter werden auf bekannte Präfixe, Suffixe und Flexionsendungen geprüft und diese gegebenenfalls entfernt und/oder verändert. Typisch für diese Stemmer: Entferne zuerst die längste bekannte Sequenz und wiederhole bis keine bekannte Sequenz mehr gefunden werden kann. Bekanntester Vertreter dieser Klasse: Porter Stemmer: einfach und auch für deutsche Sprache implementiert Porter Stemmer [Snowball] ist eine lexikonlose FST: Enthält nur Regeln auf Affixe und unterscheidet nicht nach Stämmen. Aufwendig: die Regeln für die Affixe müssen für jede Sprache individuell erstellt werden. Maschinelles Lernen: Basierend auf einer relativ kleinen aber möglichst repräsentativen Tabelle von Stamm-Beugungsformen werden allgemeine Beugungsregeln gelernt und für diese für die allgemeine Stammbestimmung angewandt. Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 22 / 38

Normalisierung durch Stemming und Lemmatisierung Stemming mit NLTK (Englisch) Listing 1: Stemming englischer Worte # -*- coding:utf-8 -*- from nltk import PorterStemmer PortSt=PorterStemmer() #wordlist=["halten", "hältst", "hielt", "hieltst", "Halter", "Haltestelle", "haltmachen"] wordlist=["hunters", "were", "wounded"] print "%-20s%-20s" % ("Word", "Stemmed Word") print "-"*40 for w in wordlist: print "%-20s%-20s" % (w, PortSt.stem(w)) print Text1="""The next example will evaluate the model to see how accurate it is on a set of examples that are generated using a different random seed. The EvaluateModel task is given the parameters needed to load the model produced in the previous step, generate a new waveform stream with a random seed of 2, and test on one million examples: """ tokens = Text1.split() cleanedtokens= [t.strip( ().,:;!?-" ).lower() for t in tokens] print "%-20s%-20s" % ("Word", "Stemmed Word") print "-"*40 for t in cleanedtokens: print "%-20s%-20s" % (t, PortSt.stem(t)) Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 23 / 38

Normalisierung durch Stemming und Lemmatisierung Stemming mit NLTK (Deutsch) # -*- coding:utf-8 -*- from nltk.stem.snowball import GermanStemmer GerSt=GermanStemmer("german") print "%-20s%-20s" % ("Word", "Stemmed Word") print "-"*40 wordlist=["verbindlichkeiten", "Sätze", "läßt"] for w in wordlist: print "%-25s%-25s" % (w, GerSt.stem(w)) print Listing 2: Stemming deutscher Worte Text1="""Schaurig schön und kostenlos: Halloween steht vor der Tür, und mancher lädt sich jetzt einen gruseligen Bildschirmschoner aus dem Netz. Tanzende Skelette oder grinsende Kürbisköpfe - die Auswahl ist groß, aber nicht jeder Anbieter ist seriös. Mancher Bildschirmschoner bringt wirklich böse Geister in den Rechner: Schadprogramme, die den Nutzer ausspionieren oder seinen PC für kriminelle Aktivitäten missbrauchen. """ tokens = Text1.split() cleanedtokens= [t.strip( ().,:;!?-" ).lower() for t in tokens] print "%-25s%-25s" % ("Word", "Stemmed Word") print "-"*40 for w in cleanedtokens: print "%-25s%-25s" % (w, GerSt.stem(w)) Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 24 / 38

Normalisierung durch Stemming und Lemmatisierung Lemmatisierung: Verfahren Für die Lemmatisierung werden i.d.r. umfassende Wörterbücher eingesetzt, welche jeder Grundform eines Wortes die Beugungsformen zuordnen. In NLTK wird WordNet für die Lemmatisierung benutzt. Ein WordNet - ähnlicher Thesaurus für die deutsche Sprache ist GermaNet. Derzeit kann GermaNet nicht für die Lemmatisierung eingesetzt werden. Möglich: SOAP Zugriff auf Projekt Deutscher Wortschatz: http://wortschatz.uni-leipzig.de/webservices/. Python Wrapper für DWS SOAP-Schnittstelle: http://github.com/lehmannro/libleipzig-python. Benötigt Suds https://fedorahosted.org/suds/#resources 2 2 Suds is a lightweight SOAP python client for consuming Web Services Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 25 / 38

Normalisierung durch Stemming und Lemmatisierung Lemmatisierung mit NLTK Listing 3: Lemmatisierung mit NLTK und WordNet # -*- coding:utf-8 -*- from nltk import WordNetLemmatizer wnlem=wordnetlemmatizer() #wordlist=["halten", "hältst", "hielt", "hieltst", "Halter", "Haltestelle", "haltmachen"] wordlist=["hunters", "were", "wounded"] print "%-20s%-20s" % ("Word", "Lemmatized Word") print "-"*40 for w in wordlist: print "%-20s%-20s" % (w, wnlem.lemmatize(w)) print Text1="""The next example will evaluate the model to see how accurate it is on a set of examples that are generated using a different random seed. The EvaluateModel task is given the parameters needed to load the model produced in the previous step, generate a new waveform stream with a random seed of 2, and test on one million examples: """ tokens = Text1.split() cleanedtokens= [t.strip( ().,:;!?-" ).lower() for t in tokens] print "%-20s%-20s" % ("Word", "Lemmatized Word") print "-"*40 for t in cleanedtokens: print "%-20s%-20s" % (t, wnlem.lemmatize(t)) Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 26 / 38

Normalisierung durch Stemming und Lemmatisierung Lemmatisierung (Deutsch) Listing 4: Lemmatisierung mit DWS # -*- coding:utf-8 -*- from libleipzig import * print "-"*80 print "------------------------Ermittlung der Grundform-------------------------------" HaltFam=[u"hielt",u"hielten",u"hieltst",u"hält",u"hältst",u"halte",u"hielten",u"gehalten",u"Halter" for r in HaltFam: print "Grundform von "+r+" :",Baseform(r) print "------------------------Ermittlung der Grundform-------------------------------" HaltFam=[u"Verbindlichkeiten",u"läßt",u"Sätze"] for r in HaltFam: print "Grundform von "+r+" :",Baseform(r) Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 27 / 38

Normalisierung durch Stemming und Lemmatisierung Normalisierung auf Groß- bzw. Kleinschreibung In Python: Für jedes Objekt s vom Typ String: s.lower() transformiert alle Buchstaben in s in Kleinbuchstaben s.upper() transformiert alle Buchstaben in s in Großbuchstaben Wann ist eine derartige Transformation nicht angebracht? Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 28 / 38

Ähnlichkeit zwischen Zeichenketten Minimum Edit Distance Anwendung: Wortkorrektur Bisher: Mit einem Morphologie Parser kann die Korrektheit eines Wortes überprüft werden. Jetzt: Wie kann ein ungültiges Wort korrigiert werden? Beispiel: Wort reimeit wird vom Parser als ungültig erkannt Welches ist das wahrscheinlichste korrekte Wort? Möglichkeiten: freiheit, einheit, reimen, eimer? Benötigt wird ein Maß (eine Metrik) zur Berechnung der Wortähnlichkeit. Lösung: Minimum Edit Distance Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 29 / 38

Ähnlichkeit zwischen Zeichenketten Minimum Edit Distance Minimum Edit Distance: Definition und Beispiel Minimum Edit Distance Die Minimum Edit Distance (MED) zwischen zwei Zeichenketten a und b ist die minimale Anzahl von Editieroperationen, die notwendig sind, um die eine Zeichenkette in die zweite zu überführen. Erlaubte Operationen sind: Einfügen eines Zeichens (I) Löschen eines Zeichens (D) Ersetzen eines Zeichens (R) Beispiel: Gegeben: a = Freiheit, b = reimeit; Gesucht: MED(a, b) Lösung: MED(a, b) = 2 source f r e i h e i t target r e i m e i t D R Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 30 / 38

Ähnlichkeit zwischen Zeichenketten Minimum Edit Distance Gewichtung der Kosten für die Editieroperationen Im Beispiel wurde angenommen, dass für alle 3 Editieroperationen die Kosten jeweils gleich 1 sind. Die Kosten für die unterschiedlichen Operationen können jedoch auch unterschiedlich gewichtet werden: Levenshtein Distanz: D und I kosten jeweils 1, R kostet 2. die Kosten können sogar individuell an die in der Operation beteiligten Buchstaben angepasst werden. Siehe z.b. Schreibmaschinendistanz 3 3 http://de.wikipedia.org/wiki/schreibmaschinendistanz Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 31 / 38

Ähnlichkeit zwischen Zeichenketten Berechnung der MED Berechnung der MED mit Dynamic Programming Dynamic Programming allgemein: Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 32 / 38

Ähnlichkeit zwischen Zeichenketten Berechnung der MED Berechnung der MED mit Dynamic Programming Dynamic Programming allgemein: Es gibt viele Pfade vom Start- zum Zielzustand Dynamic Programming findet den optimalen Pfad Prinzip: Wenn bekannt ist, dass der optimale Pfad vom Startzustand in einen beliebigen Zustand S über die Kanten p 1 und p 2 läuft, dann können auf der Suche nach dem optimalen Pfad vom Start ins Ziel alle anderen Pfade von Startzustand zum Zustand S ignoriert werden. Suche zunächst alle besten Pfade vom Start zu Zuständen in der Ebene 1, dann alle besten Pfade vom Startzustand zu Zuständen in Ebene 2, die über die besten Pfade der Länge 1 laufen, dann alle besten Pfade vom Startzustand zu Zuständen in Ebene 3, die über die besten Pfade der Länge 2 laufen,... Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 33 / 38

Ähnlichkeit zwischen Zeichenketten Berechnung der MED Dynamic Programming (DP) Ansatz für Zeichenkettenvergleich Vergleich von zwei Sequenzen Source: a, der Länge n, und Target: b, der Länge m. Erzeuge Tabelle D mit n Zeilen und m Spalten. An die Stelle D[i, j] wird die MED zwischen den ersten i Zeichen von a und den ersten j Zeichen von b geschrieben. Nach dem Dynamic Programming Ansatz kann die Berechnung der Einträge beginnend mit den kürzesten Teilsequenzen D[0, 0], D[0, 1],... D[0, m], D[1, 0], D[2, 0],..., D[n, 0] unter kontinuierlicher Erhöhung der Teilsequenzlängen aus den MEDs der jeweiligen MEDs der zuvor berechneten kürzeren Teilsequenzen berechnet werden. Erhöhung der Teilsequenzlängen, bis schließlich D[n, m] = MED(a, b) erreicht wird. Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 34 / 38

Ähnlichkeit zwischen Zeichenketten Berechnung der MED Dynamic Programming-Algorithmus für Bestimmung der MED 5 Initialisierung Rekursion 4 For all i [1, n] For all j [1, m] Termination D[i, j] = min D[i, 0] = i i [0, n] D[0, j] = j j [0, m] D[i 1, j] + 1 D[i, j 1] + 1 D[i 1, j 1] + { 2 if ai b j 0 if a i = b j MED(a, b) = D[n, m] 4 Hier und in den folgenden Tabellen unter Verwendung der Levenshtein Distanz 5 aus [Jurafsky] Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 35 / 38

Ähnlichkeit zwischen Zeichenketten Berechnung der MED Beispiel: DP-Bestimmung der MED 6 Berechnung der MED für die Sequenzen a = Intention und b = Execution 6 aus [Jurafsky] Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 36 / 38

Ähnlichkeit zwischen Zeichenketten Berechnung der MED Beispiel: DP-Bestimmung der MED 7 source I N T E N T I O N target E X E C U T I O N operation D R R I R 7 aus [Jurafsky] Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 37 / 38

Referenzen S. Bird, E. Klein, E. Loper Natural Language Processing with Python; O Reilly, 2009 K.-U. Carstensen, Ch. Ebert, C. Ebert, S. Jekat, R. Klabunde, H. Langer Computerlinguistik und Sprachtechnologie Spektrum-Verlag, 3. Auflage 2010 D. Jurafsky, J.H. Martin; Speech and Language Processing Language Processing; Pearson International Edition, 2009 Canoonet Deutsches Online Wörterbuch und Grammatik http://www.canoo.net/ Snowball Project Snowball Porter Stemming Algorithm description http://snowball.tartarus.org/algorithms/porter/stemmer.html Prof. Dr. Johannes Maucher (HdM MIB) NLP Kapitel 3: Wörter, Morphologie, Wortähnlichkeit Version 1.1 23. Oktober 2015 38 / 38