Preprocess Text

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Führt Bereinigungsvorgänge für Text aus.

Kategorie: Textanalyse

Hinweis

Gilt nur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Modul Text vorverarbeiten in Machine Learning Studio (klassisch) verwenden, um Text zu bereinigen und zu vereinfachen. Durch die Vorverarbeitung des Texts können Sie auf einfachere Weise aussagekräftige Features aus Text erstellen.

Das Modul Vorverarbeiten von Text unterstützt z. B. die folgenden allgemeinen Vorgänge für Text:

  • Entfernen von Stoppwörtern
  • Verwenden regulärer Ausdrücke zum Suchen nach und Ersetzen von spezifischen Zielzeichenfolgen
  • Lemmatisierung, bei der mehrere verwandte Wörter in eine einzelne kanonische Form konvertiert werden
  • Filtern nach bestimmten Sprachteilen
  • Kasusnormalisierung
  • Entfernen bestimmter Klassen von Zeichen, z.B. Ziffern, Sonderzeichen und Sequenzen von wiederholten Zeichen (etwa „aaaa“)
  • Identifizierung und Entfernung von E-Mails und URLs

Sie können auswählen, welche Bereinigungsoptionen verwendet werden sollen, und optional eine benutzerdefinierte Liste von Stoppwörtern angeben.

Das Modul unterstützt derzeit sechs Sprachen: Englisch, Spanisch, Französisch, Niederländisch, Deutsch und Italienisch.

