Grundlagen Spezialthemen

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 wendet sich an alle, die geschriebene natürliche Sprache bearbeiten, analysieren und Dokumente klassifizieren wollen. Vorkenntnisse in Programmierung oder in Python sind wünschenswert.
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
Alle Themen dieser Schulung werden mit interessanten Beispielen aus der Computerlinguistik eingeführt und vertieft. In zahlreichen praktischen Übungen können die Teilnehmer am Computer selbst das Erlernte ausprobieren und praxisnahe Aufgaben programmieren.

Offen oder Inhouse

Passt der Kurs zu Ihrem Bedarf?

Wir beraten Sie zu Termin, Dauer, Vorkenntnissen und einer auf Ihr Team abgestimmten Themenauswahl.

Kurs anfragen