Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Softwarepraktikum Textanalyse mit Java/Python Franz Matthies Lehrstuhl für Computerlinguistik Institut für Germanistische Sprachwissenschaft Friedrich-Schiller-Universität Jena www.julielab.de Sommersemester 2016 – Sitzung 1 Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Überblick 1 Organisatorisches Voraussetzungen Prüfungsaspekte 2 Vorüberlegungen Pipelines Formate 3 Systeme im Überblick openNLP NLTK 4 Aufgaben Hinweise Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Voraussetzungen Prüfungsaspekte Überblick 1 Organisatorisches Voraussetzungen Prüfungsaspekte 2 Vorüberlegungen Pipelines Formate 3 Systeme im Überblick openNLP NLTK 4 Aufgaben Hinweise Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Voraussetzungen Prüfungsaspekte Voraussetzungen Programmierkenntnisse? Laptop? Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Voraussetzungen Prüfungsaspekte Prüfungsaspekte Aufgabenblätter: Ausgabe in Praktikumssitzung je nach Umfang Abgabe ein oder zwei Wochen später umfangreichere Abschlussarbeit am Ende Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Pipelines Formate Überblick 1 Organisatorisches Voraussetzungen Prüfungsaspekte 2 Vorüberlegungen Pipelines Formate 3 Systeme im Überblick openNLP NLTK 4 Aufgaben Hinweise Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Pipelines Formate Komponenten bilden eine Pipeline Text Sentence Splitter Tokenizer POS-Tagger Output Texte werden schrittweise analysiert; es kommen nach und nach neue Annotationen hinzu nicht jedes System bietet Komponenten für alle Schritte einer Pipeline Komponenten aus verschiedenen Quellen können aber (i.d.R.) zusammen genutzt werden Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Pipelines Formate Text vs. interne Formate Die gewonnen Informationen können auf 2 Arten von einer Komponente zur nächsten gelangen: Komponenten produzieren Textdateien mit in-line Annotationen, diese werden zum Input anderer Komponenten. Die Komponenten kommunizieren indirekt über einen zentralen Container. Jede Komponente meldet dort ihre Ergebnisse, bzw. holt sich dort den Text und die für sie nötigen Annotationen. Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Pipelines Formate Stärken der Ansätze Textbasiert die Arbeit jeder Komponente kann einfach betrachtet, bzw. anderweitig verwendet werden weniger Overhead Interne Formate direkte Kommunikation zwischen einzelnen Komponenten durch das einheitliche Format sind beim Einbinden fremder Komponenten weniger Übersetzungsschritte notwendig Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Pipelines Formate Beispiele Systeme mit Textinput/-output: openNLP Übergangsform NLTK Systeme mit internen Formaten GATE (https://gate.ac.uk/) UIMA (http://uima.apache.org/) Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK Überblick 1 Organisatorisches Voraussetzungen Prüfungsaspekte 2 Vorüberlegungen Pipelines Formate 3 Systeme im Überblick openNLP NLTK 4 Aufgaben Hinweise Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK openNLP http://opennlp.apache.org/ Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK openNLP: Prinzip (fast) alle Tools benötigen oder produzieren Modelle Modelle beinhalten gewichtete Entscheidungskriterien für die Zuordnung eines Phänomens zu einer Klasse fertige Modelle finden sich unter: http://opennlp.sourceforge.net/models-1.5/ (kombatibel mit openNLP 1.6) Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK openNLP: Verwendung Skripte für Windows und Linux um openNLP per Kommandozeile zu verwenden alternativ kann das Java Paket auch direkt in Java Programme eingebunden werden für UIMA gibt es fertige Wrapper-Klassen die meisten Tools können für das Training und einige auch zur Evaluation verwendet werden Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK openNLP: Fazit openNLP stellt für die meisten Aufgaben Tools zur Verfügung für das Deutsche gibt es nur Modelle für Sentence Detector, Tokenizer und POS-Tagger Manche sind über Kommandozeile nicht sinnvoll nutzbar (z.B. fehlende Dokumentation für Dokument Klassifizierer) Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK NLTK http://www.nltk.org/ Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK NLTK: Python “hard facts” einfache(re), leicht lesbare Sprache interaktive Benutzung möglich quelloffen & frei → gut für Forschung & Lehre Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK NLTK: Python “Ressourcen” Anaconda (https://www.continuum.io/why-anaconda) iPython Notebook (http://ipython.org/notebook.html) (see http://jupyter-notebook.readthedocs.org for a short introduction) NLTK Buch (http://www.nltk.org/book/) Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK NLTK: Python “Lernen” Codecademy ThinkPython Buch Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK NLTK: Was ist das? quelloffene Python-Bibliothek für NLP entwickelt mit Lehre im Sinn viele vorgefertigte nützliche Methoden . . . wie auch einige Corpora ausführliche Dokumentation/Tutorial Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben openNLP NLTK NLTK: Beispiele Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Hinweise Überblick 1 Organisatorisches Voraussetzungen Prüfungsaspekte 2 Vorüberlegungen Pipelines Formate 3 Systeme im Überblick openNLP NLTK 4 Aufgaben Hinweise Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Hinweise Aufgaben: Allgmeines Abgabe bis spätestens im Laufe des Donnerstags, 14.04.2016, als iPython Notebook (.html/.pdf) via E-Mail an: [email protected] 1 Anaconda (mit Python 3.5) installieren https://www.continuum.io/downloads 2 Kapitel 1 des NLTK Buchs “durcharbeiten” http://www.nltk.org/book/ch01.html 3 darauf aufbauend Übung 6 dieses Kapitels lösen http://www.nltk.org/book/ch01.html#exercises Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Hinweise Aufgaben: Hinweise Um die “Dispersionsgrafik” im Notebook anzuzeigen und nicht als “pop-up” zu öffnen, sollte folgender Befehl an den Anfang des Notebooks gestellt (und ausgeführt) werden: Magic Command %pylab inline pylab.rcParams[’figure.figsize’] = (14.0, 10.0) Die zweite Zeile bestimmt die Standardgröße der Grafiken. Franz Matthies Softwarepraktikum Organisatorisches Vorüberlegungen Systeme im Überblick Aufgaben Hinweise Um Notebooks im PDF-Format zu speichern, wird Pandoc und LATEX benötigt. Franz Matthies Softwarepraktikum