Compétence cognitive Fractionnement de texte

La compétence Fractionnement de texte découpe le texte en segments. Vous pouvez choisir de décomposer le texte en phrases ou en pages d’une longueur donnée. Cette opération est particulièrement utile si d’autres compétences en aval imposent des critères de longueur maximale du texte.

Remarque

Cette compétence n’est pas liée aux services Azure AI. Elle n’est pas facturable et aucune clé de services Azure AI n’est requise.

@odata.type

Microsoft.Skills.Text.SplitSkill

Paramètres de la compétence

Les paramètres respectent la casse.

Nom du paramètre Description
textSplitMode pages ou sentences. Les pages ont une longueur maximale configurable, mais la compétence tente d’éviter de tronquer une phrase afin que la longueur réelle soit plus petite. Les phrases sont une chaîne qui se termine par une ponctuation de fin de phrase, telle qu’un point d’interrogation ou un point d’exclamation, en supposant que la langue a une ponctuation de fin de phrase.
maximumPageLength S’applique uniquement si textSplitMode est défini sur pages. Ce paramètre fait référence à la longueur de page maximale, en caractères, telle que mesurée par String.Length. La valeur minimale est 300, la valeur maximale 50 000, et la valeur par défaut 5 000. L’algorithme s’efforce de scinder le texte en respectant les délimitations de phrases, de sorte que la taille de chaque bloc soit légèrement inférieure à maximumPageLength.
pageOverlapLength S’applique uniquement si textSplitMode est défini sur pages. Chaque page commence par ce nombre de caractères à partir de la fin de la page précédente. Si ce paramètre est défini sur 0, il n’y a pas de texte qui se chevauche sur les pages successives. Ce paramètre est pris en charge dans 2023-10-01-Preview API REST et dans les packages bêta du Kit de développement logiciel (SDK) Azure mis à jour pour prendre en charge la vectorisation intégrée. Cet exemple inclut le paramètre.
maximumPagesToTake S’applique uniquement si textSplitMode est défini sur pages. Nombre de fichiers à retourner. La valeur par défaut est 0, ce qui signifie retourner toutes les pages. Vous devez définir cette valeur si seul un sous-ensemble de pages est nécessaire. Ce paramètre est pris en charge dans 2023-10-01-Preview API REST et dans les packages bêta du Kit de développement logiciel (SDK) Azure mis à jour pour prendre en charge la vectorisation intégrée. Cet exemple inclut le paramètre.
defaultLanguageCode (Facultatif) L’un des codes de langue suivants : 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. La langue par défaut est l’anglais (en). Quelques points à prendre en compte :
  • Il est utile d’indiquer un code de langue pour éviter de couper un mot en deux dans les langues sans espaces blancs, par exemple, le chinois, le japonais et le coréen.
  • Si vous ne connaissez pas la langue à l’avance (par exemple, si vous utilisez LanguageDetectionSkill pour détecter la langue), nous vous recommandons en par défaut.

Entrées de la compétence

Nom du paramètre Description
text Texte à fractionner en sous-chaînes.
languageCode (Facultatif) Code de langue du document. Si vous ne connaissez pas la langue des entrées de texte (par exemple, si vous utilisez LanguageDetectionSkill pour détecter la langue), vous pouvez omettre ce paramètre. Si vous définissez languageCode sur une langue ne figure pas dans la liste prise en charge pour defaultLanguageCode, un avertissement est émis et le texte n’est pas fractionné.

Sorties de la compétence

Nom du paramètre Description
textItems La sortie est un tableau de sous-chaînes qui ont été extraites. textItems est le nom par défaut de la sortie. targetName est facultatif, mais si vous avez plusieurs compétences de fractionnement de texte, veillez à définir targetName afin de ne pas remplacer les données de la première compétence avec la deuxième. Si targetName elle est définie, utilisez-la dans les mappages de champs de sortie ou dans les compétences en aval qui utilisent la sortie de compétence.

Exemple de définition

{
    "@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"
        }
    ]
}

Exemple d’entrée

{
    "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"
            }
        }
    ]
}

Exemple de sortie

{
    "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..."
                ]
            }
        }
    ]
}

Exemple de segmentation et de vectorisation

Cet exemple est destiné à la vectorisation intégrée, actuellement en préversion. Il ajoute des paramètres en préversion uniquement à l’exemple de définition et affiche la sortie obtenue.

  • pageOverlapLength : le chevauchement de texte est utile dans les scénarios de segmentation de données, car il conserve la continuité entre les blocs générés à partir du même document.

  • maximumPagesToTake : les limites de l’entrée de page sont utiles dans les scénarios de vectorisation, car cela vous permet de rester sous les limites d’entrée maximales des modèles d’incorporation fournissant la vectorisation.

Exemple de définition

Cette définition ajoute pageOverlapLength de 100 caractères et maximumPagesToTake d’un caractère.

En supposant que la maximumPageLength valeur est de 5 000 caractères (valeur par défaut), traite "maximumPagesToTake": 1 les 5 000 premiers caractères de chaque document source.

Cet exemple définit textItems la valeur myPages via targetName. Comme targetName défini, myPages est la valeur que vous devez utiliser pour sélectionner la sortie de la compétence Fractionnement de texte. Utilisez /document/mypages/* les compétences en aval, les mappages de champs de sortie de l’indexeur, les projections de magasin de connaissances et les projections d’index.

{
    "@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"
        }
    ]
}

Exemple d’entrée (identique à l’exemple précédent)

{
    "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"
            }
        }
    ]
}

Exemple de sortie (notez le chevauchement)

Dans chaque tableau « textItems », le texte de fin du premier élément est copié au début du deuxième élément.

{
    "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..."
                ]
            }
        }
    ]
}

Cas d’erreur

Si la langue n’est pas prise en charge, un avertissement est généré.

Voir aussi