Share via


Como usar o resumo de texto

O resumo de texto foi projetado para reduzir o conteúdo que os usuários consideram muito longo para ser lido. As sumarizações extrativa e abstrativa condensam artigos, periódicos ou documentos em frases-chave.

Sumarização extrativa: produz um resumo extraindo frases que representam em conjunto as informações mais importantes ou relevantes do conteúdo original.

Sumarização abstrativa: produz um resumo gerando frases resumidas do documento que capturam a ideia principal.

Sumarização focada em consulta: permite que você use uma consulta ao sumarizar.

Ambas essas funcionalidades são capazes de sumarizar em torno de itens de interesse específicos quando especificadas.

Os modelos de IA usados pela API são fornecidos pelo serviço; basta enviar o conteúdo para análise.

Para facilitar a navegação, aqui estão links para as seções correspondentes para cada serviço:

Aspecto Seção
Extrativa Sumarização extrativa
Abstrativa Resumo Abstrativo
Focada em consulta Sumarização focada em consulta

Recursos

Dica

Para começar a usar esses recursos, veja o artigo de início rápido. Você também pode fazer solicitações de exemplo usando o Language Studio sem precisar escrever códigos.

A API de sumarização extrativa usa técnicas de processamento de linguagem natural para localizar orações-chave em um documento de texto não estruturado. Essas orações transmitem coletivamente a ideia principal do documento.

O resumo de extração retorna uma pontuação de classificação como parte da resposta do sistema, junto com orações extraídas e sua posição nos documentos originais. A pontuação de classificação é um indicador de relevância de uma oração em relação à ideia principal de um documento. O modelo atribui uma pontuação entre 0 e 1 (ambos inclusos) para cada oração e retorna as orações pontuadas mais altas de acordo com a solicitação. Por exemplo, se você solicitar um resumo de três orações, o serviço retornará as três orações com as pontuações mais altas.

Existe outro recurso na Linguagem de IA do Azure, a extração de frase-chave, que pode extrair informações essenciais. Ao decidir entre a extração de expressões-chave e o resumo de extração, considere o seguinte:

  • A extração de expressões-chave retorna expressões, enquanto a sumarização extrativa retorna frases.
  • A sumarização extrativa retorna frases junto com uma pontuação de classificação e as frases mais bem classificadas serão retornadas por solicitação.
  • A sumarização extrativa também retorna as seguintes informações posicionais:
    • Deslocamento: a posição inicial de cada frase extraída.
    • Comprimento: o comprimento de cada frase extraída.

Determinar como processar os dados (opcional)

Enviar dados

Os documentos são enviados para a API como cadeias de caracteres de texto. A análise é executada após o recebimento da solicitação. Como a API é assíncrona, pode haver um atraso entre o envio de uma solicitação de API e o recebimento dos resultados.

Quando você usa esse recurso, os resultados da API ficam disponíveis por 24 horas a partir do momento em que a solicitação foi ingerida e isso é indicado na resposta. Após esse período de tempo, os resultados são limpos e não estão mais disponíveis para recuperação.

Obter resultados do resumo de texto

Quando você recebe os resultados da detecção de idioma, pode transmitir os resultados para um aplicativo ou salvar a saída em um arquivo no sistema local.

Veja a seguir um exemplo de conteúdo que você pode enviar para o resumo, que é extraído do artigo do blog da Microsoft A holistic representation toward integrative AI. Este artigo é apenas um exemplo, a API aceita textos de entrada maiores. Confira a seção de limites de dados para obter mais informações.

"Na Microsoft, estamos nos esforçando para que a IA (inteligência artificial) supere as técnicas atuais. Para isso, usamos uma abordagem mais holística e centrada no aprendizado e na compreensão das pessoas. Como Diretor de Tecnologia dos Serviços de IA do Azure, tenho trabalhado para transformar essa busca em realidade com uma equipe de cientistas e engenheiros incríveis. Na minha função, eu adoto uma perspectiva exclusiva para visualizar a relação entre três atributos de cognição humana: texto (X), sinais sensoriais auditivos ou visuais (Y) e multilínge (Z). Na interseção dos três ocorre a mágica, que chamamos de código XYZ, conforme ilustrado na Figura 1. Ele é uma representação conjunta para criar uma IA mais potente que consegue falar, ouvir, ver e entender melhor os seres humanos. Acreditamos que o código XYZ permitirá realizar nossa visão de longo prazo: aprendizado de transferência entre domínios, modalidades e idiomas abrangentes. A meta é ter modelos pré-treinados que possam aprender representações em conjunto para dar suporte a uma ampla variedade de tarefas de IA downstream, de maneira muito similar a como os humanos fazem hoje. Nos últimos cinco anos, alcançamos o desempenho humano em parâmetros de comparação no reconhecimento de fala conversacional, tradução de máquina, resposta a perguntas conversacionais, compreensão de leitura de máquina e legenda de imagem. Esses cinco avanços nos forneceram fortes sinais em direção à nossa aspiração mais ambiciosa de produzir um salto nas funcionalidades de IA, alcançando um aprendizado multissensorial e multilíngue mais próximo de como os humanos aprendem e entendem. Acredito que o código XYZ conjunto é um componente fundamental dessa aspitação, se fundamentado com fontes de conhecimento externas nas tarefas de IA downstream."

