7 Feature-Engineering-Tricks für Textdaten

7 Characteristic-Engineering-Methods für Textdaten
Bild vom Herausgeber

Einführung

Immer mehr auf KI und maschinellem Lernen basierende Systeme ernähren sich davon Textdaten – Sprachmodelle sind heute ein bemerkenswertes Beispiel. Es ist jedoch wichtig zu beachten, dass Maschinen nicht wirklich Sprache, sondern Zahlen verstehen. Anders ausgedrückt: einige Characteristic-Engineering In der Regel sind Schritte erforderlich, um Rohtextdaten in nützliche numerische Datenfunktionen umzuwandeln, die diese Systeme verarbeiten und daraus Rückschlüsse ziehen können.

In diesem Artikel werden sieben einfach zu implementierende Methods zum Durchführen von Characteristic Engineering für Textdaten vorgestellt. Abhängig von der Komplexität und den Anforderungen des spezifischen Modells, in das Sie Ihre Daten einspeisen möchten, benötigen Sie möglicherweise einen mehr oder weniger anspruchsvollen Satz dieser Methods.

  • Nummern 1 bis 5 werden typischerweise für klassisches maschinelles Lernen im Umgang mit Textual content verwendet, einschließlich Entscheidungsbaumbasierte Modellezum Beispiel.
  • Nummer 6 und 7 sind für Deep-Studying-Modelle wie wiederkehrende neuronale Netze und Transformatoren unverzichtbar, obwohl Nummer 2 (Stemming und Lemmatisierung) möglicherweise dennoch erforderlich ist, um die Leistung dieser Modelle zu verbessern.

1. Stoppwörter entfernen

Das Entfernen von Stoppwörtern trägt dazu bei, die Dimensionalität zu reduzieren: etwas Unverzichtbares für bestimmte Modelle, die unter dem sogenannten Fluch der Dimensionalität leiden können. Gebräuchliche Wörter, die Ihre Daten hauptsächlich stören, wie Artikel, Präpositionen und Hilfsverben, werden entfernt, sodass nur diejenigen erhalten bleiben, die den größten Teil der Semantik im Quelltext vermitteln.

Hier erfahren Sie, wie Sie dies in nur wenigen Codezeilen tun (Sie können einfach ersetzen). phrases mit einer Textliste, aufgeteilt in eigene Wörter). Wir werden verwenden NLTK für die englische Stoppwortliste:

2. Stemming und Lemmatisierung

Die Reduzierung von Wörtern auf ihre Stammform kann dazu beitragen, Varianten (z. B. verschiedene Zeitformen eines Verbs) zu einem einheitlichen Merkmal zusammenzuführen. In Deep-Studying-Modellen, die auf Texteinbettungen basieren, werden normalerweise morphologische Aspekte erfasst, daher ist dieser Schritt selten erforderlich. Wenn die verfügbaren Daten jedoch sehr begrenzt sind, können sie dennoch nützlich sein, da sie die Knappheit verringern und das Modell dazu bringen, sich auf die Kernwortbedeutungen zu konzentrieren, anstatt redundante Darstellungen zu assimilieren.

3. Zählbasierte Vektoren: Bag of Phrases

Einer der einfachsten Ansätze, Textual content im klassischen maschinellen Lernen in numerische Merkmale umzuwandeln, ist der Bag of Phrases-Ansatz. Es kodiert einfach die Worthäufigkeit in Vektoren. Das Ergebnis ist eine zweidimensionale Anordnung von Wortzahlen, die einfache Grundmerkmale beschreiben: etwas, das für die Erfassung der Gesamtpräsenz und Relevanz von Wörtern in Dokumenten nützlich ist, aber begrenzt ist, weil es wichtige Aspekte für das Verständnis der Sprache wie Wortreihenfolge, Kontext oder semantische Beziehungen nicht erfasst.

Dennoch könnte es sich am Ende um einen einfachen, aber effektiven Ansatz handeln, beispielsweise für nicht allzu komplexe Textklassifizierungsmodelle. Benutzen scikit-lernen:

