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.
Amazon Textract Asynchronous Operations aufrufen
Amazon Textract bietet eine asynchrone API, mit der Sie mehrseitige Dokumente im PDF- oder TIFF-Format verarbeiten können. Sie können auch asynchrone Operationen verwenden, um einseitige Dokumente im JPEG-, PNG-, TIFF- oder PDF-Format zu verarbeiten.
Die Informationen in diesem Thema verwenden Texterkennungsvorgänge, um zu zeigen, wie Sie asynchrone Amazon Textract-Operationen verwenden. Sie können den gleichen Ansatz für die Textanalyseoperationen von und verwenden. StartDocumentAnalysis GetDocumentAnalysis Es funktioniert auch genauso mit StartExpenseAnalysis und GetExpenseAnalysis.
Ein Beispiel finden Sie unter Erkennen oder Analysieren von Text in einem mehrseitigen Dokument.
Wenn Sie Leihdokumente analysieren, können Sie den StartLendingAnalysis Vorgang verwenden, um Dokumentseiten zu klassifizieren und die klassifizierten Seiten an einen Amazon Textract-Analysevorgang zu senden. Die Seiten werden je nach der ihnen zugewiesenen Klasse an Analyseoperationen weitergeleitet.
Sie können mithilfe der GetLendingAnalysis Operation Ergebnisse für einzelne Seiten abrufen oder eine Zusammenfassung der Analyse mit abrufen. GetLendingAnalysisSummary
Amazon Textract verarbeitet asynchron ein Dokument, das in einem Amazon S3-Bucket gespeichert ist. Sie beginnen mit der Verarbeitung, indem Sie eine Start Operation aufrufen, z. B. StartDocumentTextDetection Der Abschlussstatus der Anforderung wird in einem Amazon-Simple-Notification-Service-Thema (Amazon SNS) veröffentlicht. Um den Abschlussstatus des Amazon SNS-Themas abzurufen, können Sie eine Amazon Simple Queue Service (Amazon SQS) -Warteschlange oder eine AWS Lambda Funktion verwenden. Sobald Sie den Erledigungsstatus bekommen haben, rufen Sie eine Get-Operation auf, wie z. B. GetDocumentTextDetection, um die Ergebnisse der Anfrage zu erhalten.
Die Ergebnisse asynchroner Aufrufe werden verschlüsselt und standardmäßig 7 Tage lang in einem Amazon Textract-eigenen Bucket gespeichert, sofern Sie nicht mithilfe eines Vorgangsarguments einen Amazon S3-Bucket angeben. OutputConfig Informationen darüber, wie Sie Amazon Textract verschlüsselte Dokumente an Ihren Amazon S3-Bucket senden lassen, finden Sie unter. Berechtigungen für die Ausgabekonfiguration
Die folgende Tabelle zeigt die entsprechenden Start- und Get-Operationen für die verschiedenen Arten der asynchronen Verarbeitung, die von Amazon Textract unterstützt werden:
| Art der Verarbeitung | API starten | API abrufen |
|---|---|---|
| Texterkennung | StartDocumentTextDetection | GetDocumentTextDetection |
| Textanalyse | StartDocumentAnalysis | GetDocumentAnalysis |
| Kostenanalyse | StartExpenseAnalysis | GetExpenseAnalysis |
| Analyse der Kreditvergabe | StartLendingAnalysis | GetLendingAnalysis, GetLendingAnalysisSummary |
Ein Beispiel, in dem AWS Lambda Funktionen verwendet werden, finden Sie unter Verarbeitung umfangreicher Dokumente mit Amazon Textract
Das folgende Diagramm zeigt den Prozess zur Erkennung von Dokumenttext in einem Dokumentbild, das in einem Amazon S3-Bucket gespeichert ist. Im Diagramm erhält eine Amazon-SQS-Warteschlange den Abschlussstatus aus dem Amazon-SNS-Thema.
Der im vorherigen Diagramm dargestellte Prozess ist derselbe für die Analyse von Text und. invoices/receipts Sie beginnen mit der Textanalyse durch Aufrufen StartDocumentAnalysis und beginnen mit der Analyse invoices/receipts durch Aufrufen. Die Ergebnisse erhalten StartExpenseAnalysis Sie, indem Sie GetDocumentAnalysis GetExpenseAnalysis bzw. aufrufen.
Texterkennung starten
Sie starten eine Amazon Textract-Texterkennungsanfrage, indem Sie anrufen StartDocumentTextDetection. Im Folgenden sehen Sie ein Beispiel für eine JSON-Anforderung, die von StartDocumentTextDetection übergeben wird.
{ "DocumentLocation": { "S3Object": { "Bucket": "bucket", "Name": "image.pdf" } }, "ClientRequestToken": "DocumentDetectionToken", "NotificationChannel": { "SNSTopicArn": "arn:aws:sns:us-east-1:nnnnnnnnnn:topic", "RoleArn": "arn:aws:iam::nnnnnnnnnn:role/roleTopic" }, "JobTag": "Receipt" }
Der Eingabeparameter DocumentLocation gibt den Namen der Dokumentdatei und den Amazon S3-Bucket an, aus dem er abgerufen werden soll. NotificationChannelenthält den Amazon-Ressourcennamen (ARN) des Amazon SNS-Themas, das Amazon Textract benachrichtigt, wenn die Texterkennungsanforderung abgeschlossen ist. Das Amazon SNS-Thema muss sich in derselben AWS-Region befinden wie der Amazon Textract-Endpunkt, den Sie aufrufen. NotificationChannelenthält auch den ARN für eine Rolle, die es Amazon Textract ermöglicht, Beiträge zum Amazon SNS-Thema zu veröffentlichen. Sie erteilen Amazon Textract Veröffentlichungsberechtigungen für Ihre Amazon SNS-Themen, indem Sie eine IAM-Servicerolle erstellen. Weitere Informationen finden Sie unter Konfiguration von Amazon Textract für asynchrone Operationen.
Sie können auch einen optionalen Eingabeparameter angebenJobTag, mit dem Sie den Auftrag oder Gruppen von Aufträgen im Abschlussstatus identifizieren können, der im Amazon SNS-Thema veröffentlicht wurde. Sie können ihn beispielsweise verwenden, JobTag um die Art des Dokuments zu identifizieren, das gerade bearbeitet wird, z. B. ein Steuerformular oder eine Quittung.
Um ein versehentliches doppeltes Ausführen von Analyseaufträgen zu vermeiden, können Sie optional ein idempotentes Token, ClientRequestToken, bereitstellen. Wenn Sie einen Wert für angebenClientRequestToken, gibt der Start Vorgang denselben Wert JobId für mehrere identische Aufrufe des Start Vorgangs zurück, z. StartDocumentTextDetection B. Ein Token ClientRequestToken hat eine Lebensdauer von 7 Tagen. Nach 7 Tagen können Sie es wiederverwenden. Wenn Sie das Token während der Token-Lebensdauer wiederverwenden, geschieht folgendes:
-
Wenn Sie das Token mit der gleichen
Start-Operation und den gleichen Eingabeparametern wiederverwenden, wird dieselbeJobIdzurückgegeben. Der Auftrag wird nicht erneut ausgeführt und Amazon Textract sendet keinen Abschlussstatus an das registrierte Amazon SNS-Thema. -
Wenn Sie das Token mit der gleichen
Start-Operation und einer geringfügigen Änderung der Eingabeparameter wiederverwenden, wird eineidempotentparametermismatchexception-Ausnahme (HTTP-Statuscode: 400) ausgelöst. -
Wenn Sie das Token mit einer anderen
Start-Operation wiederverwenden, ist die Operation erfolgreich.
Ein weiterer optionaler Parameter istOutputConfig, mit dem Sie anpassen können, wo Ihre Ausgabe platziert werden soll. Standardmäßig speichert Amazon Textract die Ergebnisse intern und auf sie kann nur über die Get API-Operationen zugegriffen werden. Wenn OutputConfig diese Option aktiviert ist, können Sie den Namen des Buckets, an den die Ausgabe gesendet wird, und das Dateipräfix der Ergebnisse festlegen, in den Sie Ihre Ergebnisse herunterladen können. Darüber hinaus können Sie den KMSKeyID Parameter auf einen vom Kunden verwalteten Schlüssel setzen, um Ihre Ausgabe zu verschlüsseln. Ohne diesen Parametersatz verschlüsselt Amazon Textract serverseitig mit dem für Amazon S3 Von AWS verwalteter Schlüssel
Anmerkung
Bevor Sie diesen Parameter verwenden, stellen Sie sicher, dass Sie über die PutObject Berechtigung für den Ausgabe-Bucket verfügen. Stellen Sie außerdem sicher, dass Sie über die DescribeKey Berechtigungen Decrypt ReEncrypt GenerateDataKey,, und für den AWS KMS Schlüssel verfügen, falls Sie ihn verwenden möchten.
Die Antwort auf die StartDocumentTextDetection-Operation ist eine Auftrags-ID (JobId). Wird verwendetJobId, um Anfragen zu verfolgen und die Analyseergebnisse abzurufen, nachdem Amazon Textract den Abschlussstatus für das Amazon SNS-Thema veröffentlicht hat. Im Folgenden wird ein Beispiel gezeigt:
{"JobId":"270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3"}
Wenn Sie zu viele Jobs gleichzeitig starten, lösen Aufrufe eine LimitExceededException Ausnahme aus (HTTP-Statuscode: 400), bis die Anzahl der gleichzeitig ausgeführten Jobs unter dem Amazon Textract-Servicelimit liegt. StartDocumentTextDetection
Wenn Sie feststellen, dass LimitExceededException Ausnahmen aufgrund von Aktivitätsspitzen ausgelöst werden, sollten Sie erwägen, eine Amazon SQS-Warteschlange zur Verwaltung eingehender Anfragen zu verwenden. Wenden Sie sich an den AWS
Support, wenn Sie feststellen, dass Ihre durchschnittliche Anzahl gleichzeitiger Anfragen nicht von einer Amazon SQS-Warteschlange verwaltet werden kann und Sie immer noch Ausnahmen erhalten. LimitExceededException
Den Abschlussstatus einer Amazon Textract-Analyseanfrage abrufen
Amazon Textract sendet eine Benachrichtigung über den Abschluss der Analyse an das registrierte Amazon SNS-Thema. Die Benachrichtigung enthält die Auftrags-ID und den Erledigungsstatus der Operation in einer JSON-Zeichenfolge. Eine erfolgreiche Texterkennungsanfrage hat einen SUCCEEDED Status. Das folgende Ergebnis zeigt beispielsweise die erfolgreiche Verarbeitung eines Texterkennungsauftrags.
{ "JobId": "642492aea78a86a40665555dc375ee97bc963f342b29cd05030f19bd8fd1bc5f", "Status": "SUCCEEDED", "API": "StartDocumentTextDetection", "JobTag": "Receipt", "Timestamp": 1543599965969, "DocumentLocation": { "S3ObjectName": "document", "S3Bucket": "bucket" } }
Weitere Informationen finden Sie unter Benachrichtigung über die Ergebnisse von Amazon Textract.
Verwenden Sie eine der folgenden Optionen, um die von Amazon Textract zum Thema Amazon SNS veröffentlichten Statusinformationen abzurufen:
-
AWS Lambda – Sie können eine AWS Lambda -Funktion abonnieren, die Sie in ein Amazon-SNS-Thema schreiben. Die Funktion wird aufgerufen, wenn Amazon Textract das Amazon SNS-Thema darüber informiert, dass die Anfrage abgeschlossen ist. Verwenden Sie eine Lambda-Funktion, wenn Sie möchten, dass serverseitiger Code die Ergebnisse einer Texterkennungsanforderung verarbeitet. Beispielsweise können Sie serverseitigen Code verwenden, um das Bild mit Anmerkungen zu versehen, oder einen Bericht über den erkannten Text erstellen, bevor Sie die Informationen an eine Client-Anwendung zurückgeben.
-
Amazon SQS — Sie können eine Amazon SQS-Warteschlange für ein Amazon SNS-Thema abonnieren. Anschließend fragen Sie die Amazon SQS-Warteschlange ab, um den von Amazon Textract veröffentlichten Abschlussstatus abzurufen, wenn eine Texterkennungsanforderung abgeschlossen ist. Weitere Informationen finden Sie unter Erkennen oder Analysieren von Text in einem mehrseitigen Dokument. Verwenden Sie eine Amazon SQS-Warteschlange, wenn Sie Amazon Textract-Vorgänge nur von einer Client-Anwendung aus aufrufen möchten.
Wichtig
Wir empfehlen nicht, den Abschlussstatus der Anfrage durch wiederholtes Aufrufen des Amazon Get Textract-Vorgangs abzurufen. Dies liegt daran, dass Amazon Textract den Get Vorgang drosselt, wenn zu viele Anfragen gestellt werden. Wenn Sie mehrere Dokumente gleichzeitig verarbeiten, ist es einfacher und effizienter, eine SQS-Warteschlange für die Abschlussbenachrichtigung zu überwachen, als Amazon Textract einzeln nach dem Status jedes Jobs abzufragen.
Wenn Sie Ihr Konto so konfiguriert haben, dass Sie eine Ergebnisbenachrichtigung von einem Amazon Simple Notification Service (Amazon SNS) -Thema oder über eine Amazon SQS-Warteschlange erhalten, sollten Sie sicherstellen, dass Ihr Konto sicher ist, indem Sie den Zugriff von Amazon Textract nur auf die Ressourcen beschränken, die Sie verwenden. Dies kann erreicht werden, indem Sie Ihrer IAM-Servicerolle eine Vertrauensrichtlinie hinzufügen. Informationen dazu finden Sie unter Cross-service Confused Deputy Prevention.
Ergebnisse der Amazon Textract-Texterkennung abrufen
Um die Ergebnisse einer Texterkennungsanfrage zu erhalten, stellen Sie zunächst sicher, dass der Abschlussstatus, der aus dem Amazon SNS-Thema abgerufen wird, lautet. SUCCEEDED Rufen Sie dann GetDocumentTextDetection auf, wodurch der Wert JobId übergeben wird, den StartDocumentTextDetection zurückgibt. Die JSON-Ausgabe sieht folgendermaßen oder ähnlich aus:
{ "JobId": "270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3", "MaxResults": 10, "SortBy": "TIMESTAMP" }
JobIdist der Bezeichner für den Texterkennungsvorgang. Da bei der Texterkennung große Datenmengen generiert werden können, geben MaxResults Sie hier die maximale Anzahl von Ergebnissen an, die in einem einzigen Get Vorgang zurückgegeben werden. Der Standardwert für MaxResults ist 1.000. Wenn Sie einen Wert größer als 1.000 angeben, werden nur 1.000 Ergebnisse zurückgegeben. Wenn der Vorgang nicht alle Ergebnisse zurückgibt, wird ein Paginierungstoken für die nächste Seite zurückgegeben. Um die nächste Seite mit Ergebnissen abzurufen, geben Sie das Token im NextToken Parameter an.
Anmerkung
Ergebnisse können nur bis zu 7 Tage nach der Initialisierung des Jobs abgerufen werden.
Die JSON-Antwort der GetDocumentTextDetection Operation ähnelt der folgenden. Die Gesamtzahl der erkannten Seiten wird in zurückgegebenDocumentMetadata. Der erkannte Text wird im Blocks Array zurückgegeben. Hinweise zu Block Objekten finden Sie unterAntwortobjekte für Texterkennung und Dokumentenanalyse.
{ "DocumentMetadata": { "Pages": 1 }, "JobStatus": "SUCCEEDED", "Blocks": [ { "BlockType": "PAGE", "Geometry": { "BoundingBox": { "Width": 1.0, "Height": 1.0, "Left": 0.0, "Top": 0.0 }, "Polygon": [ { "X": 0.0, "Y": 0.0 }, { "X": 1.0, "Y": 0.0 }, { "X": 1.0, "Y": 1.0 }, { "X": 0.0, "Y": 1.0 } ] }, "Id": "64533157-c47e-401a-930e-7ca1bb3ac3fa", "Relationships": [ { "Type": "CHILD", "Ids": [ "4297834d-dcb1-413b-8908-3b96866ebbb5", "1d85ba24-2877-4d09-b8b2-393833d769e9", "193e9c47-fd87-475a-ba09-3fda210d8784", "bd8aeb62-961b-4b47-b78a-e4ed9eeecd0f" ] } ], "Page": 1 }, { "BlockType": "LINE", "Confidence": 53.301639556884766, "Text": "ellooworio", "Geometry": { "BoundingBox": { "Width": 0.9999999403953552, "Height": 0.5365243554115295, "Left": 0.0, "Top": 0.46347561478614807 }, "Polygon": [ { "X": 0.0, "Y": 0.46347561478614807 }, { "X": 0.9999999403953552, "Y": 0.46347561478614807 }, { "X": 0.9999999403953552, "Y": 1.0 }, { "X": 0.0, "Y": 1.0 } ] }, "Id": "4297834d-dcb1-413b-8908-3b96866ebbb5", "Relationships": [ { "Type": "CHILD", "Ids": [ "170c3eb9-5155-4bec-8c44-173bba537e70" ] } ], "Page": 1 }, { "BlockType": "LINE", "Confidence": 89.15632629394531, "Text": "He llo,", "Geometry": { "BoundingBox": { "Width": 0.33642634749412537, "Height": 0.49159330129623413, "Left": 0.13885067403316498, "Top": 0.17169663310050964 }, "Polygon": [ { "X": 0.13885067403316498, "Y": 0.17169663310050964 }, { "X": 0.47527703642845154, "Y": 0.17169663310050964 }, { "X": 0.47527703642845154, "Y": 0.6632899641990662 }, { "X": 0.13885067403316498, "Y": 0.6632899641990662 } ] }, "Id": "1d85ba24-2877-4d09-b8b2-393833d769e9", "Relationships": [ { "Type": "CHILD", "Ids": [ "516ae823-3bab-4f9a-9d74-ad7150d128ab", "6bcf4ea8-bbe8-4686-91be-b98dd63bc6a6" ] } ], "Page": 1 }, { "BlockType": "LINE", "Confidence": 82.44834899902344, "Text": "worlo", "Geometry": { "BoundingBox": { "Width": 0.33182239532470703, "Height": 0.3766750991344452, "Left": 0.5091826915740967, "Top": 0.23131252825260162 }, "Polygon": [ { "X": 0.5091826915740967, "Y": 0.23131252825260162 }, { "X": 0.8410050868988037, "Y": 0.23131252825260162 }, { "X": 0.8410050868988037, "Y": 0.607987642288208 }, { "X": 0.5091826915740967, "Y": 0.607987642288208 } ] }, "Id": "193e9c47-fd87-475a-ba09-3fda210d8784", "Relationships": [ { "Type": "CHILD", "Ids": [ "ed135c3b-35dd-4085-8f00-26aedab0125f" ] } ], "Page": 1 }, { "BlockType": "LINE", "Confidence": 88.50325775146484, "Text": "world", "Geometry": { "BoundingBox": { "Width": 0.35004907846450806, "Height": 0.19635874032974243, "Left": 0.527581512928009, "Top": 0.30100569128990173 }, "Polygon": [ { "X": 0.527581512928009, "Y": 0.30100569128990173 }, { "X": 0.8776305913925171, "Y": 0.30100569128990173 }, { "X": 0.8776305913925171, "Y": 0.49736443161964417 }, { "X": 0.527581512928009, "Y": 0.49736443161964417 } ] }, "Id": "bd8aeb62-961b-4b47-b78a-e4ed9eeecd0f", "Relationships": [ { "Type": "CHILD", "Ids": [ "9e28834d-798e-4a62-8862-a837dfd895a6" ] } ], "Page": 1 }, { "BlockType": "WORD", "Confidence": 53.301639556884766, "Text": "ellooworio", "Geometry": { "BoundingBox": { "Width": 1.0, "Height": 0.5365243554115295, "Left": 0.0, "Top": 0.46347561478614807 }, "Polygon": [ { "X": 0.0, "Y": 0.46347561478614807 }, { "X": 1.0, "Y": 0.46347561478614807 }, { "X": 1.0, "Y": 1.0 }, { "X": 0.0, "Y": 1.0 } ] }, "Id": "170c3eb9-5155-4bec-8c44-173bba537e70", "Page": 1 }, { "BlockType": "WORD", "Confidence": 88.46246337890625, "Text": "He", "Geometry": { "BoundingBox": { "Width": 0.15350718796253204, "Height": 0.29955607652664185, "Left": 0.13885067403316498, "Top": 0.21856294572353363 }, "Polygon": [ { "X": 0.13885067403316498, "Y": 0.21856294572353363 }, { "X": 0.292357861995697, "Y": 0.21856294572353363 }, { "X": 0.292357861995697, "Y": 0.5181190371513367 }, { "X": 0.13885067403316498, "Y": 0.5181190371513367 } ] }, "Id": "516ae823-3bab-4f9a-9d74-ad7150d128ab", "Page": 1 }, { "BlockType": "WORD", "Confidence": 89.8501968383789, "Text": "llo,", "Geometry": { "BoundingBox": { "Width": 0.17724157869815826, "Height": 0.49159327149391174, "Left": 0.2980354428291321, "Top": 0.17169663310050964 }, "Polygon": [ { "X": 0.2980354428291321, "Y": 0.17169663310050964 }, { "X": 0.47527703642845154, "Y": 0.17169663310050964 }, { "X": 0.47527703642845154, "Y": 0.6632899045944214 }, { "X": 0.2980354428291321, "Y": 0.6632899045944214 } ] }, "Id": "6bcf4ea8-bbe8-4686-91be-b98dd63bc6a6", "Page": 1 }, { "BlockType": "WORD", "Confidence": 82.44834899902344, "Text": "worlo", "Geometry": { "BoundingBox": { "Width": 0.33182239532470703, "Height": 0.3766750991344452, "Left": 0.5091826915740967, "Top": 0.23131252825260162 }, "Polygon": [ { "X": 0.5091826915740967, "Y": 0.23131252825260162 }, { "X": 0.8410050868988037, "Y": 0.23131252825260162 }, { "X": 0.8410050868988037, "Y": 0.607987642288208 }, { "X": 0.5091826915740967, "Y": 0.607987642288208 } ] }, "Id": "ed135c3b-35dd-4085-8f00-26aedab0125f", "Page": 1 }, { "BlockType": "WORD", "Confidence": 88.50325775146484, "Text": "world", "Geometry": { "BoundingBox": { "Width": 0.35004907846450806, "Height": 0.19635874032974243, "Left": 0.527581512928009, "Top": 0.30100569128990173 }, "Polygon": [ { "X": 0.527581512928009, "Y": 0.30100569128990173 }, { "X": 0.8776305913925171, "Y": 0.30100569128990173 }, { "X": 0.8776305913925171, "Y": 0.49736443161964417 }, { "X": 0.527581512928009, "Y": 0.49736443161964417 } ] }, "Id": "9e28834d-798e-4a62-8862-a837dfd895a6", "Page": 1 } ] }
Mithilfe eines Adapters
Mit Amazon Textract können Sie einen Adapter verwenden, wenn Sie den StartDocumentAnalysis Vorgang aufrufen. Um einen Adapter zu verwenden, müssen Sie zunächst mithilfe der Amazon Textract-Konsole einen Adapter erstellen und trainieren. Um Ihren Adapter anzuwenden, geben Sie seine ID an, wenn Sie den StartDocumentAnalysis API-Vorgang aufrufen. Wenn Sie den StartDocumentAnalysis Vorgang aufrufen, können Sie bis zu einen Adapter pro Seite verwenden.
"AdaptersConfig": { "Adapters": [ { "AdapterId": "2e9bf1c4aa31", "Version": "1", "Pages": [ "1" ] } ] }