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.
Zielgruppe und Format
Für wen ist dieser Kurs geeignet?
Dieses Seminar ist unabhängig vom verwendeten Betriebssystem, d.h. es spielt keine Rolle, ab man unter Windows, Unix oder Linux arbeitet.
Kursinhalte
Was Sie lernen
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
Offen oder Inhouse
Passt der Kurs zu Ihrem Bedarf?
Wir beraten Sie zu Termin, Dauer, Vorkenntnissen und einer auf Ihr Team abgestimmten Themenauswahl.