Kognitivní dovednost rozdělení textu
Důležité
Některé parametry jsou ve verzi Public Preview v rámci dodatečných podmínek použití. Rozhraní REST API ve verzi Preview podporuje tyto parametry.
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á, pokud existují požadavky na maximální délku textu v dalších dovednostech, jako je vkládání dovedností, které předávají datové bloky do vložených modelů v Azure OpenAI a dalších poskytovatelích modelů. Další informace o tomto scénáři najdete v tématu Blok dokumentů pro vektorové vyhledávání.
Několik parametrů je specifické pro verzi. Tabulka parametrů dovedností uvádí verzi rozhraní API, ve které byl parametr zaveden, abyste věděli, jestli se vyžaduje upgrade verze. Pokud chcete použít funkce specifické pro verzi, jako je například blokování tokenů v 2024-09-01-preview, můžete použít Azure Portal nebo cílit na verzi rozhraní REST API nebo zkontrolovat protokol změn sady Azure SDK a zjistit, jestli tuto funkci podporuje.
Azure Portal podporuje většinu funkcí ve verzi Preview a dá se použít k vytvoření nebo aktualizaci sady dovedností. Pokud chcete aktualizovat dovednosti Rozdělení textu, upravte definici JSON sady dovedností a přidejte nové parametry náhledu.
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 | Verze | Popis |
---|---|---|
textSplitMode |
Všechny verze | 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 |
Všechny verze | Platí pouze v případě, že textSplitMode je nastavena na pages hodnotu . Pro unit nastavení characters odkazuje tento parametr na maximální délku stránky ve znacích měřených podle 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 . azureOpenAITokens Maximální unit délka stránky je maximální délka stránky limitem délky tokenu modelu. U modelů vkládání textu je obecné doporučení pro délku stránky 512 tokenů. |
defaultLanguageCode |
Všechny verze | (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:
|
pageOverlapLength |
2024-07-01 | Platí pouze v případě, že textSplitMode je nastavena na pages hodnotu . Každá stránka začíná tímto počtem znaků nebo tokenů 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 příklad obsahuje parametr. |
maximumPagesToTake |
2024-07-01 | Platí pouze v případě, že textSplitMode je nastavena na pages hodnotu . 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 příklad obsahuje parametr. |
unit |
2024-09-01-preview | Nový. Platí pouze v případě, že textSplitMode je nastavena na pages hodnotu . Určuje, jestli se mají blokovat ( characters výchozí) nebo azureOpenAITokens . Nastavení jednotky ovlivňuje maximumPageLength a pageOverlapLength . |
azureOpenAITokenizerParameters |
2024-09-01-preview | Nový. Objekt poskytující další parametry pro jednotku azureOpenAITokens . encoderModelName je určený tokenizátor používaný k převodu textu na tokeny, což je nezbytné pro úlohy zpracování přirozeného jazyka (NLP). Různé modely používají různé tokenizátory. Platné hodnoty zahrnují cl100k_base (výchozí) používané GPT-35-Turbo a GPT-4. Další platné hodnoty jsou r50k_base, p50k_base a p50k_edit. Dovednost implementuje knihovnu tiktoken prostřednictvím SharpTokenu , Microsoft.ML.Tokenizers ale nepodporuje každý kodér. V současné době například neexistuje podpora kódování o200k_base, které používá GPT-4o. allowedSpecialTokens definuje kolekci speciálních tokenů, které jsou povoleny v rámci procesu tokenizace. Speciální tokeny jsou řetězec, který chcete považovat za jedinečný, aby se během tokenizace nerozdělily. Například ["[START"], "[END]"]. U jazyků, ve kterých knihovna tiktoken neprovádí tokenizaci podle očekávání, se doporučuje místo toho použít dělení textu. |
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é využívají výstup dovednosti, jako je například dovednost vkládání. |
Ukázková definice
{
"name": "SplitSkill",
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"description": "A skill that splits text into chunks",
"context": "/document",
"defaultLanguageCode": "en",
"textSplitMode": "pages",
"unit": "azureOpenAITokens",
"azureOpenAITokenizerParameters":{
"encoderModelName":"cl100k_base",
"allowedSpecialTokens": [
"[START]",
"[END]"
]
},
"maximumPageLength": 512,
"inputs": [
{
"name": "text",
"source": "/document/text"
},
{
"name": "languageCode",
"source": "/document/language"
}
],
"outputs": [
{
"name": "textItems",
"targetName": "pages"
}
]
}
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.
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í.