Foliensatz 2015/2016
- Anwendung von Theorien und Modellen über Sprache
- untersucht Sprache mithilfe von Algorithmen
- Bereiche
- Phonetik
- Syntax
- Semantik
- Pragmatik
-
Fehlerkorrektur
-
Spracherkennung und -steuerung
-
Sprachsynthese
-
Übersetzung
-
Faktensuche in Dokumenten
-
Bewertung von Texten
-
Rechercheunterstuetzung
-
Marketinganalysen (allgemein: Freitext-Datamining)
-
Problemstellungen
- Word Sense Disambiguation (WSD)
- Information Extraction (IE)
- Word Similarity (WS)
- Anforderungsdokumente
- Dokumentation
- Code-Comments
- Fehlermeldungen
- Nutzerbewertungen
- Sprache und Kommunikation beschreiben
- Sprechen und Verstehen auf Computern nachbilden
- Theorien und Modellen menschlichen Sprachverhaltens
- Über Wörter
- Über Sätze
- 1957-1970: 2 Lager
- Symbolisches Paradigma
- Stochastisches Paradigma
- 1970-1983
- Stochastisches Paradigma
- Stochastisches Paradigma
- Natural Language Understanding
- Diskursmodellierung
- 1983-1993
- Endliche Automaten
- Probabilistische Modelle
- Datengetriebene Ansaetze
- 1994-2008
- Kommerzialisierbarkeit durch schnelle Computer
- Maschinelles Lernen (brauchen teuer Korpora)
Typen:
- Sprachkorpora
- Text- und Diskurskorpora
- Tokens kleinste Einheit
tag set
alle vorgesehenen Tags- Part of Speech (POS)
- Det (Artikel)
- NN (Nomen, S singular, P plural)
- Adj (Adjektiv)
- Prp (Praeposition)
- V (Verb)
- CC (Konjunktion)
- Ergebnisse aus linguistischer Analyse "abspeichern"
- Strategien:
- Lexikon
- morphologischer Analyse (-ung ist Nomen...)
- syntaktische Struktur (kleines Window/Frame reicht)
- Brill-Tagging
- Hidden-Markov-Modell
- 94-97% Genauigkeit, 90% bei naiv
- Phase 1: Initialisierung mit Startmarkierungen
- Phase 2: Training. Fehler zaehlen, daraus neue Regeln, "beste Regel" anwenden/speichern
- So lange, bis Verbesserung > Schellwert
prev(1or2or3)Tag
,next(1or2or3)Tag
,sourroundTag
,prev/nextBigram
,prev/nextWord
- Guete
- Paezision, Ausbeute
- Genauigkeit: (wahr korrekt + falsch korrekt) / alle
- Harmonisches Mittel (Fbeta Mass): (1+beta^2) Precision*Recall/(Precision+Recall), haeufig beta=1
- Menschen 3000 Woerter/h
- Stanford log-linear Tagger: 15000 Woerter/s
- Tagger am Anfang: Fehler pflanzen sich nach spaeter fort
Parsebaum zu Text (z.B. Penn Treebank): Braucht keine Grammatik weil ggf. manuell erstellt
- Syntaxtree ueber Satz. Reihenfolge bleibt, Verschachtelung
- Knoten sind Konstituenten
- Abhaengigkeitsbaum: Woerter = Knoten, Kanten = Beziehungen
- naeher an der Semantik
- aehnlicher Inhalt => aehnlicher Baum
- kodieren Praedikat-Argument Strukturen
Grammatiken kontextfrei (CFG)
- Bootom-up vs Top-down
- Backtracking
- Beginne mit einem top-down-Schritt
- Wende bottom-up und top-down-Vorgehen abwechselnd an
- Wähle beim left-corner-Schritt (dem ehemalige bottom-up-Schritt) die Regel aus, deren linke Ecke auf das zuletzt erkannte Symbol passt
- Chomsky Normalform
- Nutze CYK mit Wahrscheinlichkeiten an Regeln
- Maximiere Wahrscheinlichkeit ueber gesamten Baum
- shared conceptualization: Wissen ueber Gegenstandsbereich
- alles explizit
- Domaene fast immer eingeschraenkt
- Mache implizites Wisse von Menschen fuer Systeme nutzbar
- Lexikonbasierte Ontologien
- Deklaratives Wissen
- Faktenwissen (propositional)
- Paris ist die Hauptstadt von Frankreich
- Faktenwissen (als „Bild“, als „Film“, ...)
- Wissen über den situativen Kontext
- Wer ist Sprecher, wer ist Hörer? Wo?
- Wissen über Regeln
- Wenn man eine Telefonnummer nicht weiß, kann man die Auskunft anrufen
- Faktenwissen (propositional)
- Prozedurales Wissen
- Wissen über die Anwendung von Regelwissen
- Beachten von Verkehrsregeln im Straßenverkehr
- Implizites Wissen über das Ausführen von Handlungen
- Wie man mit dem Fahrrad fährt
- Wissen über die Anwendung von Regelwissen
- Explizit vs implizit
- 500,000+ concepts
- 5,000,000 assertions
- 26,000+ relations
- Konzepte
- Instanzen
- Relationen Tier <- Katze
- Partitionen [Mann|Frau], disjunkt mit
d
, erschöpfend (muss sein)
- Informationsextraktion (IE) = segmentieren + klassifizieren + verbinden + zusammenfassen
- Maschinenlesbare Zusammenfassung von Texten
- Named Entity Recognition, NER
NPx and other NPy
=> NPxis a
NPy- Praezision ~55-60%
- Identifiziere Named Entities
- Entscheide, ob 2 Benennungen Beziehung haben
- Falls ja => Relation
- NIST
- User-Owner-Inventor-Manufacturer
- Citizen-Resident-Religion-Ethnicity
- Org-Location-Origin
- Employment
- Owner
- Founder, Membership, Sports-Affiliation, Shareholder
- Geo
- Subsidiary
- Business
- Family
- Lasting
- Located
- Total precision: 76%, recall: 42%
- Startwerte benoetigt
- Startwerte beeinflussen Qualitaet
- Praezision nicht besonders hoch
- Eingabe: Praedikat, Klassen-Markierungen, Relations-Markierungen
- Bilde Hearst-Muster aus Markierungen
- PMI-basierter Klassifizierer
- PMI(Instance, Discriminator) = |Hits(D+I)|/|Hits(I)|
- Wahrscheinlichkeitsbasierte Zuordnung eines Objektes zu einer Klasse
- Satz von Bayes: P(B|A) = P(A|B)*(PB)/P(A)
- Training: Schaetze Wahrscheinlichkeiten
- Single-Pass extractor
- Schritt 1: Self-Supervised Learner
- Schritt 2: Single-Pass Extractor
- Schritt 3: Redundanzbasierte Bewertung
- Demo: Open Information Extraction
- Precision: 88.1%
- Finde bekannte Relationen (Freebase) in Text -> Umgebene Saetze als Relationsmuster
- Mintz: Kreuzvalidierung mit Wikipedia, 50% Freebase als Goldstandard
- Manuelle Evaluation mit mechanical Turk
- Phase 1: Die Machbarkeitsstudie
- Phase 2: Start/Vorbereitung
- Identifikation der problemrelevanten Elemente
- Identifikation von Konzepten und Instanzen
- Ermitteln der Attribute der Konzepte
- Aufbau eines Netzwerks zwischen Konzepten mithilfe von Relationen
- Phase 3: Aufbau/Verfeinerung
- Phase 4: Evaluation
- Phase 5: Applikationen und Evolution
- Idee: Warenkorbanalyse (wenn X in Warenkorb, Y wird wahrscheinlich auch gekauft)
- Steps:
- Term Extraction
- Term Clustering
- Association Mining/Taxonomy building
- Concrete Steps:
- Format the text (one sentence per line)
- Tag each word (Part-of-Speech)
- Parse the tagged text
- Extract predicates and their arguments
- Build concept clusters
- Look for cluster intersection and build a taxonomy Interactive
- Apriori Algorithmus
- Tansfer the taxonomy to the associations mining tool
- Look for the potential associations
- Decide which associations are sensible
- Anzahl von Belegen (Unterstütztung) > sigma (Schwellwert, 2-10%)
- Konfidenz: Unterstützung(A und B)/Unterstützung(A) (70-90%)
- Nicht alle Schritte voll-automatisch
- Problemstellen nicht automatisch identifiziert
- Eval:
- Dampfkessel-Spezifikation
- Am Anfang zu viele Mehrdeutigkeiten. Synonyme als Probleme
- "enter a state" - state zu allgemein
- Ontologie mit Meta-Modell verbinden
- Komponenten in Relation setzen
- Oberklassen finden
- 80 Seiten Anforderung
- Ganz viel manuelle Vorformatierung
- Als Verben erkannte Rechenoperatoren: if x = y
- Problem: Falsche Clusterüberschneidungen (z.B. bei
denote
) - Insgesamt 5 Tage
- Lex. semantik: einzelne Worbedeutungen
- Formale Semantik: Waehle Wortbedeutungen um Satz Sinn zu entlocken
- Diskurs oder Pragmatik: Kombination formaler Semantik verschiedener Saetze zu Text/Diskurs mit Sinn
- Wortbeziehungen
- Homonyme: Gleiche Aussprache, unterschiedliche Bedeutungen (bow: Pfeil und Bogen, Geigenbogen, biegen, bowtie (Fliege), Londoner Viertel),
modern
(Zombie) - Polyseme: Selbes Wort, unterschiedliche aber verwandte Bedeutungen (Bank -gebaeude/-instition)
- Synonyme: Unterschiedliche Worte, gleiche Bedeutung.
Perfekt
: Ueberall sinnerhaltend austauschbar - Antonyme: Gegensaetzliche Bedeutung
- Hyperonyme und Hyponyme: Uberbegriff, Unterbegriff
- Meronyme und Holonyme: Ganzes/Teil (Hand,, Finger)
- Troponymie: Bedeutungsverwandte Worte mit Unterschieden bei Konnotationen (
schleichen
vs.stolpern
vs.schreiten
:gehen
, aber auf untersch. Art und Weise)
- Homonyme: Gleiche Aussprache, unterschiedliche Bedeutungen (bow: Pfeil und Bogen, Geigenbogen, biegen, bowtie (Fliege), Londoner Viertel),
- Lexem: Tupel (Bedeutung, Form)
- Lemma/Leitform: Nach was suche ich in Woerterbuch danach?
- Wortform: z.B. Plural, Konjugationen
- Sammlungen von nach Aehnlichkeit gruppierten Woertern
- "Ontologie fuer Englisch"
- Synsets: Menge von (beinahe-)Synonymen
- Problem: Hauptsaechlich Nomen
- Graph, nicht Baum
- Indiziert 5000 Journale, >18m Artikel
- Operationen im Thesaurusgraphen:
senses
: Anzahl Bedeutungsknotenpathlen
similarity
: log(pathlen
/ (2D)) wobeiD
= Breite/Höhe des Graphenwordsim
: höchstesimilarity
zwischen Bedeutungen
- Kurze Pfade in Thesaurus = groessere Aehnlichkeit
- Alternativ: +Kantengewichte
- Resniks Methode:
- Informationsgehalt IC(c) = -log(P(c))
- Lowest Common Subsumer (LCS)
- sim_Resnik(c1, c2) = -log(P(LCS(c1, c2)))
- Dekang Lins Methode
- 2 log P(LCS(c1, c2)) / (log(P(c1)) + log(P(c2))
- Definition:
- Nachbarschaftsfenster
- Tupel (syntaktische Abh., Wort), z.B. tangerine -> (subject-of, eat)
- Gewichtung Zaehlwerte:
- Nicht nur Binaerwerte moeglich, auch Wahrscheinlichkeiten
- KEINE Haeufigkeiten:
Drink it
viel haeufiger alsdrink wine
, aber: - Pointwise mutual Information: Wie oft tatsaechlich zusammen vgl. mit falls statistisch unabh.
- P(X,Y) / (P(X) * P(Y))
- PMI(x, y) = log2(P(X,Y) / (P(X) * P(Y))), assoc = PMI(w, f)
- Normalisierung der Vektoren (Minkowski, Euklid, Cos, Manhattan, Jaccard, Dice)
- Intrinsisch
- Korrelation mit Menschen-Ergebnissen
- Gold-Standard
- Extrinsisch
- In groesserem Gesamtsystem, z.B.
- Plagiatsuche
- Rechtschreibpruefung
- Text-Bewertung
- In groesserem Gesamtsystem, z.B.
- Probleme
- Domänenspezifische Wörter
- Neue Woerter
- Neue Bedeutungen
- Viele Nomen
- Wenige Werben
- Keine Adjektive/Adverben
- Identifiziere den gewollten Sinn eines Wortes in seinem Kontext
Lexical sample task
: WSD für eine kleine, feste Menge an WörternAll-words task
: WSD für alle Inhaltswörter eines Textes- Im Gegensatz dazu:
Word Sense Discrimination
- Unbekanntem Wort Bedeutung zuordnen
- Ganz fruehe Disziplin des maschinellen Lernens (1949)
- Beginne mit vorgetaggtem Trainingstext (also mit Bedeutungen annotiert)
- Extrahiere Eigenschaften, die den Kontext der Wörter beschreiben
- Trainiere einen Klassifizierer (bel. Verfahren zum masch. Lernen)
- Nutze den Klassifizierer bei unmarkierten Texten
Nachteil: Manuelles Markieren ist arbeitsaufwändig, teuer und unzuverlässig
Lexical sample task
- line-hard-serve Korpus (4000 Beispiele)
- interest Korpus (2400 Beispiele)
- SENSEVAL Korpora (mit 34, 73 bzw. 57 Beispielen)
- DSO: 192K Sätze aus Brown & WSJ (121 Nomen, 70 Verben)
All-words task
- SemCor: 234K Wörter aus dem Brown Korpus markiert mit WordNet-Bedeutungen
- SENSEVAL 3: 2081Wörter
- Satz
- Markieren der Wortarten
- Lemmatisierung: Grundformen bilden
- Syntaktisches Parsen
- Direkte Umgebung (+-3 Woerter)
- Allgemeine Nachbarschaft
- Naïve-Bayes:
gesuchter sense = sense S, der das Produkt aller Wahrscheinlichkeiten von Features in Abh. von S maximiert
- Precision 90%
- Kontext kann versetzt (entfernt) sein (10, 100, 1000 Woerter), und ist immer noch informativ
- Regeln -> Bedeutung
- switch/case: 1. passendes matched
- Daher Training mit Wahrscheinlichkeiten fuer Sortierung
- Intrinsisch
- z.B. Korpora aufteilen (Kreuzvalidierung), Korpus = Goldstandard
- Most-Frequent-Sense Basislinie
- 50-60% Precision
- Lesk (1986): Waehle Bedeutung nach groesster Ueberlappung mit Lexikon-Beschreibung
- Mihalcea 2007: Wikipedia!
- Wird besser mit der Zeit
- 200 Sprachen
- Betrachtet [[Link-Text|Artikel]] Links, wo Link-Text = Bedeutung zu Artikel-Wort
- Ignoriere Disambiguation pages
- Ignoriere gross geschriebene Texte (Named Entities)
- Bilde Markierungen auf WordNet-Synsets ab -> Vergleichbarkeit mit anderen Ansaetzen
- manuell
- Featurebasiertes WSD mit Naive-Bayes Classifier
- Precision: 84.7% vs. 72.6% MFS vs. 78% Lesk
- Hauptsaechlich Nomen
- Domaene einschraenken
- Mit kleinen Datensaetzen entwickeln
- Kreativitaet: Clever Datenquellen anzapfen/verknuepfen
Fabbrini Qualitaetsmodell:
- Eindeutigkeit
- Unklahrheit
- Subjektivitaet
- Unbestimmtheit (Optionales)
- Schwache Verben
- Vollständigkeit
- Unterspezifiziertheit
- Konsistenz
- Referenzfehler
- Verständlichkeit
- Multiplizitäten: Mehr als eine Sache pro Satz
- Implizites
- Unerklaerte Akronyme
- Ansatz:
- NLP-Werkzeuge zum Vorbereiten
- Ontologien zum Anwenden des gesunden Menschenverstands
- Text muss erst in XML-Form sein (Graph), wird auch zur Persistirung benutzt
- Lemmatisierung z.B. über WordNet
- Betrachtete Fehlertypen
- Nominalisierung
- Unvollst. spezifizierte Prozesswörter
- Nomen ohne Bezugsindex
- Unvollständig spezifizierte Bedingungen
- Modalverben der Notwendigkeit
- Ontologien:
- ResearchCyc
- WordNet
- ConceptNet
- YAGO,
ABC Video Rental | Monitoring Pressure | |||
---|---|---|---|---|
Manuell | RESI | Manuell | RESI | |
Summe | 47.3 | 62.2 | 24.3 | 45.8 |
Recall | 14% | 18% | 26% | 48% |
Precision | 100% | 100% | 100% | 100% |
- Anwendungen:
- PropBank
- Fuer jedes Verb ein Rollensatz (Arg0, Arg1...) (anstrengend!)
- Arg0 is Agent
- Arg1 is Patient
- Rest dynamisch pro Verb (uneinheitlich!)
- FrameNet
- Grundidee: Verstehe Wortbedeutungen durch sem. Strukturen, in denen sie vorkommen
- Rollen pro Frame
- Verschiedene Frame-Typen
- Target words (als Repraesentanten des Vorgangs(?))
- Kein Goldstandard vorhanden
- PropBank
- Rollen:
- Agens, Patiens, Actus
- Creator, Opus
- Possessor, Recipiens, Habitum
- Locus, Origo, Destinatio
- Status, Transitus
- SRL = Semantic Role Labeling (???)
- Identifikation
- Klassifikation
- OO-Analyse Vorgehen:
- Betrachte die Realität
- Modelliere den Ausschnitt
- Mache das Modell lauffähig (Programmieren)
- Simuliere den gewählten Ausschnitt (Fuehre Programm aus)
- Modelle aus nat. Sprache
- Verben zu Methoden oder Beziehungen
- Oberflaechliche Analyse
- "ein bisschen NLP", z.B. um fuer Nomen Klassen vorzuschlagen
- Tiefe Analyse
- Existiert noch nicht
- Viel Hintergrundwissen noetig
- Anreichern eines initialen Welt-Modells (Ontologie)
- 3 Ergebniswerte:
- korrekt: In Musterloesung
- falsch: Macht keinen Sinn
- extra: Macht Sinn, aber nicht in Musterloesung
- => neue Masse:
- Ausbeute = korrekt / musterloesung
- Praezision = korrekt / (korrekt + falsch)
- Ueber-Spec: extra / musterloesung
- Ergebnisse:
- 73% Recall
- 66% Precision
- 62% Overspec
- Nutzt Thematische Rollen und den davon aufgespannten Graph
- Nutzt Graph-Muster
- Uberspezifiziert (29 Klassen statt 8)
- Keine Attribute
- Entwurfsmuster verwenden (u.U. komplizierte semantische Muster)
- Aktivitätsdiagramme
- Zustandsdiagramme
- Tutorials als Datenquelle
- Open Source APIs
- Bekannte Domaenen
- Korrektes Englisch
- Projekte (unterschiedlich groß):
- JodaTime
- Apache Commons Math
- Java Collections Framework
- Smack API
- MaxEnt Classifier (Alternative: Cos, mehr Recall, weniger Precision)
- Texte fragmentieren
- 100-150 Woerter
- Nutze html Tags
- Text -> API Verknuepfung
- Recodoc
- Code-like Terms
- Ausbeute 96%, Präzision 96%
- Text-Verarbeitung
- Vorbereiten & Zerteilen (Punkte einfuegen, Stanford-Parser)
- Aufraeumen: Multi-Word-Terms (haeufige Sequenzen aus JDK-Docs)
- Trainingsdaten erstellen
- 2 Autoren erstellen Tupel (Abschnitt, Klasse) wenn Abschnitt Klasse erklaert
- Inter-Annotator-Uebereinstimmung gering, aber alles resolvable im Gespraech
- Trainieren mit Betrachtung von NLP-Textfeatures
- MaxEnt Classifier
- Unterschiedliche Feature-Kombinationen unterschiedlich gut (weniger teils besser)
- Real-valued features
- Tutorial-level features
- Section-level features
- Sentence-level features
- Dependency-based features
- Sprache schwieriger als Schach
- Jeopardy Gewinnerwolke: % beantwortete Fragen (~50-80%) vs. % richtig (> 85%)
- Geschwindigkeit
- Maximal 3 Sekunden
- Geospatial Reasoning
- Wo liegt Toronto?
- Quellen Zerteilen in NLP Syntax-Frames (Subjekt, Objekt...), Syntax nach Semantik-Frames (patent(inventor, invention))
- Wikipedia, Time, NY Time, Encarta, Oxford University, IMDB, IBM Dictionary, Ontologien wie YAGO...
- Gesamt: 500GB
- Woechentliches Update
- Hadoop
- PC: 2h
- 10 Rack, 750 Server, 2280 Core, 15 TB RAM, 80 TFLOP/s, Linux,