Konfigurieren der Textvorverarbeitung

  1. Fügen Sie ihrem Experiment in Studio (klassisch) das Modul Preprocess Text (Text vorverarbeiten ) hinzu. Sie finden dieses Modul unter Textanalyse.

  2. Stellen Sie eine Verbindung mit einem Dataset her, das mindestens eine Spalte mit Text enthält.

  3. Wenn sich der vorverarbeitete Text in derselben Sprache befindet, wählen Sie die Sprache aus der Dropdownliste Sprache aus. Bei dieser Option wird der Text mit linguistischen Regeln vorverarbeitet, die für die ausgewählte Sprache spezifisch sind.

  4. Wählen Sie zum Vorverarbeiten von Text, der mehrere Sprachen enthalten kann, die Option Spalte enthält Sprache aus.

    Verwenden Sie dann die Culture-language column-Eigenschaft , um eine Spalte im Dataset auszuwählen, die die in den einzelnen Zeilen verwendete Sprache angibt. Die Spalte muss einen Standardsprachbezeichner enthalten, z. B. "Englisch" oder en.

    Basierend auf diesem Bezeichner wendet das Modul entsprechende linguistische Ressourcen an, um den Text zu verarbeiten.

    Wenn Ihr Dataset keine solchen Bezeichner enthält, verwenden Sie das Modul Sprache erkennen , um die Sprache vorher zu analysieren und einen Bezeichner zu generieren.

    Tipp

    Wenn eine nicht unterstützte Sprache enthalten ist, wird ein Fehler ausgelöst. Weitere Informationen finden Sie im Abschnitt Technische Hinweise .

  5. Nach Sprachteil entfernen: Wählen Sie diese Option aus, wenn Sie die Sprachanalyse anwenden möchten. Anschließend können Sie die Sprachteiltags verwenden, um bestimmte Wortklassen zu entfernen.

    • Nomen entfernen: Wählen Sie diese Option aus, um Nomen zu entfernen.
    • Adjektive entfernen: Wählen Sie diese Option aus, um Adjektive zu entfernen.
    • Verben entfernen: Wählen Sie diese Option aus, um Verben zu entfernen.

    Weitere Informationen zur verwendeten Part-of-Speech-Identifikationsmethode finden Sie im Abschnitt Technische Hinweise .

  6. Zu bereinigende Textspalte: Wählen Sie die Spalte oder Spalten aus, die Sie vorverarbeiten möchten.

  7. Remove stop words (Stoppwörter entfernen): Wählen Sie diese Option aus, wenn Sie eine vordefinierte Liste mit Stoppwörtern auf die Textspalte anwenden möchten. Das Entfernen von Stoppwörtern wird vor allen anderen Prozessen ausgeführt.

    Stoppwortlisten sind sprachabhängig und anpassbar. Weitere Informationen finden Sie im Abschnitt Technische Hinweise .

  8. Lemmatization (Lemmatisierung): Wählen Sie diese Option aus, wenn Sie möchten, dass Wörter in ihrer kanonischen Form dargestellt werden. Diese Option ist nützlich, um die Anzahl eindeutiger Vorkommen von anderweitig ähnlichen Texttoken zu verringern.

    Der Lemmatisierungsprozess ist stark sprachabhängig. Weitere Informationen finden Sie im Abschnitt Technische Hinweise .

  9. Detect sentences (Sätze erkennen): Wählen Sie diese Option aus, wenn das Modul beim Durchführen einer Analyse eine Satzbegrenzungsmarkierung einfügen soll.

    Dieses Modul verwendet drei senkrechte Striche (|||), um das Satzendezeichen darzustellen.

  10. Optional können Sie benutzerdefinierte Such- und Ersetzungsvorgänge mit regulären Ausdrücken ausführen.

    • Benutzerdefinierter regulärer Ausdruck: Definieren Sie den gesuchten Text.
    • Custom replacement string (Benutzerdefinierte Ersatzzeichenfolge): Definieren Sie einen einzelnen Ersatzwert.
  11. Normalize case to lowercase (Groß-/Kleinschreibung in Kleinbuchstaben normalisieren): Wählen Sie diese Option aus, wenn Sie ASCII-Großbuchstaben in Kleinbuchstaben umwandeln möchten.

    Wenn Zeichen nicht normalisiert werden, gilt das gleiche Wort in Groß- und Kleinbuchstaben als zwei verschiedene Wörter: ist z. B AM . dasselbe wie am.

  12. Optional können Sie die folgenden Typen von Zeichen oder Zeichensequenzen aus dem verarbeiteten Ausgabetext entfernen:

    • Remove numbers (Zahlen entfernen): Wählen Sie diese Option aus, um alle numerischen Zeichen für die angegebene Sprache zu entfernen.

    Die Identifizierung, was eine Zahl ausmacht, ist domänenabhängig und sprachabhängig. Wenn numerische Zeichen ein integraler Bestandteil eines bekannten Worts sind, wird die Zahl möglicherweise nicht entfernt.

    • Sonderzeichen entfernen: Verwenden Sie diese Option, um alle nicht alphanumerischen Sonderzeichen durch das Pipezeichen | zu ersetzen.

      Weitere Informationen zu Sonderzeichen finden Sie im Abschnitt Technische Hinweise .

    • Doppelte Zeichen entfernen: Wählen Sie diese Option aus, um alle Sequenzen zu entfernen, die Zeichen wiederholen. Beispielsweise würde eine Sequenz wie "aaaaa" entfernt.

    • Remove email addresses (E-Mail-Adressen entfernen): Wählen Sie diese Option aus, um eine beliebige Sequenz im Format <string>@<string> zu entfernen.

    • URLs entfernen: Wählen Sie diese Option aus, um alle Sequenzen zu entfernen, die die folgenden URL-Präfixe enthalten:

      • http, https
      • ftp
      • www
  13. Expand verb contractions (Verbverschmelzungen erweitern): Diese Option gilt nur für Sprachen, die Verbverschmelzungen verwenden (zurzeit nur für Englisch).

    Wenn Sie diese Option auswählen, können Sie beispielsweise die Phrase „wouldn't stay there“ durch „would not stay there“ ersetzen.

  14. Normalize backslashes to slashes (Umgekehrte Schrägstriche in Schrägstriche normalisieren): Wählen Sie diese Option aus, um alle Instanzen von \\/ zuzuordnen.

  15. Split tokens on special characters (Token für Sonderzeichen aufteilen): Wählen Sie diese Option aus, wenn Sie Wörter bei Zeichen wie &, - usw. aufteilen möchten.

    Beispielsweise würde die Zeichenfolge MS-WORD in zwei Token unterteilt werden, MS und WORD.

Beispiele

Die folgenden Beispiele im Azure KI-Katalog veranschaulichen die Verwendung des Moduls Text vorverarbeiten :

Technische Hinweise

Dieser Abschnitt enthält weitere Informationen zur zugrunde liegenden Textvorverarbeitungstechnologie und zum Angeben benutzerdefinierter Textressourcen.

Unterstützte Sprachen

Derzeit unterstützt Machine Learning die Textvorverarbeitung in diesen Sprachen:

  • Niederländisch
  • Englisch
  • Französisch
  • Deutsch
  • Italienisch
  • Spanisch

Weitere Sprachen sind geplant. Ankündigungen finden Sie im Microsoft Machine Learning-Blog.

Lemmatisierung

Die Lemmatisierung ist der Prozess der Identifizierung einer einzelnen kanonischen Form, um mehrere Worttoken darzustellen.

