Prof. Dr. Schlangen
 
 
Hintergrundbild
Hintergrundbild
Hintergrundbild

You are here:  Universität Bielefeld > Faculty of Linguistics & Literary Studies > Staff > Prof. Dr. Schlangen

Hintergrundmaterial für das Studium der Computerlinguistik / Texttechnologie

Diese Seite sammelt Verweise zu Hintergrundmaterial, das beim Studium der Computerlinguistik / Texttechnologie hilfreich sein könnte. Ich habe mich dabei bemüht, online (kostenfrei) erhältliches Material zu finden; dies hat inzwischen oft eine Qualität erreicht, die gar nicht hinter käuflichen Werken zurückstehen muß. Zusammenfassende Lehrbücher findet man allerdings doch immer noch eher in Buchform.[1]

Der Schwerpunkt liegt hier bei allgemeinem Hintergrundmaterial, in den einzelnen Veranstaltungen wird ja jeweils bekannt gegeben, welches spezielle Lehrmaterial gegebenenfalls heranzuziehen ist. Genauer, der Schwerpunkt liegt bei zwei Bereichen, in denen erfahrungsgemäß die Vorstellungen der Dozenten darüber, was als Hintergrundwissen vorhanden sein sollte, sich nicht ganz decken mit den Erwartungen der Studierenden, was mitgebracht werden sollte: Mathematik und Programmierung. (Erfreulicherweise!) zieht der Studiengang auch viele Studierende an, die sich selbst als gar nicht übermäßig afin zu diesen Bereichen bezeichnen würden, und denen es eher an der sprachlichen Seite gelegen ist. Es ist die Hoffnung, dass diese sich dann nicht abschrecken lassen durch die doch notwendige formale Strenge, und über den von der Schulmathematik doch sehr verschiedenen Gegenstand, einen Zugang finden zu solchen formalen Methoden.

Vor den Hinweisen zu Material in diesen Gebieten aber zuerst etwas ganz spezielle zur Computerlinguistik:

Speziell zu Computerlinguistik

Studierende der Computerlinguistik sind in der glücklichen Lage, eigentlich fast alles für ihr Studium Relevante aus einem Buch beziehen zu können: Speech and Language Processing von Dan Jurafsky und James Martin (in der zweiten Auflage von 2009). Viele unserer Veranstaltungen im BA und im MA lassen sich auf Kapitel aus diesem Buch abbilden (zu unserer Verteidigung: dann aber etwas vertieft). Wenn Sie nur ein Buch kaufen wollen in Ihrem Studium (und es mit der Computerlinguistik ernst meinen), nehmen Sie dieses.

Es gibt auch ein deutsches Lehrbuch zum Thema, Kai-Uwe Carstensen et al. Computerlinguistik und Sprachtechnologie. Dies hat den Vorteil hat, über die UB als digitales Buch erhältlich zu sein für Studierende der Uni Bielefeld. Es hat allerdings auch einen Nachteil, nämlich das es etwas oberflächlicher, weniger zeitgemäß und in der Breite auch weniger umfassend ist.

Ist zwar nicht direkt CL, aber als grundlegende, populäre Einführung in die Beschäftigung mit Sprache und Kognition immer noch ohne Gleichen: Gödel, Escher, Bach von Douglas Hofstadter. (Das hat in frühen Jahren – 1985 – ein Interesse geweckt, das mich später zum Fach geführt hat…)

Mathematische Grundlagen

Die Computerlinguistik benutzt ein breites Arsenal an mathematischen Methoden aus sehr unterschiedlichen Gebieten, die man kaum gemeinsam in einer Einführung findet; zu nennen seien dort (als grundlegende Bereiche) Logik, Wahrscheinlichkeitstheorie, Graphentheorie, und lineare Algebra; etwas Analysis kann auch nicht schaden. Logik ist in unserem Curriculum ganz gut abgebildet (“Formale Methoden 1 & 2”), zu den anderen Bereichen gibt es jetzt auch eine (MA) Veranstaltung, die ein Einführung gibt (“Diskrete Mathematik”).

In meinen Veranstaltungen, in denen das relevant ist, gebe ich auch einen Reader aus mit gesammelten Materialien bzw. wiederhole die nötigen Konzepte selbst noch einmal kurz. Unter anderem versammelt dieser Material aus folgenden Quellen (weshalb ich ihn auch nicht hier allgemein zugänglich machen kann sondern auf die Originalquellen verweise):

Logik und verwandte Methoden sind wie gesagt im Curriculum gut repräsentiert, aber der Vollständigkeit halber seien die Klassiker hier auch noch erwähnt:

  • Partee et al., “Mathematical Methods in Linguistics”, Springer (Amazon link)
  • Gamut, “Logic, Language and Meaning” (Vol 1 & 2), University of Chicago Press (Amazon link)

