Habilidade cognitiva do Text Split
A habilidade Text Split quebra o texto em partes do texto. Você pode especificar se deseja quebrar o texto em sentenças ou em páginas de um tamanho específico. Essa habilidade é especialmente útil se houver requisitos de comprimento em outras habilidades downstream em texto.
Observação
Essa habilidade não está associada aos serviços de IA do Azure. Ele não pode ser cobrado e não tem nenhum requisito de chave dos serviços de IA do Azure.
@odata.type
Microsoft.Skills.Text.SplitSkill
Parâmetros de habilidades
Os parâmetros diferenciam maiúsculas de minúsculas.
Nome do parâmetro | Descrição |
---|---|
textSplitMode |
pages ou sentences . As páginas têm um comprimento máximo configurável, mas a habilidade tenta evitar truncar uma frase para que o comprimento real possa ser menor. As frases são uma cadeia de caracteres que termina na pontuação de término da frase, como um ponto de interrogação, ponto de interrogação ou ponto de exclamação, supondo que o idioma tenha pontuação de fim de frase. |
maximumPageLength |
Aplica-se somente se textSplitMode estiver definido como pages . Esse parâmetro refere-se ao comprimento máximo da página em caracteres, conforme medido por String.Length . O valor mínimo é 300, o máximo é 50000 e o valor padrão é 5000. O algoritmo faz o possível para quebrar o texto em limites de frase, portanto, o tamanho de cada parte pode ser um pouco menor que maximumPageLength . |
pageOverlapLength |
Aplica-se somente se textSplitMode estiver definido como pages . Cada página começa com esse número de caracteres do final da página anterior. Se esse parâmetro for definido como 0, não haverá texto sobreposto em páginas sucessivas. Esse parâmetro tem suporte na API REST 2023-10-01-Preview e em pacotes beta do SDK do Azure que foram atualizados para dar suporte à vetorização integrada. Este exemplo inclui o parâmetro. |
maximumPagesToTake |
Aplica-se somente se textSplitMode estiver definido como pages . Número de páginas a serem retornadas. O padrão é 0, o que significa retornar todas as páginas. Você deverá definir esse valor se apenas um subconjunto de páginas for necessário. Esse parâmetro tem suporte na API REST 2023-10-01-Preview e em pacotes beta do SDK do Azure que foram atualizados para dar suporte à vetorização integrada. Este exemplo inclui o parâmetro. |
defaultLanguageCode |
(opcional) Um dos seguintes códigos de idioma: 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 . O padrão é inglês (en). Algumas coisas para levar em consideração:
|
Entradas de habilidades
Nome do parâmetro | Descrição |
---|---|
text |
O texto a ser dividido em subcadeias. |
languageCode |
(opcional) Código de idioma para o documento. Se você não souber o idioma das entradas de texto (por exemplo, se estiver usando LanguageDetectionSkill para detectar o idioma), poderá omitir esse parâmetro. Se você definir languageCode como um idioma que não estiver na lista com suporte para defaultLanguageCode , um aviso será emitido e o texto não será dividido. |
Saídas de habilidades
Nome do parâmetro | Descrição |
---|---|
textItems |
Saída é uma matriz de subsequências de caracteres que foram extraídas. textItems é o nome padrão da saída. targetName é opcional, mas se você tiver várias habilidades de Divisão de Texto, certifique-se de definir targetName para não substituir os dados da primeira habilidade pela segunda. Se targetName estiver definido, use-o em mapeamentos de campo de saída ou em habilidades downstream que usam a saída de habilidade. |
Definição de exemplo
{
"@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"
}
]
}
Entrada de exemplo
{
"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"
}
}
]
}
Saída de exemplo
{
"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..."
]
}
}
]
}
Exemplo de agrupamento e vetorização
Este exemplo é para vetorização integrada, atualmente em versão prévia. Ele adiciona parâmetros somente visualização à definição de exemplo e mostra a saída resultante.
pageOverlapLength
: A sobreposição de texto é útil em cenários de agrupamento de dados porque preserva a continuidade entre partes geradas do mesmo documento.maximumPagesToTake
: Os limites de ingestão de página são úteis em cenários de vetorização porque ajudam você a permanecer abaixo dos limites máximos de entrada dos modelos de inserção que fornecem a vetorização.
Definição de exemplo
Essa definição adiciona pageOverlapLength
de 100 caracteres e maximumPagesToTake
de um.
Supondo que o é 5.000 caracteres (o maximumPageLength
padrão), processa "maximumPagesToTake": 1
os primeiros 5.000 caracteres de cada documento de origem.
Este exemplo define textItems
como myPages
through targetName
. Porque targetName
é definido, myPages
é o valor que você deve usar para selecionar a saída da habilidade Divisão de texto. Use /document/mypages/*
em habilidades downstream, mapeamentos de campo de saída do indexador, projeções de armazenamento de conhecimento e projeções de índice.
{
"@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"
}
]
}
Entrada de exemplo (igual ao exemplo anterior)
{
"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"
}
}
]
}
Saída de exemplo (observe a sobreposição)
Em cada matriz "textItems", o texto à direita do primeiro item é copiado para o início do segundo item.
{
"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..."
]
}
}
]
}
Casos de erro
Se não houver suporte para um idioma, um aviso será gerado.