Vorlesungsskript 29

Sprachverarbeitung mit spaCy

Zum Abschluss dieses Seminars gibt es statt einer Vorlesung eine praktische Sitzung. Führen Sie zunächst folgendes Kommando aus, um spaCy zu installieren (wenn nicht genug PCs vorhanden sind, teilen Sie sich jeweils zu zweit einen):

$ pip3 install --user spacy https://github.com/explosion/spacy-models/releases/download/de_core_news_sm-2.0.0/de_core_news_sm-2.0.0.tar.gz && python3 -m spacy link de_core_news_sm de

Das wird eine Weile dauern.

Um Programme zu schreiben, die natürliche Sprache verarbeiten (natural language processing, NLP), ist derzeit spaCy eines der besten Werkzeuge. spaCy stellt Python-Module zur Verfügung, die einige der besten Algorithmen aus jahrzehntelanger computerlinguistischer Forschung effizient implementieren und sehr einfach zu benutzen machen. spaCy wurde maßgeblich von Matthew Honnibal entwickelt, der erst Linguist war, später immer mehr zum Computerlinguisten wurde und schließlich ein Startup gründete, um spaCy zu entwickeln.

spaCy stellt folgende Funktionen zur Verfügung:

Tokenisierung
Texte in Sätze, Wörter und Satzzeichen zerlegen
POS-Tagging
Die Wortart jedes Wortes erkennen
Dependenz-Parsing
Die Struktur jedes Satzes erkennen und als Dependenzbaum zurückgeben
Named-Entity-Erkennung
Erkennen, wo im Text Named Entities (Personen, Organisationen, Orte, Produkte…) erwähnt werden
regelbasiertes Matching
nach bestimmten Mustern im Text suchen

Wie alle automatischen NLP-Systeme basiert spaCy auf statistischen Modellen, die oft, aber nicht immer die richtige Antwort liefern. Die Genauigkeit ist aber hoch genug, um nützlich zu sein.

Ihre Aufgabe

Nachdem die Installation von spaCy abgeschlossen ist, starten Sie den Python-Interpreter und laden Sie die NLP-Funktion für die deutsche Sprache:

$ python3
>>> import spacy
>>> nlp = spacy.load('de')

Lesen Sie dann das Kapitel Linguistic Features aus der spaCy-Dokumentation und probieren Sie statt der dort gezeigten englischen Beispiele deutsche Beispiel aus.

Versuchen Sie zum Beispiel, zu einem selbstgewählten deutschen Satz einen Dependenzbaum anzeigen zu lassen.