Die NLP Pipeline
spaCy verarbeitet Texte in hintereinander gelagerten Schritten, die auch Pipeline genannt werden. Im Standard beinhaltet eine spaCy-Pipeline bereits die wichtigsten Operationen.
Last updated
Was this helpful?
spaCy verarbeitet Texte in hintereinander gelagerten Schritten, die auch Pipeline genannt werden. Im Standard beinhaltet eine spaCy-Pipeline bereits die wichtigsten Operationen.
Last updated
Was this helpful?
Das Laden eines Modells für eine bestimmte Sprache über spacy.load()
resultiert in einem Objekt vom Typ Language
. Inhaltlich ist dieses Objekt eine sogenannte Pipeline, in der hintereinander unterschiedliche Schritte zur Verarbeitung von Textdaten ausgeführt werden. Das Ergebnis einer Pipeline ist ein Objekt vom Typ Doc
, was die Ergebnisse des NLP-Prozesses beinhaltet. Die Abbildung unten zeigt eine Beispiel-Pipeline:
Der folgende Code erstellt eine solche Pipeline und speichert sie auf der Variable nlp
:
Im ersten Schritt importieren wir die spaCy-Bibliothek, damit sie uns überhaupt zur Verfügung steht. Mithilfe des nlp
-Objekts können wir nun einen Text mithilfe der Pipeline verarbeiten lassen. Der Text durchläuft dabei die unterschiedlichen Schritte, die in der Pipeline definiert sind. Die Pipeline für das kleine englische Modell von oben beinhaltet standardmäßig u. a. die folgenden Komponenten:
Komponente
Funktion
Modell benötigt?
tokenizer
Zerlegt den Text in Token. Z. B. einzelne Wörter, Satzzeichen oder Sonderzeichen. Immer vorhanden und daher nicht Teil der Pipeline an sich.
Nein
tagger
Rolle von Wörtern ermitteln (Part-of-Speech Tagger)
Ja
parser
Abhängigkeiten zwischen Wörtern ermitteln (Dependency Parser)
Ja
ner
Bennante Entitäten identifizieren (Named Entity Recognition)
Ja
lemmatizer
Ermitteln der Grundform
Ja
Wir können jederzeit fragen, welche Komponenten für unsere Pipeline definiert sind:
Um die NLP-Pipeline auf einen Text anzuwenden, führen wir das nlp
-Objekt als Funktion aus:
Die Variable doc
beinhaltet nun die Ergebnisse jeder Pipeline-Komponente. In den nächsten Abschnitten schauen wir, wie wir auf die einzelnen Ergebnisse zugreifen können.
Um kürzere Laufzeiten für unsere NLP-Prozesse zu erreichen, können wir nicht benötige NLP-Komponenten ausschalten, sodass diese nicht ausgeführt werden. Dazu übergeben wir der nlp()
Funktion eine Liste an Komponenten über das Attribut disable
:
Alternativ kann auch der folgende Befehl verwendet werden:
Um die Komponenten später wieder verwenden zu können, müssen wir sie erneut aktivieren: