Tabellarische Suche nach HTML - Amazon Kendra

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tabellarische Suche nach HTML

Amazon Kendra Die tabellarische Suchfunktion kann Antworten aus Tabellen suchen und extrahieren, die in HTML-Dokumente eingebettet sind. Wenn Sie Ihren Index durchsuchen, Amazon Kendra fügt sie einen Auszug aus einer Tabelle hinzu, sofern dieser für die Abfrage relevant ist, und liefert nützliche Informationen.

Amazon Kendra betrachtet alle Informationen im Haupttext eines Dokuments, einschließlich nützlicher Informationen in Tabellen. Ein Index enthält beispielsweise Geschäftsberichte mit Tabellen zu Betriebskosten, Einnahmen und anderen Finanzinformationen. Für die Abfrage „Wie hoch sind die jährlichen Betriebskosten von 2020-2022?“ , Amazon Kendra kann einen Auszug aus einer Tabelle zurückgeben, die die relevanten Tabellenspalten „Operationen (Millionen USD)“ und „Geschäftsjahr“ sowie Tabellenzeilen mit Einkommenswerten für 2020, 2021 und 2022 enthält. Der Tabellenauszug ist zusammen mit dem Dokumenttitel, einem Link zum vollständigen Dokument und allen anderen Dokumentfeldern, die Sie einbeziehen möchten, im Ergebnis enthalten.

Tabellenauszüge können in den Suchergebnissen angezeigt werden, unabhängig davon, ob sich die Informationen in einer Zelle einer Tabelle oder in mehreren Zellen befinden. Amazon Kendra Kann beispielsweise einen Tabellenauszug anzeigen, der auf jede dieser Arten von Abfragen zugeschnitten ist:

  • „Kreditkarte mit dem höchsten Zinssatz im Jahr 2020"

  • „Kreditkarte mit dem höchsten Zinssatz von 2020-2022"

  • „Top 3 Kreditkarten mit dem höchsten Zinssatz in den Jahren 2020-2022"

  • „Kreditkarten mit Zinssätzen von weniger als 10%“

  • „alle verfügbaren zinsgünstigen Kreditkarten“

Amazon Kendra hebt die Tabellenzelle oder -zellen hervor, die für die Abfrage am relevantesten sind. Die relevantesten Zellen mit den entsprechenden Zeilen, Spalten und Spaltennamen werden im Suchergebnis angezeigt. Der Tabellenauszug zeigt bis zu fünf Spalten und drei Zeilen an, je nachdem, wie viele Tabellenzellen für die Abfrage relevant sind und wie viele Spalten in der Originaltabelle verfügbar sind. Die oberste relevanteste Zelle wird im Tabellenauszug zusammen mit den nächstrelevantesten Zellen angezeigt.

Die Antwort enthält den Konfidenzbereich (MEDIUM,HIGH,VERY_HIGH), der zeigt, wie relevant die Tabellenantwort für die Abfrage ist. Wenn ein Tabellenzellenwert vertraulich istVERY_HIGH, wird er zur „häufigsten Antwort“ und hervorgehoben. Vertrauliche Tabellenzellenwerte werden HIGH hervorgehoben. Bei vertraulichen Tabellenzellenwerten werden sie nicht hervorgehoben. MEDIUM Die Gesamtsicherheit für die Tabellenantwort wird in der Antwort zurückgegeben. Wenn eine Tabelle beispielsweise hauptsächlich Tabellenzellen mit HIGH Konfidenz enthält, dann ist die Gesamtkonfidenz, die in der Antwort für die Tabellenantwort zurückgegeben wird, HIGH Konfidenz.

Standardmäßig wird Tabellen kein höheres Maß an Wichtigkeit oder Gewicht beigemessen als anderen Komponenten eines Dokuments. Wenn innerhalb eines Dokuments eine Tabelle für eine Abfrage nur geringfügig relevant ist, es aber einen Absatz mit hoher Relevanz gibt, wird ein Auszug aus dem Absatz Amazon Kendra zurückgegeben. In den Suchergebnissen wird der Inhalt angezeigt, der die bestmögliche Antwort und die nützlichsten Informationen bietet, und zwar im selben Dokument oder in anderen Dokumenten. Wenn die Konfidenz für eine Tabelle unter MEDIUM das Konfidenzniveau fällt, wird der Tabellenauszug in der Antwort nicht zurückgegeben.

Um die tabellarische Suche für einen vorhandenen Index zu verwenden, müssen Sie Ihren Inhalt neu indizieren.

Amazon Kendra Die tabellarische Suche unterstützt Synonyme (einschließlich benutzerdefinierter Synonyme). Amazon Kendra unterstützt nur englische Dokumente mit HTML-Tabellen, die sich innerhalb des Tabellen-Tags befinden.

Das folgende Beispiel zeigt einen Tabellenauszug, der im Abfrageergebnis enthalten ist. Ein JSON-Beispiel mit Abfrageantworten, einschließlich Tabellenauszügen, finden Sie unter Abfrageantworten und Typen.

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"); } } }