Habilidade cognitiva de divisão de texto
A habilidade Divisão de texto divide o texto em partes de texto. Você pode especificar se deseja dividir o texto em frases ou em páginas de um determinado comprimento. Esta habilidade é especialmente útil se houver requisitos de comprimento máximo de texto em outras habilidades a jusante.
Nota
Essa habilidade não está vinculada aos serviços de IA do Azure. Não é faturável e não tem nenhum requisito de chave de serviços de IA do Azure.
@odata.type
Microsoft.Skills.Text.SplitSkill
Parâmetros de habilidade
Os parâmetros diferenciam maiúsculas de minúsculas.
Nome do parâmetro | Description |
---|---|
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. Frases são uma cadeia de caracteres que termina na pontuação final da frase, como um ponto, ponto de interrogação ou ponto de exclamação, supondo que o idioma tenha pontuação final de frase. |
maximumPageLength |
Aplica-se apenas se textSplitMode estiver definido como pages . Este parâmetro refere-se ao comprimento máximo da página em caracteres medido por String.Length . O valor mínimo é 300, o máximo é 50000 e o valor padrão é 5000. O algoritmo faz o seu melhor para quebrar o texto nos limites da frase, de modo que o tamanho de cada pedaço pode ser um pouco menor do que maximumPageLength . |
pageOverlapLength |
Aplica-se apenas se textSplitMode estiver definido como pages . Cada página começa com este número de caracteres do final da página anterior. Se esse parâmetro for definido como 0, não haverá sobreposição de texto em páginas sucessivas. Este parâmetro é suportado na API REST 2023-10-01-Preview e nos pacotes beta do SDK do Azure que foram atualizados para dar suporte à vetorização integrada. Este exemplo inclui o parâmetro. |
maximumPagesToTake |
Aplica-se apenas se textSplitMode estiver definido como pages . Número de páginas a devolver. O padrão é 0, o que significa retornar todas as páginas. Você deve definir esse valor se apenas um subconjunto de páginas for necessário. Este parâmetro é suportado na API REST 2023-10-01-Preview e nos pacotes beta do SDK do Azure que foram atualizados para dar suporte à vetorização integrada. Este exemplo inclui o parâmetro. |
defaultLanguageCode |
(facultativo) Um dos seguintes códigos linguísticos: 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 a considerar:
|
Entradas de Habilidade
Nome do parâmetro | Description |
---|---|
text |
O texto a ser dividido em substring. |
languageCode |
(Opcional) Código linguístico do documento. Se você não souber o idioma das entradas de texto (por exemplo, se estiver usando LanguageDetectionSkill para detetar o idioma), poderá omitir esse parâmetro. Se você definir languageCode como um idioma não está na lista de suporte para o , um aviso será emitido e o defaultLanguageCode texto não será dividido. |
Resultados de Competências
Nome do parâmetro | Description |
---|---|
textItems |
Output é uma matriz de substrings 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 habilidades. |
Definição da amostra
{
"@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 fragmentação e vetorização
Este exemplo é para vetorização integrada, atualmente em visualização. Ele adiciona parâmetros somente visualização à definição de amostra e mostra a saída resultante.
pageOverlapLength
: A sobreposição de texto é útil em cenários de fragmentação de dados porque preserva a continuidade entre partes geradas a partir do mesmo documento.maximumPagesToTake
: Os limites de entrada de páginas são úteis em cenários de vetorização porque ajudam você a ficar abaixo dos limites máximos de entrada dos modelos de incorporação que fornecem a vetorização .
Definição da amostra
Esta definição acrescenta pageOverlapLength
de 100 caracteres e maximumPagesToTake
de um.
Supondo que o seja de 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
está 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 de 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"
}
]
}
Exemplo de entrada (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 da amostra (observe a sobreposição)
Dentro de 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 um idioma não for suportado, um aviso será gerado.