Der Skill „Text teilen“

Der Skill Text teilen unterteilt den Text in Blöcke. Sie können festlegen, ob Sie den Text in Sätze oder in Seiten einer bestimmten Länge aufteilen möchten. Dieser Skill ist besonders nützlich, wenn Sie eine maximale Textlänge in nachfolgenden Skills einhalten müssen.

Hinweis

Diese Fähigkeit ist nicht an Azure AI Services gebunden. Sie ist nicht abrechenbar und erfordert keinen Azure AI Services-Schlüssel.

@odata.type

Microsoft.Skills.Text.SplitSkill

Skillparameter

Bei den Parametern wird zwischen Groß- und Kleinschreibung unterschieden.

Parametername Beschreibung
textSplitMode Entweder pages oder sentences. Seiten haben eine konfigurierbare maximale Länge, aber der Skill versucht, das Abschneiden eines Satzes zu vermeiden, so dass die tatsächliche Länge kleiner sein kann. Sätze sind eine Zeichenkette, die an einem Satzendezeichen endet, z. B. einem Punkt, einem Fragezeichen oder einem Ausrufezeichen, vorausgesetzt, die Sprache hat ein Satzendezeichen.
maximumPageLength Gilt nur, wenn textSplitMode auf pages festgelegt ist. Dieser Parameter bezieht sich auf die maximale Seitenlänge in Zeichen, die mit String.Length gemessen wird. Der Mindestwert ist 300, der Höchstwert ist 50000 und der Standardwert ist 5000. Der Algorithmus tut sein Bestes, um den Text an den Satzgrenzen zu unterbrechen, so dass die Größe der einzelnen Teile etwas weniger als maximumPageLength betragen kann.
pageOverlapLength Gilt nur, wenn textSplitMode auf pages festgelegt ist. Jede Seite beginnt mit dieser Anzahl von Zeichen ab dem Ende der vorherigen Seite. Wenn dieser Parameter auf 0 gesetzt ist, gibt es keinen überlappenden Text auf aufeinanderfolgenden Seiten. Dieser Parameter wird unterstützt in 2023-10-01-Preview REST API und in Azure SDK Beta-Paketen, die zur Unterstützung der integrierten Vektorisierung aktualisiert wurden. Dieses Beispiel enthält den Parameter.
maximumPagesToTake Gilt nur, wenn textSplitMode auf pages festgelegt ist. Anzahl der zurückzuschickenden Seiten. Der Standardwert ist 0, was bedeutet, dass alle Seiten zurückgegeben werden. Sie sollten diesen Wert festlegen, wenn nur eine Teilmenge von Seiten benötigt wird. Dieser Parameter wird unterstützt in 2023-10-01-Preview REST API und in Azure SDK Beta-Paketen, die zur Unterstützung der integrierten Vektorisierung aktualisiert wurden. Dieses Beispiel enthält den Parameter.
defaultLanguageCode (Optional) Einer der folgenden Sprachcodes: am, bs, cs, da, de, en, es, et, fr, he, hi, hr, hu, fi, id, is, it, ja, ko, lv, no, nl, pl, pt-PT, pt-BR, ru, sk, sl, sr, sv, tr, ur, zh-Hans. Die Standardsprache ist Englisch (en). Folgende Aspekte müssen beachtet werden:
  • Die Angabe eines Sprachcodes ist nützlich, um zu vermeiden, dass ein Wort bei Sprachen ohne Leerzeichen wie Chinesisch, Japanisch und Koreanisch halbiert wird.
  • Wenn Sie die Sprache nicht im Voraus kennen (z. B. wenn Sie den LanguageDetectionSkill zur Erkennung der Sprache verwenden), empfehlen wir die Voreinstellung en.

Skilleingaben

Parametername Beschreibung
text Der Text, der in Teilzeichenfolgen aufgeteilt werden soll.
languageCode (Optional) Der Sprachcode für das Dokument. Wenn Sie die Sprache der Texteingaben nicht kennen (z. B. wenn Sie LanguageDetectionSkill zur Erkennung der Sprache verwenden), können Sie diesen Parameter weglassen. Wenn Sie languageCode auf eine Sprache setzen, die nicht in der Liste der unterstützten Sprachen für defaultLanguageCode steht, wird eine Warnung ausgegeben und der Text wird nicht geteilt.

Skillausgaben