Die in Machine Learning Studio (klassisch) enthaltenen Bibliotheken zur Verarbeitung natürlicher Sprache kombinieren die folgenden linguistischen Vorgänge, um eine Lemmatisierung bereitzustellen:

  • Trennung von Sätzen: Bei Freitext, der für die Stimmungsanalyse und andere Textanalysen verwendet wird, werden Sätze häufig ausgeführt, oder die Interpunktion fehlt möglicherweise. Eingabetexte können einen beliebig langen Textabschnitt darstellen, der von einem Tweet oder Fragment bis hin zu einem vollständigen Absatz oder sogar dokument reicht.

    Die von Studio (klassisch) verwendeten Tools für natürliche Sprache führen die Satztrennung im Rahmen der zugrunde liegenden lexikalischen Analyse durch. Sätze werden jedoch nicht in der Ausgabe getrennt. Optional können Sie angeben, dass eine Satzgrenze markiert werden soll, um andere Textverarbeitung und -analyse zu ermöglichen.

  • Tokenisierung: Die Regeln, die die Grenzen von Wörtern bestimmen, sind sprachabhängig und können auch in Sprachen, die Leerzeichen zwischen Wörtern verwenden, komplex sein.

    Einige Sprachen (z. B. Chinesisch oder Japanisch) verwenden keinen Leerraum zwischen Wörtern, und die Trennung von Wörtern erfordert eine detaillierte Analyse.

    Daher liefern die in diesem Modul verwendeten Tokenisierungsmethoden und -regeln unterschiedliche Ergebnisse von Sprache zu Sprache. Diese Tokenisierungsregeln werden von Textanalysebibliotheken bestimmt, die von Microsoft Research für jede unterstützte Sprache bereitgestellt werden, und können nicht angepasst werden.

  • Teil der Spracherkennung: In jeder Wortfolge kann es schwierig sein, den genauen Teil der Sprache für jedes Wort rechnerisch zu identifizieren. Selbst ein scheinbar einfacher Satz wie "Zeit wie ein Pfeil" kann viele Dutzend Parsen haben (ein bekanntes Beispiel). Teile der Spracherkennung unterscheiden sich auch stark je nach Unterschiedliche Sprachen.

    In Machine Learning wird ein Mehrdeutigenzmodell verwendet, um den einzelnen wahrscheinlichsten Teil der Sprache unter Gegebenen des aktuellen Satzkontexts zu wählen. Die Part-of-Speech-Informationen werden verwendet, um Wörter zu filtern, die als Features verwendet werden, und bei der Schlüsselbegriffserkennung zu helfen. Die Ausgabe dieses Moduls enthält jedoch nicht explizit POS-Tags und kann daher nicht verwendet werden, um mit POS markierten Text zu generieren.

  • Generieren einer Wörterbuchform: Ein Wort kann mehrere Wortarten oder Wörterbuchformen haben, die jeweils aus einer anderen Analyse kommen. Beispielsweise verfügt das englische Wort building über zwei mögliche Maske: building, wenn das Wort ein Nomen ("das hohe Gebäude") ist, oder build, wenn das Wort ein Verb ist ("sie erstellen ein Haus"). In Machine Learning wird nur die wahrscheinlichste Wörterbuchform generiert.

Beispielausgabe für die Mausmatisierung

Quelle Matisiert mit Fallkonvertierung
Er ist ein 30-000 he i swim
Er ist auf dem Weg zum Bad he i go for a swim
Die Bebauung ist gut für den Bau von 400000000 für Build-2016 gut sein
Er wird ein Gebäude erstellen. he i build a build
Wir bauen alle Gebäude wir sind alle Build building

Hinweis

Die Sprachmodelle, die zum Generieren von Wörterbuchformularen verwendet werden, wurden mit einer Vielzahl von allgemeinen und technischen Texten trainiert und getestet und werden in vielen anderen Microsoft-Produkten verwendet, die APIs in natürlicher Sprache erfordern. Natürliche Sprache ist jedoch grundsätzlich mehrdeutig, und eine Genauigkeit von 100 % für alle Vokabulare ist nicht möglich. Die Mausmatisierung kann z. B. durch andere Teile der Sprache oder durch die Art und Weise beeinflusst werden, wie der Satz analysiert wird.

Wenn Sie zusätzliche Vorverarbeitungen oder linguistische Analysen mithilfe eines spezialisierten oder domänenabhängigen Vokabulars durchführen müssen, empfiehlt es sich, anpassbare NLP-Tools wie die in Python und R verfügbaren zu verwenden.

Sonderzeichen

Sonderzeichen werden als einzelne Zeichen definiert, die nicht als anderer Teil der Sprache identifiziert werden können, und können Satzzeichen enthalten: Doppelpunkte, Semikolons usw.

