Definition Was ist spaCy?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

spaCy ist eine Bibliothek für die Programmiersprache Python. Sie steht unter MIT-Open-Source-Lizenz und ist für das Natural Language Processing einsetzbar. Mithilfe der Library lässt sich Text computerbasiert analysieren und verstehen. spaCy ist für zahlreiche Sprachen verfügbar. Die Library verwendet zur Analyse der Texte Techniken wie Tokenisierung, Part-of-speech (POS) Tagging, Lemmatisierung und Einiges mehr.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

spaCy ist der Name einer Open-Source-Library für die Programmiersprache Python. Sie steht unter MIT-Lizenz und ist über GitHub frei verfügbar. Geschrieben ist die Bibliothek in Python und Cython. spaCy ist für den Einsatz für das Natural Language Processing (NLP) vorgesehen. Mithilfe der Software lässt sich Text mit einem Computer analysieren und „verstehen“.

Entwickelt wurde spaCy von Matthew Honnibal und Ines Montani, den Gründern des Software-Unternehmens Explosion. Explosion ist auf Software und Entwicklungswerkzeuge für Künstliche Intelligenz (KI) und Natural Language Processing spezialisiert. Weitere Lösungen des Unternehmens sind Prodigy, ein Annotation-Tool zum Erstellen von Trainingsdaten für das Maschinelle Lernen (ML), und Thinc, eine Deep-Learning-Library für das Zusammenstellen von Modellen mit Unterstützung verschiedener ML-Frameworks.

spaCy ist weniger für Lehr- und Forschungszwecke, sondern mehr für den Einsatz in produktiven Anwendungen vorgesehen. Es lassen sich Anwendungen programmieren, die große Textmengen automatisiert analysieren, verstehen und Informationen aus den Texten extrahieren. Ein weiterer Einsatzbereich ist die Vorverarbeitung von Text für das Deep Learning (DL). Für spaCy sind viele trainierte statistische Modelle für zahlreiche unterschiedliche Sprachen verfügbar. Die Bibliothek unterstützt mittlerweile die Tokenisierung von über 60 Sprachen. Eine der ersten Sprachen war neben Englisch die deutsche Sprache.

Die mit spaCy einsetzbaren Modelle können mit verschiedenen ML-Frameworks wie TensorFlow, MXNet oder PyTorch trainiert worden sein. Zusammen mit der freien Bibliothek sind verschiedene Erweiterungen und Visualisierungstools wie displaCy oder displaCyENT einsetzbar. Erstmals erschienen ist spaCy im Jahr 2015. Die Library ist mit Python plattformunabhängig auf Rechnern mit Betriebssystemen wie Linux, Windows oder macOS einsetzbar. Installieren lässt sich spaCy über das Paketverwaltungsprogramm von Python pip. Zahlreiche Unternehmen weltweit setzen spaCy für Anwendungen rund um das Natural Language Processing ein.

Grundlagen des Natural Language Processing

Das Natural Language Processing erfasst natürliche Sprache und Texte und verarbeitet sie mithilfe von Algorithmen und Regeln computerbasiert. Es kommen Methoden, Techniken und Erkenntnisse aus der Sprachwissenschaft, Informatik, Künstlichen Intelligenz, dem Deep Learning und dem Machine Learning zum Einsatz. Ziel des Natural Language Processings ist es, Sprache und Texte für Computer „verstehbar“ zu machen, um sie beispielsweise per Sprache zu bedienen oder zu steuern. Um den Sinn aus Sprache oder Texten zu extrahieren, ist es notwendig, dass nicht nur die einzelnen Wörter, sondern komplette Sätze und Textzusammenhänge oder Sachverhalte verstanden werden.