4. TF-IDF-Characteristic-Extraktion

Time period Frequency – Inverse Doc Frequency (TF-IDF) ist seit langem einer der Eckpfeiler der Verarbeitung natürlicher Sprache. Es geht einen Schritt über Bag of Phrases hinaus und berücksichtigt die Häufigkeit von Wörtern und ihre Gesamtrelevanz nicht nur auf der Ebene einzelner Texte (Dokumente), sondern auch auf Datensatzebene. Beispielsweise werden in einem Textdatensatz mit 200 Textteilen oder Dokumenten Wörter, die häufig in einer bestimmten, engen Teilmenge von Texten vorkommen, aber insgesamt in wenigen Texten der vorhandenen 200 vorkommen, als äußerst related erachtet: Dies ist die Idee hinter der inversen Häufigkeit. Dadurch erhalten einzigartige und wichtige Wörter ein höheres Gewicht.

Durch die Anwendung auf den folgenden kleinen Datensatz mit drei Texten wird jedem Wort in jedem Textual content eine TF-IDF-Wichtigkeitsgewichtung zwischen 0 und 1 zugewiesen:

5. Satzbasierte N-Gramm

Satzbasierte N-Gramme helfen dabei, die Interaktion zwischen Wörtern zu erfassen, zum Beispiel „new“ und „york“. Mit der CountVectorizer Klasse von scikit-lernenkönnen wir die Semantik auf Phrasenebene erfassen, indem wir die festlegen ngram_range Parameter zum Einbinden von Sequenzen aus mehreren Wörtern. Stellen Sie es zum Beispiel auf ein (1,2) erstellt Merkmale, die sowohl einzelnen Wörtern (Unigrammen) als auch Kombinationen aus zwei aufeinanderfolgenden Wörtern (Bigrammen) zugeordnet sind.

6. Reinigung und Tokenisierung

Obwohl es in Python-Bibliotheken viele spezialisierte Tokenisierungsalgorithmen gibt, z TransformatorenDer grundlegende Ansatz, auf dem sie basieren, besteht darin, Satzzeichen, Groß- und Kleinschreibung und andere Symbole zu entfernen, die nachgeschaltete Modelle möglicherweise nicht verstehen. Eine einfache Bereinigungs- und Tokenisierungspipeline könnte darin bestehen, Textual content in Wörter aufzuteilen, in Kleinbuchstaben zu schreiben und Satzzeichen oder andere Sonderzeichen zu entfernen. Das Ergebnis ist eine Liste sauberer, normalisierter Worteinheiten oder Token.

Der re Mit der Bibliothek zur Verarbeitung regulärer Ausdrücke kann ein einfacher Tokenizer wie dieser erstellt werden:

7. Dichte Funktionen: Worteinbettungen

Abschließend noch einer der Höhepunkte und leistungsstärksten Ansätze, um heutzutage Textual content in maschinenlesbare Informationen umzuwandeln: Worteinbettungen. Sie eignen sich hervorragend zum Erfassen von Semantiken, beispielsweise von Wörtern mit ähnlicher Bedeutung wie „Shogun“ und „Samurai“ oder „Aikido“ und „Jiujitsu“, die als numerisch ähnliche Vektoren (Einbettungen) kodiert sind. Im Wesentlichen werden Wörter mithilfe vordefinierter Ansätze wie Word2Vec oder Word2Vec in einen Vektorraum abgebildet spacig:

Die Ausgabedimensionalität des Einbettungsvektors, in den jedes Wort umgewandelt wird, wird durch den spezifischen Einbettungsalgorithmus und das verwendete Modell bestimmt.

Zusammenfassung

In diesem Artikel wurden sieben nützliche Methods vorgestellt, um Rohtextdaten zu verstehen, wenn sie für maschinelles Lernen und Deep-Studying-Modelle verwendet werden, die Aufgaben der Verarbeitung natürlicher Sprache wie Textklassifizierung und -zusammenfassung ausführen.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert