Text-Preprocessing und reduzierte Dimensionalität

Lesedauer: 2 Minuten

Der Begriff „Preprocessing“ beschreibt die Vorverarbeitung eines Textes und ist ein sehr wichtiger Schritt um Textinformation mit Machine Learning Methoden adäquat bearbeiten zu können, deshalb wird dem Thema hier ebenfalls ein Blog Artikel gewidmet.

Das Ziel des Text-Preprocessing ist die Reduzierung der Dimensionalität eines komplexen Textes. Darunter kann man sich die Darstellung der Bestandteile eines Textes, zum Beispiel Sätze als Vektoren im Multidimensionalen Raum vorstellen. [1]

Betrachtet man zum Beispiel folgenden Text, welcher aus drei separaten Sätzen besteht:


„Ich kontaktiere Sie bezüglich meines Druckers. Seit gestern druckt er nur mehr schwarzweiß. Es ist für mich dringend da ich Dokumente bis morgen drucken muss. „


Man findet hier drei unterschiedliche Sätze mit insgesamt 24 eindeutigen Wörtern („ich“
kommt zweimal vor). Daraus würde sich im Vektor-Raum-Modell [2] die Anzahl der
Dimensionen mit n=24 ergeben. Die drei Sätze können als Vektoren in diesen 24
Dimensionen gedacht werden, wobei die Richtung des Vektors und der Abstand
zwischen den einzelnen Vektoren von der im Satz beinhalteten Wörter abhängt.
Man kann also hier sehen, dass eine Bereinigung des Textes, mit der einhergehenden
Reduktion der Wörter und Satzzeichen, eine Reduktion der Dimensionalität des Textes
mit sich bringt, und somit die Berechnung der Vektoren im Vektor-Raum-Modell
erleichtert.

Bereinigung des Textes – Text Preprocessing

Deepanshi Dhingra beschreibt in ihrem Blog Artikel vom Juni 2021, „Text Preprocessing
in NLP with Python Codes“, folgende Schritte für das Preprocessing von Textinformation, um diese anschließend in NLP Modellen nutzbar zu machen: [3]

  • Satzzeichen entfernen (Punkt, Frage-/Ausrufezeichen, Sonderzeichen, etc.)
  • URLs entfernen
  • Text in Kleinbuchstaben umwandeln
  • Tokenisierung (Zerteilen Textes in kleinere Einheiten – z.B. Sätze, bzw. Sätze in
    Wörter und Satzzeichen) [4]
  • Stoppwörter entfernen (Wörter, welche oft vorkommen, aber in sich keine
    Information beinhalten)
  • Stemming (Vereinheitlichung der Wortformen, Reduzierung auf den Wortstamm,
    Affixe entfernen) [5]
  • Lemmatisierung (von Lemma, der Grundform eines Wortes, so wie es im Lexikon gefunden wird) [6]

Auch hier gibt es in Python wieder sehr praktische Bibliotheken, welche diese Schritte für Anwender:innen übernehmen, wie zum Beispiel NLTK (Natuaral Language Toolkit), SpaCy, Gensim, und viele weitere.

Bibliographie
Text dieses Artikels ist ein angepasster Auszug aus “B.Schön, Komparative Analyse von Machine-Learning Methoden zur Klassifizierung und Priorisierung von Support Tickets der Firma Springtime Technologies GmbH, Feb. 2024, Bachelorarbeit”
Originalreferenzzahlen Arbeit: [22], [23], [24], [25], [26], [27]

Artikelreferenzen

[1] Harshith, „Text Preprocessing in Natural Language Processing using Python“, Medium. Zugegriffen: 24. November [Online]. Verfügbar unter: https://towardsdatascience.com/text-preprocessing-in-natural-languageprocessing-using-python-6113ff5decd8

[2] K. Pykes, „Vector Space Models“, Medium. Zugegriffen: 24. November 2022. [Online]. Verfügbar unter:
https://towardsdatascience.com/vector-space-models-48b42a15d86d

[3] Deepanshi, „Text Preprocessing NLP | Text Preprocessing in NLP with Python codes“, Analytics Vidhya.
Zugegriffen: 24. November 2022. [Online]. Verfügbar unter: https://www.analyticsvidhya.com/blog/2021/06/textpreprocessing-in-nlp-with-python-codes/

[4] J. J. Webster und C. Kit, „Tokenization as the Initial Phase in NLP“, in COLING 1992 Volume 4: The 14th International
Conference on Computational Linguistics, 1992. Zugegriffen: 24. November 2022. [Online]. Verfügbar unter:
https://aclanthology.org/C92-4173

[5] „Stemming bei der Verarbeitung von natürlichsprachlichen Texten“, Indoqa – Suche verstehen. Zugegriffen: 24.
November 2022. [Online]. Verfügbar unter: https://www.indoqa.com/a/stemming

[6] W. Klein und R. Rath, „AUTOMATISCHE LEMMATISIERUNG DEUTSCHER FLEXIONSFORMEN“, S. 49