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.