ss19 praktikum nltk sklearn - julielab.de filepython api python api nltk stellt methoden zur...
TRANSCRIPT
![Page 1: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/1.jpg)
Software-Praktikum NLTK & sklearnDr. des. Johannes Hellrich
https://julielab.de20.6.2019
![Page 2: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/2.jpg)
NLTKTextanalyse
sklearnMaschinelles
Lernen
pandasDaten in Tabellen
NumPyRechnen
Komponenten für (modernes) NLP
![Page 3: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/3.jpg)
NLTKTextanalyse
sklearnMaschinelles
Lernen
pandasDaten in Tabellen
NumPyRechnen
Komponenten für (modernes) NLP
![Page 4: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/4.jpg)
sklearnMaschinelles
Lernen
pandasDaten in Tabellen
NumPyRechnen
Komponenten für (modernes) NLP
NLTKTextanalyse
![Page 5: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/5.jpg)
NLTK
• Projekt: http://www.nltk.org• E-Book: http://www.nltk.org/book/• Zur Lehre entwickelt, wird aber auch produktiv
genutzt• Bietet Korpora und Komponenten für Verarbeitung• String-orientiert• Primär für Englisch
![Page 6: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/6.jpg)
NLTK stellt Korpora & Modelle zur Verfügung• Download in Notebooks mit nltk.download('name‘)• Oder interaktiv per nltk.download()
![Page 7: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/7.jpg)
Interaktion mit KorporaEinfuhrung
Kopora in NLTKUbungsaufgaben
Beispielhafte KorporaPython API
Python API
NLTK stellt Methoden zur Interaktion mit Korpora zur Verfugung:fileids() listet alle Dateien, aus denen das Korpus besteht
raw() bietet den blanken Text
words(),sents(),paras() entsprechend die Worter, Satze und
Paragraphen
bei annotierten Korpora kann uber
tagged words(),tagged sents(),tagged paras() jeweils eine
Liste aus Tupeln (Token, Tag) mit Annotationen ausgegeben
werden
siehe auch http://www.nltk.org/howto/corpus.html furdetaillierte Informationen
Franz Matthies Softwarepraktikum
EinfuhrungKopora in NLTKUbungsaufgaben
Beispielhafte KorporaPython API
Python API
NLTK stellt Methoden zur Interaktion mit Korpora zur Verfugung:fileids() listet alle Dateien, aus denen das Korpus besteht
raw() bietet den blanken Text
words(),sents(),paras() entsprechend die Worter, Satze und
Paragraphen
bei annotierten Korpora kann uber
tagged words(),tagged sents(),tagged paras() jeweils eine
Liste aus Tupeln (Token, Tag) mit Annotationen ausgegeben
werden
siehe auch http://www.nltk.org/howto/corpus.html furdetaillierte Informationen
Franz Matthies Softwarepraktikum
![Page 8: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/8.jpg)
NLTK Pipelines
Satzerkennung Tokenerkennung POS-Tagger ...
• Zumeist sowohl sehr einfache als auch relativ moderne Lösungen vorhanden
• Segmentierung: http://www.nltk.org/book/ch03.html• Tagging & Co.: http://www.nltk.org/book/ch05.html
![Page 9: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/9.jpg)
Segmentierung
![Page 10: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/10.jpg)
POS-Tagging
![Page 11: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/11.jpg)
NLTKTextanalyse
sklearnMaschinelles
Lernen
pandasDaten in Tabellen
NumPyRechnen
Komponenten für (modernes) NLP
![Page 12: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/12.jpg)
scikit learn / sklearn
• Projekt: https://scikit-learn.org/stable/• Generelles Machine Learning• Zugriff auf mehr und aktuellere Verfahren• Nur sehr eingeschränkt spezifisch für Texte/NLP• Basiert intern auf numerischen Werten
![Page 13: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/13.jpg)
Features -> Numerisch
![Page 14: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/14.jpg)
Klassifikation
![Page 15: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/15.jpg)
Intuition für Verfahrendes maschinellen Lernens
![Page 16: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/16.jpg)
Naive Bayes
Gesucht: p(Klasse | Feature1, Feature2, ...)
Bayes Theorem:p Klasse Features =
𝑝 𝐾𝑙𝑎𝑠𝑠𝑒 𝑝(𝐹𝑒𝑎𝑡𝑢𝑟𝑒𝑠|𝐾𝑙𝑎𝑠𝑠𝑒)𝑝(𝐹𝑒𝑎𝑡𝑢𝑟𝑒𝑠)
Nenner quasi konstant:p Klasse Features = 𝑝 𝐾𝑙𝑎𝑠𝑠𝑒 𝑝(𝐹𝑒𝑎𝑡𝑢𝑟𝑒𝑠|𝐾𝑙𝑎𝑠𝑠𝑒)
Angenommen Features unabhängig:p Klasse Features = 𝑝 𝐾 𝑝(𝐹9|𝐾) 𝑝(𝐹:|𝐾) 𝑝(𝐹;|𝐾)...
![Page 17: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/17.jpg)
Logistische Regression
https://en.wikipedia.org/wiki/Logistic_regression
![Page 18: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/18.jpg)
SVM I/II
https://www.svm-tutorial.com/2014/11/svm-understanding-math-part-1/
![Page 19: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/19.jpg)
SVM II/II
https://scikit-learn.org/stable/modules/svm.html#svm-classification
![Page 20: ss19 praktikum nltk sklearn - julielab.de filePython API Python API NLTK stellt Methoden zur Interaktion mit Korpora zur Verf¨ugung: fileids() listet alle Dateien, aus denen das Korpus](https://reader030.vdocuments.net/reader030/viewer/2022040118/5e1554da9b46c01bb54cea40/html5/thumbnails/20.jpg)
Faustregeln
• Jeder Algorithmus hat Stärken und Schwächen• i.d.R. liefern SVMs die beste Kombination aus
Geschwindigkeit und Genauigkeit unter den gezeigten Verfahren• Ein Plot der Daten kann sich lohnen, eventuell ist
keine lineare Trennung möglich -> SVM mit Kernel