Parametername Beschreibung
textItems Die Ausgabe ist ein Array von Teilzeichenfolgen, die extrahiert wurden. textItems ist der Standardname der Ausgabe. targetName ist optional, aber wenn Sie über mehrere Textteilungskenntnisse verfügen, stellen Sie sicher targetName , dass Sie die Daten nicht aus der ersten Fähigkeit mit dem zweiten überschreiben. Wenn targetName festgelegt, verwenden Sie sie in Ausgabefeldzuordnungen oder nachgelagerten Fähigkeiten, die die Qualifikationsausgabe verwenden.

Beispieldefinition

{
    "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
    "textSplitMode" : "pages", 
    "maximumPageLength": 1000,
    "defaultLanguageCode": "en",
    "inputs": [
        {
            "name": "text",
            "source": "/document/content"
        },
        {
            "name": "languageCode",
            "source": "/document/language"
        }
    ],
    "outputs": [
        {
            "name": "textItems",
            "targetName": "mypages"
        }
    ]
}

Beispieleingabe

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "text": "This is the loan application for Joe Romero, a Microsoft employee who was born in Chile and who then moved to Australia...",
                "languageCode": "en"
            }
        },
        {
            "recordId": "2",
            "data": {
                "text": "This is the second document, which will be broken into several pages...",
                "languageCode": "en"
            }
        }
    ]
}

Beispielausgabe

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "textItems": [
                    "This is the loan...",
                    "In the next section, we continue..."
                ]
            }
        },
        {
            "recordId": "2",
            "data": {
                "textItems": [
                    "This is the second document...",
                    "In the next section of the second doc..."
                ]
            }
        }
    ]
}

Beispiel für Chunking und Vektorisierung

Dieses Beispiel ist für die integrierte Vektorisierung, die sich derzeit in der Vorschau befindet. Es fügt der Sample-Definition Parameter hinzu, die nur für die Vorschau gelten, und zeigt die resultierende Ausgabe.

  • pageOverlapLength: Überlappender Text ist in Daten-Chunking-Szenarien nützlich, da er die Kontinuität zwischen den aus demselben Dokument generierten Chunks bewahrt.

  • maximumPagesToTake: Begrenzungen der Seitenaufnahme sind in Vektorisierungsszenarien nützlich, da sie Ihnen helfen, unter den maximalen Eingabegrenzen der Einbettungsmodelle zu bleiben, die die Vektorisierung liefern.

Beispieldefinition

Diese Definition fügt pageOverlapLength von 100 Zeichen und maximumPagesToTake von einem hinzu.

Wenn es maximumPageLength sich um 5.000 Zeichen (Standardeinstellung) handelt, werden dann "maximumPagesToTake": 1 die ersten 5.000 Zeichen jedes Quelldokuments verarbeitet.

In diesem Beispiel wird auf "myPagesThroughtargetName" festgelegttextItems. Da targetName festgelegt ist, ist der Wert, myPages den Sie zum Auswählen der Ausgabe aus der Textteilungsfertigkeit verwenden sollten. Verwendung /document/mypages/* in nachgelagerten Fähigkeiten, Indexerausgabefeldzuordnungen, Wissensspeicherprojektionen und Indexprojektionen.

{
    "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
    "textSplitMode" : "pages", 
    "maximumPageLength": 1000,
    "pageOverlapLength": 100,
    "maximumPagesToTake": 1,
    "defaultLanguageCode": "en",
    "inputs": [
        {
            "name": "text",
            "source": "/document/content"
        },
        {
            "name": "languageCode",
            "source": "/document/language"
        }
    ],
    "outputs": [
        {
            "name": "textItems",
            "targetName": "mypages"
        }
    ]
}

Beispieleingabe (wie im vorherigen Beispiel)

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "text": "This is the loan application for Joe Romero, a Microsoft employee who was born in Chile and who then moved to Australia...",
                "languageCode": "en"
            }
        },
        {
            "recordId": "2",
            "data": {
                "text": "This is the second document, which will be broken into several sections...",
                "languageCode": "en"
            }
        }
    ]
}

Beispielhafte Ausgabe (beachten Sie die Überlappung)

Innerhalb jedes „textItems“-Arrays wird der Text am Ende des ersten Eintrags an den Anfang des zweiten Eintrags kopiert.

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "textItems": [
                    "This is the loan...Here is the overlap part",
                    "Here is the overlap part...In the next section, we continue..."
                ]
            }
        },
        {
            "recordId": "2",
            "data": {
                "textItems": [
                    "This is the second document...Here is the overlap part...",
                    "Here is the overlap part...In the next section of the second doc..."
                ]
            }
        }
    ]
}

Auftretende Fehler

Wenn eine Sprache nicht unterstützt wird, wird eine Warnung ausgegeben.

Siehe auch