Computerlinguistik mit Python
Technologien, die auf NLP (Natural Language Processing), nicht zu verwechseln mit Neurolinguistisches Programmieren) beruhen, gewinnen zunehmend an Bedeutung. In diesem Kurs erläutern wir die enormen Möglichkeiten die Python für die Computerlinguistik bietet. Neben einer kurzen Einführung in die Sprache Python, gibt es eine kurze Einführung in die Grundlagen von NLP. Das Seminar beginnt mit relativ einfachen Beispielen, wie beispielsweise ein Skript zum Zählen der Worthäufigkeiten eines Textes. Im Laufe der Schulung gehen wir dann auf Textklassifikation (auch als Dokumentenklassifikation bekannt) ein. Gegen Ende der Schulung sind Sie dann in der Lage die semantische Bedeutung von natürlich-sprachlichen Sätzen aus der Deutschen und Englischen Sprache automatisch zu erfassen. Im Kurs wird das Open-Source-Modul NLTK (Natural Language Toolkit) benutzt.
Voraussetzungen und Zielgruppe
Für wen eignet sich diese Schulung?
Dieses Seminar ist unabhängig vom verwendeten Betriebssystem, d.h. es spielt keine Rolle, ab man unter Windows, Unix oder Linux arbeitet.
Lernziele und Themen
Was Sie im Kurs erarbeiten
Die genauen Inhalte von unserer Schulung "Computerlinguistik mit Python" im Überlick:
- Python-Grundlagen
- Python, Philosophie und Unterschied zu konventionellen Programmiersprachen
- Einführung in Ipython und Ipython-Notebook
- Einführung in die Daten-Strukturen
- Datentypen, Klassen, Variablen, Objekte
- Listen und Tupel
- Strings und Stringfunktionen
- Sortierung unter Benutzung von sort und sorted
- Slicing
- Iteratoren und iterierbar
- Dictionaries
- Sets und Frozensets
- Konvertierungen zwischen Datentypen, z.B. Integer nach Strings oder Dictionaries in Listen und umgekehrt
- Probleme durch Referenzierung und In-Place-Methoden
- Copy und Deepcopy
- Kontrollstrukturen
- Verzweigungen
- Schleifen: while- und for-Schleife
- for-Schleife à la C bzw. C++ in Python
- continue, break und else in Schleifen
- Funktionen: Definition und Aufruf
- Positionsparameter und Schlüsselwortparameter
- Gobale und lokale Parameter
- pass-Anweisung
- Ein- und Ausgabe
- Interaktive Eingabe mittels input (raw_input)
- Formatierte Ausgabe: der traditionelle Weg mit "Stringmodulo"
- Der pythonische Weg: format-Methode
- Dateien lesen und schreiben
- Arbeiten mit Modulen
- Standardmodule
- Einbindung und Benutzung von Standardmodulen
- Namensräume und Gültigkeitsbereiche
- Schreiben eigener Module
- Code-Dokumentation und Help-Funktion
- Testen und Debugging
- Debugging
- Testen
- Systematisches Testen
- Doctest-Modul
- Unittest
- Fortgeschrittene Themen
- Iteratoren und Generatoren* und ** bei Funktionsdefinition und FunktionsaufrufSeiteneffekte in Funktionsdefinitionen
- Rekursive Funktionen
- Komplexitätsprobleme bei rekursiven Funktionen
- Memoisation und Dekorateure
- Lambda-Operator, map, filter und reduce
- Listen-, Mengen und Generator-Abstraktion
- Itertools
- Sortierung und 'individuelles' Sortieren mit 'key'-Funktionen
- Fehler und Ausnahmen
- Syntaxfehler und SemantikfehlerAusnahmen
- Ausnahmebehandlung
- Erzeugen von Ausnahmen
- finally zum Aufrämen
- Objektorientierte Programmierung
- "Alles Klassen"
- Klassen, Instanzen und Objekte
- Die einfachst mögliche Klassendefinition
- Instanz- und Klassenattribute, Properties
- privat, geschützt und öffentlich
- Magische Methoden und Operator-Überladung
- Vererbung
- Mehrfachvererbung
- Persistente Datenhaltung
- Python und XML
- Pickle
- Shelve
- Datenbankanbindungen
- Text- und Stringverarbeitung
- Wichtige Stringmethoden: count, index, find, rfind, replace, split, rsplit und andere
- Benutzung regulärer Ausdrücke in Python
- Computerlinguistik
- Kategorisierung und Tagging von Wörtern
- Extraktion von Textinformationen
- Textklassifikation
- Analyse der Satzstruktur
- Semantische Analyse von Sätzen
- Optional: Numerisches Python
- NumPy
- SciPy
- Matplotlib
- Pandas
Offener Kurs oder Inhouse
Wie soll Ihre Schulung aussehen?
Wir klären Lernziele, Dauer, Gruppengröße, Format und passende Beispiele aus Ihrem Arbeitsumfeld.