Kognitivní dovednost rozdělení textu

Dovednost Rozdělení textu rozdělí text na bloky textu. Můžete určit, jestli chcete text rozdělit na věty nebo na stránky určité délky. Tato dovednost je užitečná zejména v případě, že existují požadavky na maximální délku textu v dalších dovednostech podřízené.

Poznámka:

Tato dovednost není vázána na služby Azure AI. Je nefakturovatelný a nemá žádný požadavek na klíč služeb Azure AI.

@odata.type

Microsoft.Skills.Text.SplitSkill

Parametry dovedností

Parametry rozlišují malá a velká písmena.

Název parametru Popis
textSplitMode Buďto pages nebo sentences. Stránky mají konfigurovatelnou maximální délku, ale dovednost se snaží vyhnout zkrácení věty, aby skutečná délka mohla být menší. Věty jsou řetězec, který končí interpunkcí na konci věty, jako je tečka, otazník nebo vykřičník za předpokladu, že jazyk má interpunkci končící větou.
maximumPageLength Platí pouze v případě, že textSplitMode je nastavena na pageshodnotu . Tento parametr odkazuje na maximální délku stránky v znacích měřených pomocí String.Length. Minimální hodnota je 300, maximum je 5 0000 a výchozí hodnota je 5000. Algoritmus nejlépe rozdělí text na hranicích vět, takže velikost každého bloku dat může být o něco menší než maximumPageLength.
pageOverlapLength Platí pouze v případě, že textSplitMode je nastavena na pageshodnotu . Každá stránka začíná tímto počtem znaků od konce předchozí stránky. Pokud je tento parametr nastavený na hodnotu 0, není na po sobě jdoucích stránkách žádný překrývající se text. Tento parametr je podporován v rozhraní REST API verze 2023-10-01-Preview a v beta balíčcích sady Azure SDK, které byly aktualizovány tak, aby podporovaly integrovanou vektorizaci. Tento příklad obsahuje parametr.
maximumPagesToTake Platí pouze v případě, že textSplitMode je nastavena na pageshodnotu . Počet stránek, které se mají vrátit Výchozí hodnota je 0, což znamená vrátit všechny stránky. Tuto hodnotu byste měli nastavit, pokud potřebujete jenom podmnožinu stránek. Tento parametr je podporován v rozhraní REST API verze 2023-10-01-Preview a v beta balíčcích sady Azure SDK, které byly aktualizovány tak, aby podporovaly integrovanou vektorizaci. Tento příklad obsahuje parametr.
defaultLanguageCode (volitelné) Jeden z následujících kódů jazyka: 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. Výchozí hodnota je angličtina (en). Několik věcí, které je potřeba vzít v úvahu:
  • Poskytnutí kódu jazyka je užitečné, abyste se vyhnuli dělení slov na polovinu pro jiné jazyky, než jsou čínština, japonština a korejština.
  • Pokud jazyk předem neznáte (například pokud k rozpoznávání jazyka používáte LanguageDetectionSkill ), doporučujeme en použít výchozí nastavení.

Vstupy dovedností

Název parametru Popis
text Text, který chcete rozdělit do podřetědce.
languageCode (Volitelné) Kód jazyka dokumentu Pokud neznáte jazyk textových vstupů (například pokud k rozpoznání jazyka používáte LanguageDetectionSkill ), můžete tento parametr vynechat. Pokud jste nastavili languageCode jazyk, který není v seznamu podporovaných položek defaultLanguageCode, vygeneruje se upozornění a text se nerozdělí.

Výstupy dovedností

Název parametru Popis
textItems Výstup je pole podřetědců, které byly extrahovány. textItems je výchozí název výstupu. targetName je nepovinný, ale pokud máte více dovedností rozdělení textu, nezapomeňte nastavit targetName , abyste nepřepsali data z první dovednosti druhou dovedností. Pokud targetName je nastavená, použijte ji v mapování výstupních polí nebo v podřízených dovednostech, které používají výstup dovednosti.

Ukázková definice

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

Ukázkový vstup

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

Ukázkový výstup

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

Příklad pro vytváření bloků dat a vektorizaci

Tento příklad je určený pro integrovanou vektorizaci, která je aktuálně ve verzi Preview. Do ukázkové definice přidá pouze parametry náhledu a zobrazí výsledný výstup.

  • pageOverlapLength: Překrývající se text je užitečný ve scénářích vytváření bloků dat, protože zachovává kontinuitu mezi bloky dat vygenerovanými ze stejného dokumentu.

  • maximumPagesToTake: Limity příjmu stránky jsou užitečné ve scénářích vektorizace , protože vám pomůže zůstat pod maximálními vstupními limity vložených modelů poskytujících vektorizaci.

Ukázková definice

Tato definice přidá pageOverlapLength 100 znaků a maximumPagesToTake z jedné.

Za předpokladu, že maximumPageLength je 5 000 znaků (výchozí), zpracuje "maximumPagesToTake": 1 prvních 5 000 znaků každého zdrojového dokumentu.

Tento příklad se nastaví textItems na myPages .targetName Protože targetName je nastavená, je hodnota, myPages kterou byste měli použít k výběru výstupu z dovednosti Rozdělení textu. Používá se /document/mypages/* v podřízených dovednostech, mapováních výstupních polí indexeru, projekcích úložiště znalostí a projekcích indexu.

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

Ukázkový vstup (stejný jako v předchozím příkladu)

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

Ukázkový výstup (všimněte si překrytí)

V každém poli textItems se koncový text z první položky zkopíruje na začátek druhé položky.

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

Chybové případy

Pokud jazyk není podporovaný, vygeneruje se upozornění.

Viz také