Stoppwörter

Ein Stoppwort(oder Stoppwort) ist ein Wort, das häufig aus Indizes entfernt wird, da es üblich ist und wenig Nutzen für den Informationsabruf bietet, obwohl es linguistisch sinnvoll sein kann.

Viele Sprachen unterscheiden z. B. semantisch zwischen bestimmten und unbestimmten Artikeln ("das Gebäude" im Vergleich zu "einem Gebäude"), aber für maschinelles Lernen und das Abrufen von Informationen sind die Informationen manchmal nicht relevant. Daher können Sie diese Wörter verwerfen.

Die Machine Learning-Umgebung enthält Listen der gängigsten Stoppwörter für jede der unterstützten Sprachen.

Sprache Anzahl von Stoppwörtern Beispiele
Niederländisch 49 aan, af, al
Englisch 312 a, about, oben
Französisch 154 de, des, d', la
Deutsch 602 a, ab, aber
Italienisch 135 a, adesso, ai
Spanisch 368 elas, dsta, elas

Der Einfachheit halber wurde eine ZIP-Datei mit den Standardstoppwörtern für alle aktuellen Sprachen in Azure Storage zur Verfügung gestellt:Stopwords.zip.

Ändern der Stoppwortliste

Wir erwarten, dass viele Benutzer eigene Stoppwortlisten erstellen oder die in der Standardliste enthaltenen Begriffe ändern möchten. Das folgende Experiment im Cortana Intelligence Gallery veranschaulicht, wie Sie eine Stoppwortliste anpassen können.

Wenn Sie die Liste ändern oder eine eigene Stoppwortliste erstellen, beachten Sie diese Anforderungen:

  • Die Datei muss eine einzelne Textspalte enthalten. Möglicherweise erhalten Sie den folgenden Fehler, wenn eine zusätzliche Spalte vorhanden ist: "Preprocess Text Error Column selection pattern "Text column to clean" is expected to provide 1 column(s) selected in input dataset, but 2 column(s) is/are actually provided. ( Fehler 0022 )"

    Suchen Sie in diesem Fall nach Leerzeichen, Registerkarten oder ausgeblendeten Spalten in der Datei, aus der die Stoppwortliste ursprünglich importiert wurde. Je nachdem, wie die Datei vorbereitet wurde, können Registerkarten oder Kommas, die im Text enthalten sind, auch dazu führen, dass mehrere Spalten erstellt werden.

    Wenn dieser Fehler auftritt, überprüfen Sie die Quelldatei, oder verwenden Sie das Modul Select Columns in Dataset (Spalten im Dataset auswählen), um eine einzelne Spalte auszuwählen, die an das Modul Preprocess Text übergeben werden soll.

  • Jede Zeile kann nur ein Wort enthalten. Für die Analyse der Datei werden Wörter durch Einfügen von Leerzeichen bestimmt.

  • Die Stoppwortliste darf nicht leer sein.

Reihenfolge der Vorgänge

In diesem Modul können Sie mehrere Vorgänge auf Text anwenden. Die Reihenfolge, in der diese Vorgänge angewendet werden, kann jedoch nicht geändert werden. Dies kann sich auf die erwarteten Ergebnisse auswirken.

Wenn Sie z. B. dieMatisierung auf Text anwenden und auch das Entfernen von Stoppwörtern verwenden, werden alle Wörter in ihre Wortformen konvertiert, bevor die Stoppwortliste angewendet wird. Wenn Ihr Text also ein Wort enthält, das nicht in der Stoppwortliste enthalten ist, aber sein Wort in der Stoppwortliste enthalten ist, wird das Wort entfernt.

Achten Sie darauf, die Zielbegriffe im Voraus zu testen, um die richtigen Ergebnisse zu gewährleisten.

Nicht unterstützte Sprachen

Wenn Ihre Textspalte Sprachen enthält, die von Machine Learning nicht unterstützt werden, empfiehlt es sich, nur die Optionen zu verwenden, die keine sprachabhängige Verarbeitung erfordern. Dies kann dazu beitragen, ungewöhnliche Ergebnisse zu vermeiden.

Wenn Sie außerdem die Option Spalte enthält Sprache verwenden, müssen Sie sicherstellen, dass im verarbeiteten Text keine nicht unterstützten Sprachen enthalten sind. Wenn eine nicht unterstützte Sprache oder ihr Bezeichner im Dataset vorhanden ist, wird der folgende Laufzeitfehler generiert:

"Preprocess Text Error (0039): Please specify a supported language." (Textfehler vorverarbeiten (0039): Geben Sie eine unterstützte Sprache an."

Um zu vermeiden, dass das gesamte Experiment fehlschlägt, weil eine nicht unterstützte Sprache erkannt wurde, verwenden Sie das Modul Split Data , und geben Sie einen regulären Ausdruck an, um das Dataset in unterstützte und nicht unterstützte Sprachen zu unterteilen.

Beispielsweise teilt der folgende reguläre Ausdruck das Dataset basierend auf der erkannten Sprache für die Spalte auf Sentence:

\"Sentence Language" Dutch|English|French|Italian|Spanish

Wenn Sie über eine Spalte verfügen, die den Sprachbezeichner enthält, oder wenn Sie eine solche Spalte generiert haben, können Sie einen regulären Ausdruck wie den folgenden verwenden, um nach der Bezeichnerspalte zu filtern:

\"Sentence Iso6391 Name" nl|en|fr|it|es

Erwartete Eingaben

Name Type Beschreibung
Dataset Datentabelle Eingabedaten
Beenden von Wörtern Datentabelle Optionale benutzerdefinierte Liste der zu entfernenden Stoppwörter

Modulparameter

Name Typ Range Optional Standard Beschreibung
Entfernen von URLs Boolean True

Falsch
Erforderlich true Entfernen von URLs
Sprache Sprache Englisch

Spanisch

Französisch

Niederländisch

Deutsch

Italienisch
Erforderlich Englisch Auswählen der vorverarbeiteten Sprache
Zu bereinigte Textspalte Spaltenauswahl Erforderlich StringFeature Auswählen der zu bereinigten Textspalte
Benutzerdefinierter regulärer Ausdruck String Optional Angeben des benutzerdefinierten regulären Ausdrucks
Benutzerdefinierte Ersetzungszeichenfolge String Optional Angeben der benutzerdefinierten Ersetzungszeichenfolge für den benutzerdefinierten regulären Ausdruck
Entfernen von Stoppwörtern Boolean Erforderlich true Entfernen von Stoppwörtern
Lemmatisierung Boolean Erforderlich true Verwenden derMatisierung
Entfernen nach Sprachteil True False-Typ true

false
Erforderlich False Geben Sie an, ob ein Teil der Sprachanalyse verwendet werden soll, um bestimmte Wortklassen zu identifizieren und zu entfernen.
Entfernen von Nomen Boolean Gilt, wenn die Option Nach Sprachteil filtern ausgewählt ist true Entfernen von Nomen
Entfernen von Adjektiven Boolean Gilt, wenn die Option Nach Sprachteil filtern ausgewählt ist true Entfernen von Adjektiven
Entfernen von Verben Boolean Gilt, wenn die Option Nach Sprachteil filtern ausgewählt ist true Entfernen von Verben
Erkennen von Sätzen Boolean Erforderlich true Erkennen von Sätzen durch Hinzufügen eines Satzabschlusszeichens \"||| \", das vom N-Gramm-Features-Extractormodul verwendet werden kann
Groß-/Kleinschreibung in Kleinbuchstaben normalisieren Boolean Erforderlich true Groß-/Kleinschreibung in Kleinbuchstaben normalisieren
Entfernen von Zahlen Boolean Erforderlich true Entfernen von Zahlen
Entfernen von Sonderzeichen Boolean Erforderlich true Entfernen Sie nicht alphanumerische Sonderzeichen, und ersetzen Sie sie durch das Zeichen "|\".
Entfernen doppelter Zeichen Boolean Erforderlich true Entfernen doppelter Zeichen
Entfernen von E-Mail-Adressen Boolean Erforderlich true Entfernen von E-Mail-Adressen

Ausgaben

Name Type Beschreibung
Ergebnisdataset Datentabelle Ergebnisdataset

Ausnahmen

Ausnahme Beschreibung
Fehler 0003 Eine Ausnahme tritt auf, wenn mindestens eine Eingabe NULL oder leer ist.
Fehler 0030 Eine Ausnahme tritt auf, wenn es nicht möglich ist, eine Datei herunterzuladen.
Fehler 0048 Eine Ausnahme tritt auf, wenn es nicht möglich, eine Datei zu öffnen.
Fehler 0049 Eine Ausnahme tritt auf, wenn es nicht möglich, eine Datei zu analysieren.

Eine Liste der Fehler, die für Studio-Module (klassisch) spezifisch sind, finden Sie unter Machine Learning Fehlercodes.

Eine Liste der API-Ausnahmen finden Sie unter Machine Learning REST-API-Fehlercodes.

Siehe auch

Textanalyse

Modulliste von A bis Z