A solicitação de API do resumo de texto é processada após o recebimento da solicitação criando um trabalho para o back-end da API. Se o trabalho tiver sido bem-sucedido, a saída da API é retornada. A saída está disponível para recuperação por 24 horas. Após esse período, a saída será limpa. Devido ao suporte multilíngue e a emojis, a resposta pode conter deslocamentos de texto. Confira como processar deslocamentos para obter mais informações.

Quando você usar o exemplo acima, a API pode retornar as seguintes frases resumidas:

Sumarização extrativa:

  • "Na Microsoft, estamos nos esforçando para que a IA (inteligência artificial) supere as técnicas atuais. Para isso, usamos uma abordagem mais holística e centrada no aprendizado e na compreensão das pessoas."
  • "Acreditamos que o código XYZ permitirá realizar nossa visão de longo prazo: aprendizado de transferência entre domínios, modalidades e idiomas abrangentes."
  • "A meta é ter modelos pré-treinados que possam aprender representações em conjunto para dar suporte a uma ampla variedade de tarefas de IA downstream, de maneira muito similar a como os humanos fazem hoje."

Sumarização abstrativa:

  • "A Microsoft está adotando uma abordagem mais holística e centrada no aprendizado e na compreensão das pessoas. Acreditamos que o código XYZ permitirá realizar nossa visão de longo prazo: aprendizado de transferência entre domínios, modalidades e idiomas abrangentes. Nos últimos cinco anos, alcançamos desempenho humano nos parâmetros de comparação."

Experimentar o resumo extrativo de texto

Você pode usar o resumo extrativo de texto para obter resumos de artigos, relatórios ou documentos. Para ver um exemplo, confira o artigo de início rápido.

Você pode usar o parâmetro sentenceCount para especificar quantas frases são retornadas, com 3 sendo o padrão. O intervalo é de 1 a 20.

Você também pode usar o parâmetro sortby para especificar em qual ordem as orações extraídas são retornadas: Offset ou Rank, Offset é o padrão.

valor do parâmetro Descrição
Rank Ordena as frases de acordo com a relevância para o documento de entrada, como decidido pelo serviço.
Deslocamento Mantém a ordem original em que as frases aparecem no documento de entrada.

Experimentar o resumo abstrativo de texto

O exemplo a seguir é iniciado com o resumo abstrativo de texto:

  1. Copie o comando abaixo em um editor de texto. O exemplo de BASH usa o caractere de continuação de linha \. Se o console ou o terminal usar um caractere de continuação de linha diferente, use esse caractere.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-text/jobs?api-version=2023-04-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
' 
{
  "displayName": "Text Abstractive Summarization Task Example",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "en",
        "text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding. As Chief Technology Officer of Azure AI services, I have been working with a team of amazing scientists and engineers to turn this quest into a reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the intersection of all three, there’s magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We believe XYZ-code enables us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages. The goal is to have pretrained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today. Over the past five years, we have achieved human performance on benchmarks in conversational speech recognition, machine translation, conversational question answering, machine reading comprehension, and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious aspiration to produce a leap in AI capabilities, achieving multi-sensory and multilingual learning that is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
      }
    ]
  },
  "tasks": [
    {
      "kind": "AbstractiveSummarization",
      "taskName": "Text Abstractive Summarization Task 1",
      "parameters": {
        "summaryLength": short
      }
    }
  ]
}
'

Se você não especificar sentenceCount, o modelo determina o tamanho do resumo. Observe que sentenceCount é a aproximação da contagem de frases do resumo de saída, intervalo de 1 a 20. O uso de sentenceCount não é recomendado para o resumo abstrativo.

  1. Faça as alterações a seguir no comando quando necessário:

    • Substitua o valor your-language-resource-key pela chave.
    • Substitua a primeira parte da URL de solicitação your-language-resource-endpoint pela sua URL do ponto de extremidade.
  2. Abra uma janela do prompt de comando (por exemplo: BASH).

  3. Cole o comando do editor de texto na janela do prompt de comando e, em seguida, execute-o.

  4. Obtenha operation-location do cabeçalho de resposta. O valor parece semelhante à seguinte URL:

https://<your-language-resource-endpoint>/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2022-10-01-preview
  1. Para obter os resultados da solicitação, use o comando cURL a seguir. Substitua <my-job-id> pelo valor de ID numérica recebido do cabeçalho de resposta operation-location anterior:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-text/jobs/<my-job-id>?api-version=2022-10-01-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"

Resposta JSON de exemplo do resumo de texto abstrativo

{
    "jobId": "cd6418fe-db86-4350-aec1-f0d7c91442a6",
    "lastUpdateDateTime": "2022-09-08T16:45:14Z",
    "createdDateTime": "2022-09-08T16:44:53Z",
    "expirationDateTime": "2022-09-09T16:44:53Z",
    "status": "succeeded",
    "errors": [],
    "displayName": "Text Abstractive Summarization Task Example",
    "tasks": {
        "completed": 1,
        "failed": 0,
        "inProgress": 0,
        "total": 1,
        "items": [
            {
                "kind": "AbstractiveSummarizationLROResults",
                "taskName": "Text Abstractive Summarization Task 1",
                "lastUpdateDateTime": "2022-09-08T16:45:14.0717206Z",
                "status": "succeeded",
                "results": {
                    "documents": [
                        {
                            "summaries": [
                                {
                                    "text": "Microsoft is taking a more holistic, human-centric approach to AI. We've developed a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We've achieved human performance on benchmarks in conversational speech recognition, machine translation, ...... and image captions.",
                                    "contexts": [
                                        {
                                            "offset": 0,
                                            "length": 247
                                        }
                                    ]
                                }
                            ],
                            "id": "1"
                        }
                    ],
                    "errors": [],
                    "modelVersion": "latest"
                }
            }
        ]
    }
}
parâmetro Descrição
-X POST <endpoint> Especifica o ponto de extremidade para acessar a API.
-H Content-Type: application/json Tipo de conteúdo para enviar dados JSON.
-H "Ocp-Apim-Subscription-Key:<key> Especifica a chave para acessar a API.
-d <documents> JSON contendo os documentos que você deseja enviar.

Os comandos cURL a seguir são executados por meio de um shell BASH. Edite esses comandos com o nome do recurso, a chave do recurso e os valores de JSON desejados.

Resumo baseado em consulta

A API do resumo de texto baseado em consulta é uma extensão para a API de resumo de texto existente.

A maior diferença é um novo campo query no corpo da solicitação (em tasks>parameters>query). Além disso, há uma nova maneira de especificar o summaryLength preferido em "buckets" de curto/médio/longo, que recomendamos usar em vez de sentenceCount, especialmente ao usar o abstrativo. Veja abaixo um exemplo de solicitação:

curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-text/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
' 
{
  "displayName": "Text Extractive Summarization Task Example",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "en",
        "text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding. As Chief Technology Officer of Azure AI services, I have been working with a team of amazing scientists and engineers to turn this quest into a reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the intersection of all three, there’s magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We believe XYZ-code enables us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages. The goal is to have pretrained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today. Over the past five years, we have achieved human performance on benchmarks in conversational speech recognition, machine translation, conversational question answering, machine reading comprehension, and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious aspiration to produce a leap in AI capabilities, achieving multi-sensory and multilingual learning that is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
      }
    ]
  },
"tasks": [
    {
      "kind": "AbstractiveSummarization",
      "taskName": "Query-based Abstractive Summarization",
      "parameters": {
          "query": "XYZ-code",
          "summaryLength": "short"
      }
    },    {
      "kind": "ExtractiveSummarization",
      "taskName": "Query_based Extractive Summarization",
      "parameters": {
          "query": "XYZ-code",
          "sentenceCount": 3
      }
    }
  ]
}
'

Usando o summaryParameter

Para o parâmetro summaryLength, são aceitos três valores:

  • oneSentence: gera um resumo da maior parte de uma frase, com cerca de 80 tokens.
  • curto: gera um resumo de 2 a 3 frases, com cerca de 120 tokens.
  • médio: gera um resumo de 4 a 6 frases, com cerca de 170 tokens.
  • longo: gera um resumo de mais 7, com cerca de 210 tokens.

Limites de dados e serviços

Para obter informações sobre o tamanho e o número de solicitações que você pode enviar por minuto e segundo, confira o artigo Limites de serviços.

Confira também