Programmierung / Python

Wie oben schon erwähnt, ist die Programmiersprache unserer Wahl im Studium Python.[2] Dazu gibt es sehr viele (fast schon zu viele, verwirrend viele) Einführungen und Tutorials online. (Es ist ebenfalls die Programmiersprache, die in dem BA-Programmierkurs verwendet wird.)

Zuerst aber noch einen Schritt zurück. Auch wenn es nicht unbedingt nötig ist für die Benutzung, kann ein grundlegendes Wissen über Informatik im Allgemeinen nicht schaden (was ist eine CPU, was ist RAM, wie kommt etwas auf die Festplatte, sowas). Das Buch D is for Digital von Brian Kernighan sieht aus, als könnte es eine gute, leicht verdauliche Grundlage geben. (Ich kenne es selbst nur in Auszügen, aber der Autor ist einer der Väter der modernen Computerwelt und insofern ist ihm fachlich zu vertrauen.)

Zu Python konkret:

  • Die Klassiker sind die Python-Bücher aus dem Verlag “O’Reilly”, Learning Python und Programming Python. (Allgemein gilt, dass Bücher aus diesem Verlag, egal zu welchem Thema der Informatik, mit hoher Wahrscheinlichkeit sehr gut sind; sie sind allerdings teuerer als umsonst.)
  • Eine ebenfalls gründlich und langsam vorgehende, dafür aber frei erhältliche, Einführung ist Think Python. (Davon gibt es auch eine deutsche Übersetzung, wenig erstaunlicherweise auch bei O’Reilly.)
  • Etwas zügiger geht das offizielle Python Online Tutorial voran.
  • Noch zügiger vorangehend und damit eher für Leute geeignet, die schon andere Programmiersprachen kennen, ist das Python-Kapitel in den Python Scientific Lecture Notes (Kapitel 2). Diese Lecture Notes werden in entsprechenden Veranstaltungen auch noch näher erwähnt, da sie auch eine Einführung geben in weitere Python-Tools, die wir stark verwenden, wie IPython (eine interaktive Umgebung für wissenschaftliches Computing), numpy (ein Python-Paket für lineare Algebra), scikit-learn (für maschinelles Lernen), matplotlib (für Datenvisualisierung / Plotting).
  • Keine Einführung sondern ein nützliches Tool, wenn man denn schon am Lernen und Ausprobieren ist, ist der Python-Tutor, in welchem man Code ausführen kann und der dann Interna der Maschine (wie Variablenbelegungen) schön visualisiert.
  • Speziell zur Computerlinguistik gibt es ein(e Sammlung von) Python-Paket(en), das natural language toolkit. Dazu gibt es auch ein Buch, Natural Language Processing with Python von Steven Bird, Ewan Klein und Edward Loper, das netterweise auch online verfügbar ist (die Druckversion ist bei O’Reilly erschienen). Dieses Toolkit wird in einigen Veranstaltungen eingesetzt und dort dann auch extensiv eingeführt, insofern ist es hier nur der Vollständigkeit halber aufgeführt und nicht etwas, dessen Kenntnis erwartet wird (wie dies in unterschiedlichem Maße von anderen hier aufgeführten Sachen gilt).
  • Wir benutzen in Lehre wie Forschung intensiv das IPython notebook, eine erweiterte Pythonumgebung speziell für das wissenschaftliche computing. Eine Programmiereinführung in diesem environment findet sich z.B. hier.

Versionsgeschichte

  • 24/07/2013: Eintrag zu IPython.
  • 17/04/2013: Klassiker zu Logik u.ä. hinzugefügt.
  • 08/04/2013: Hinweis auf Python 2.7 hinzugefügt.
  • 04/04/2013: Erste Version online.

  1. Linksammlungen haben die Eigenschaft, schnell zu veralten und dann ins Nichts zu zeigen. Ich werde mich bemühen, diese Liste gelegentlich durchzugehen, kann aber nicht garantieren, dass die Links immer aktiv sein werden.  ↩

  2. Weil einige Pakete es noch verwenden, benutzen wir momentan noch die Version 2.7 von Python und nicht eine der 3.x-Versionen. Python 3.x hat einige kleinere Neuerungen eingeführt und unterscheidet sich daher ein wenig von 2.7. Das sind eigentlich nur Kleinigkeiten, aber um Verwirrungen zu vermeiden, empfiehlt es sich vielleicht, bei Tutoriumsmaterial erstmal darauf zu achten, dass dort 2.7 verwendet wird.  ↩