Pesquisa tabular de HTML - Amazon Kendra

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Pesquisa tabular de HTML

O recurso de pesquisa tabular do Amazon Kendra pode pesquisar e extrair respostas de tabelas incorporadas em documentos HTML. Ao pesquisar seu índice, Amazon Kendra inclua um trecho de uma tabela se for relevante para a consulta e forneça informações úteis.

Amazon Kendra examina todas as informações no corpo do texto de um documento, incluindo informações úteis em tabelas. Por exemplo, um índice contém relatórios comerciais com tabelas sobre custos operacionais, receitas e outras informações financeiras. Para a consulta, “qual é o custo operacional anual de 2020-2022?” , Amazon Kendra pode retornar um trecho de uma tabela que contém as colunas relevantes “Operações (milhões de dólares)” e “Exercício financeiro” e linhas da tabela contendo valores de renda para 2020, 2021 e 2022. O trecho da tabela é incluído no resultado, junto com o título do documento, um link para o documento completo e quaisquer outros campos do documento que você escolher incluir.

Trechos da tabela podem ser exibidos nos resultados da pesquisa, independentemente de as informações serem encontradas em uma célula de uma tabela ou em várias células. Por exemplo, Amazon Kendra pode exibir um trecho de tabela personalizado para cada um desses tipos de consultas:

  • “cartão de crédito com maior taxa de juros em 2020"

  • “cartão de crédito com maior taxa de juros de 2020 a 2022"

  • “os 3 cartões de crédito com maior taxa de juros em 2020 a 2022"

  • “cartões de crédito com taxas de juros inferiores a 10%”

  • “todos os cartões de crédito com juros baixos disponíveis”

Amazon Kendra destaca a célula ou células da tabela que são mais relevantes para a consulta. As células mais relevantes com suas linhas, colunas e nomes de colunas correspondentes são exibidas no resultado da pesquisa. O trecho da tabela exibe até cinco colunas e três linhas, dependendo de quantas células da tabela são relevantes para a consulta e quantas colunas estão disponíveis na tabela original. A célula mais relevante é exibida no trecho da tabela, junto com as próximas células mais relevantes.

A resposta inclui o bucket de confiança (MEDIUM, HIGH e VERY_HIGH) para mostrar a relevância da resposta da tabela para a consulta. Se o valor de uma célula da tabela for VERY_HIGH em confidência, ele se tornará a “resposta principal” e será destacado. Para valores de células de tabela que são HIGH confiáveis, eles são destacados. Para valores de células de tabela que são MEDIUM confiáveis, eles não são destacados. A confiança geral da resposta da tabela é retornada na resposta. Por exemplo, se uma tabela contém principalmente células da tabela com confiança HIGH, a confiança geral retornada na resposta para a resposta da tabela é confiança HIGH.

Por padrão, as tabelas não recebem um nível mais alto de importância ou mais peso do que outros componentes de um documento. Em um documento, se uma tabela for apenas ligeiramente relevante para uma consulta, mas houver um parágrafo altamente relevante, Amazon Kendra retornará um trecho do parágrafo. Os resultados da pesquisa exibem o conteúdo que fornece a melhor resposta possível e as informações mais úteis, no mesmo documento ou em outros documentos. Se a confiança de uma tabela ficar abaixo da confiança MEDIUM, o trecho da tabela não será retornado na resposta.

Para usar a pesquisa tabular em um índice existente, reindexe seu conteúdo.

Amazon Kendra a pesquisa tabular suporta sinônimos (incluindo sinônimos personalizados). Amazon Kendra só oferece suporte a documentos em inglês com tabelas HTML que estejam dentro da tag da tabela.

O exemplo a seguir mostra um trecho da tabela incluído no resultado da consulta. Para visualizar um exemplo de JSON com respostas de consulta, incluindo trechos de tabelas, consulte Respostas e tipos de consulta.

Python
import boto3 import pprint kendra = boto3.client("kendra") # Provide the index ID index_id = <index-id> # Provide the query text query = "search string" response = kendra.query( QueryText = query, IndexId = index_id) print("\nSearch results for query: " + query + "\n") for query_result in response["ResultItems"]: print("-------------------") print("Type: " + str(query_result["Type"])) print("Type: " + str(query_result["Format"])) if query_result["Type"]=="ANSWER" and query_result["Format"]=="TABLE": answer_table = query_result["TableExcerpt"] print(answer_table) if query_result["Type"]=="ANSWER" and query_result["Format"]=="TEXT": answer_text = query_result["DocumentExcerpt"] print(answer_text) if query_result["Type"]=="QUESTION_ANSWER": question_answer_text = query_result["DocumentExcerpt"]["Text"] print(question_answer_text) if query_result["Type"]=="DOCUMENT": if "DocumentTitle" in query_result: document_title = query_result["DocumentTitle"]["Text"] print("Title: " + document_title) document_text = query_result["DocumentExcerpt"]["Text"] print(document_text) print("------------------\n\n")
Java
package com.amazonaws.kendra; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.QueryRequest; import software.amazon.awssdk.services.kendra.model.QueryResponse; import software.amazon.awssdk.services.kendra.model.QueryResultItem; public class SearchIndexExample { public static void main(String[] args) { KendraClient kendra = KendraClient.builder().build(); String query = "search string"; String indexId = "index-id"; QueryRequest queryRequest = QueryRequest .builder() .queryText(query) .indexId(indexId) .build(); QueryResponse queryResponse = kendra.query(queryRequest); System.out.println(String.format("\nSearch results for query: %s", query)); for(QueryResultItem item: queryResponse.resultItems()) { System.out.println("----------------------"); System.out.println(String.format("Type: %s", item.type())); System.out.println(String.format("Format: %s", item.format())); switch(item.format()) { case TABLE: String answerTable = item.TableExcerpt(); System.out.println(answerTable); break; } switch(item.format()) { case TEXT: String answerText = item.DocumentExcerpt(); System.out.println(answerText); break; } switch(item.type()) { case QUESTION_ANSWER: String questionAnswerText = item.documentExcerpt().text(); System.out.println(questionAnswerText); break; case DOCUMENT: String documentTitle = item.documentTitle().text(); System.out.println(String.format("Title: %s", documentTitle)); String documentExcerpt = item.documentExcerpt().text(); System.out.println(String.format("Excerpt: %s", documentExcerpt)); break; default: System.out.println(String.format("Unknown query result type: %s", item.type())); } System.out.println("-----------------------\n"); } } }