Die Komplexität und Mehrdeutigkeit der Sprache stellt eine Herausforderung für NLP-Systeme dar. Verfahren der Künstlichen Intelligenz, fortgeschrittene Algorithmen und Big-Data-Anwendungen sollen helfen, diese Herausforderung zu meistern. Beim Verstehen von Text und Sprache werden verschiedene Verfahren nacheinander zu durchlaufen. Texte werden in der Regel zunächst in Sätze und Wörter zerlegt, die grammatikalischen Grundformen identifiziert, Funktionen der einzelnen Wörter im Satz zugeordnet, Bedeutungen von Satzteilen oder ganzen Sätzen extrahiert und Sätze untereinander in Beziehung gesetzt. An die Grenzen gelangt das Natural Language Processing, wenn komplexe Mehrdeutigkeiten auftreten oder sprachliche Stilmittel wie Ironie, rhetorische Fragen oder die Paradoxie zum Einsatz kommen.

Der Funktionsumfang von spaCy

Für die Verarbeitung von Text und das Verstehen des Inhalts bietet spaCy ein Vielfalt an Funktionen. Einige dieser Funktionen sind beispielsweise:

  • Tokenisierung: Segmentierung von Text in Wörter und Satzzeichen
  • Part-of-speech (POS) Tagging: Zuordnen von Wortarten
  • Lemmatisierung: Zuordnung der Grundformen der Wörter
  • Dependency Parsing: Zuordnung von Syntaxabhängigkeiten zwischen den identifizierten Token
  • Named Entity Recognition (NER): Benennen von Objekten, Personen oder Orten
  • Ähnlichkeitsanalyse von Wörtern, Sätzen oder kompletten Texten
  • Entity Linking (EL)
  • Sentence Boundary Detection (SBD)

Die Arbeitsweise von spaCy

Für den Einsatz von spaCy spielen Modelle eine wichtige Rolle. Es handelt sich um bereits trainierte statistische Modelle, die sich mit spaCy laden lassen. Es sind zahlreiche verschiedene Modelle für unterschiedliche Sprachen verfügbar. Je nach Modell unterscheiden sich die Textanalysen in Genauigkeit und Geschwindigkeit. Abhängig vom zu analysierenden Text, der Sprache und der Anwendung ist ein passendes Modelle zu wählen oder über Machine-Learning-Frameworks selbst zu erstellen. Inhalte der Modelle sind POS-Tagger, Abhängigkeits-Parser, Entity-Erkenner, lexikalische Vokabeleinträge, Lemmatisierungsregeln, Wort-Vektoren und einiges mehr.

Im Folgenden vereinfacht dargestellt der Vorgang des Natural Language Processings mit spaCy. Der komplette Prozesse läuft in einer Art Pipeline ab, die aus aufeinander folgenden Arbeitsschritten besteht.

In der Regel beginnt das Natural Language Processing mit der Tokenisierung. In diesem Arbeitsschritt wird der Text in Token zerteilt. Token sind zum Beispiel Wörter, Leerzeichen oder Satzzeichen. Für jede Sprache existieren Modelle mit eigenen Tokenisierungsregeln. Das Part-of-speech (POS) Tagging ordnet den Wörtern grammatikalische Eigenschaften wie Verb, Adjektiv, Substantiv oder Adverb zu.

Ein weiterer Arbeitsschritt ist die Lemmatisierung. Hierbei werden die einzelnen Wörter auf ihre Grundformen zurückgeführt. Mithilfe der Named Entity Recognition (NER) ist es möglich, den erkannten Entities Personen, Orte, Zeitangaben oder andere Objekte wie Unternehmensnamen zuzuordnen. Das Dependency Parsing ordnet den identifizierten und getaggten Token Syntaxabhängigkeiten zu. Wort-Vektoren werden eingesetzt, um Beziehungen zwischen Wörtern zu beschreiben und zu erkennen.

Vorteile von spaCy

  • einfach zu nutzen
  • voll in Python integriert
  • mit anderen Deep-Learning-Frameworks kompatibel
  • viele bereits trainierte statistische Modelle verfügbar
  • für viele unterschiedliche Sprachen einsetzbar
  • hohe Geschwindigkeit und Performance
  • frei verfügbar
  • lange Texte prozessierbar
  • plattformunabhängig einsetzbar

(ID:46995913)

Über den Autor