AWS Textract在多页表格中检测到不同数量的列可能是由于表格可能不完全对齐或在不同页面中出现了格式差异。解决此问题的一种方法是使用Python脚本对文档进行后处理,以使其具有一致的表格结构。
以下是一个示例脚本,可用于将文档中的所有多页表格对齐:
import boto3
def fix_table(table):
# 获取第一页的列数
first_page_columns = len(table['Blocks'][0]['ColumnWidths'])
for page in table['Blocks']:
# 如果该页表格中的列数少于第一页的列数,则将其插入列并将列宽设为0
if len(page['ColumnWidths']) < first_page_columns:
for i in range(first_page_columns - len(page['ColumnWidths'])):
page['ColumnWidths'].append(0)
return table
# 连接aws服务
session = boto3.Session(
aws_access_key_id='ACCESS_KEY',
aws_secret_access_key='SECRET_KEY',
region_name='us-west-2'
)
# 获取文档中所有多页表格
client = session.client('textract')
response = client.analyze_document(
Document={
'S3Object': {
'Bucket': 'BUCKET_NAME',
'Name': 'DOCUMENT_NAME'
}
},
FeatureTypes=['TABLES']
)
# 对每个多页表格进行对齐
for table in response['Blocks']:
if table['BlockType'] == 'TABLE':
fixed_table = fix_table(table)
此代码将获取AWS Textract分析的文档中所有多页表格,并对每个表格运行fix_table函数。该函数检查每个页面的列数,并将任何缺少的列插入到表格中,以使每个页面的列数与第一页相同。