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:
  • Fornecer um código de idioma é útil para evitar cortar uma palavra ao meio para idiomas que não são espaços em branco, como chinês, japonês e coreano.
  • Se você não souber o idioma com antecedência (por exemplo, se estiver usando a LanguageDetectionSkill para detetar o idioma), recomendamos o en padrão.

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 defaultLanguageCodetexto 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.

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.

Consulte também