可能存在一些原因,导致不同的请求方法返回不同的结果。以下是可能出现问题的一些方面:
1.在调用AnalyzeDocumentRequest和StartDocumentAnalysisRequest时,使用了不同的参数。安装输入参数(例如Document和FeatureTypes)调用两个方法之前,请确保它们是相同的。
2.在使用WebApp Demo时,Amazon Textract使用的是与其他两个方法不同的内置模板,这可能导致在处理同一文档时返回不同的结果。解决方法是使用相同的内置模板或自定义模板,并适当处理它们的结果。
以下是一个使用StartDocumentAnalysisRequest调用Amazon Textract的示例代码。这将返回文本和表单字段的详细信息。
import boto3
client = boto3.client('textract')
document_name = 'example.docx'
s3_bucket = 'my-bucket'
s3_object = 'path/to/document/{}'.format(document_name)
response = client.start_document_analysis(
DocumentLocation={
'S3Object': {
'Bucket': s3_bucket,
'Name': s3_object
}
},
FeatureTypes=['TABLES', 'FORMS']
)
job_id = response['JobId']
response = client.get_document_analysis(
JobId=job_id
)
table_data = response['Blocks'][0]['Table']['Rows']
form_data = response['Blocks'][1]['Form']['Fields']
通过检查每个块的BlockType和关联Amazon Textract处理文档的特定功能(例如表格,表单等),可以访问每个块的特定信息,从而处理文档的结果。