You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python Textract提取的文本与AWS DynamoDB存储数据进行比对

方案整体架构思路

你不需要把Textract的提取结果全量传入DynamoDB再执行比对,DynamoDB作为键值存储,直接做全字段模糊匹配的效率很低,推荐用无服务流程串联实现需求,成本和复杂度都更低。

正向流程(Textract提取结果主动匹配DynamoDB已有用户数据)

  • 第一步:先结构化Textract的身份证提取输出,把需要比对的核心字段(比如姓名、身份证号、出生日期)从Textract返回的JSON结果中提取出来,做字段清洗:比如去掉空格、特殊符号,身份证号统一转大写,姓名去掉特殊编码字符等,清洗后的字段统一存入一个JSON对象。
  • 第二步:选择DynamoDB中的唯一标识字段作为查询键,比如用户录入时必填的身份证号,你直接把Textract提取清洗后的身份证号作为Partition Key调用GetItem接口查询DynamoDB对应条目,该查询为毫秒级返回,成本极低。
  • 第三步:如果查询到匹配条目,再把Textract提取的其他字段和DynamoDB中存储的对应字段做相似度比对,比如用Levenshtein库计算编辑距离,超过你设定的阈值(比如95%匹配)就算核验通过;如果未查到对应身份证号的条目,直接返回无匹配记录即可。
  • 可选优化:如果需要支持非唯一字段的模糊匹配,可以给DynamoDB开启DynamoDB Streams,同步数据到OpenSearch,用OpenSearch做模糊匹配查询,效率远高于直接扫描DynamoDB。

反向流程(用DynamoDB存储的用户数据匹配已有的Textract提取结果库)

  • 第一步:你需要先把所有历史Textract提取的结构化身份证数据存在另一张DynamoDB表或者S3中,同样以身份证号作为Partition Key建立索引。
  • 第二步:用户在前端提交录入数据后,触发Lambda函数,把录入的核心字段做同样的清洗操作,用身份证号作为键查询存储Textract提取结果的库。
  • 第三步:执行和正向流程一致的字段相似度比对,返回匹配结果即可。

核心代码示例(Python)

import boto3
from Levenshtein import ratio

dynamodb = boto3.resource('dynamodb')
# 用户录入数据存储的DynamoDB表
user_table = dynamodb.Table('user-submitted-data')

def verify_id_card(textract_extracted_data):
    # 清洗提取的身份证号和姓名字段
    extracted_id = textract_extracted_data['id_number'].strip().upper()
    extracted_name = textract_extracted_data['name'].strip()
    
    # 查询DynamoDB对应条目
    response = user_table.get_item(Key={'id_number': extracted_id})
    if 'Item' not in response:
        return {"match": False, "reason": "无对应身份证号记录"}
    
    stored_user = response['Item']
    # 比对姓名相似度,可自行扩展出生日期、地址等其他字段的比对逻辑
    name_similarity = ratio(extracted_name, stored_user['name'])
    if name_similarity >= 0.9:
        return {"match": True, "similarity": name_similarity}
    else:
        return {"match": False, "similarity": name_similarity, "reason": "姓名匹配度不足"}

注意事项

  • 身份证等敏感数据存储在DynamoDB时必须开启静态加密,传输过程全程使用HTTPS,符合数据安全合规要求。
  • Textract识别结果可能存在局部误差,不要设置100%全等匹配的规则,根据业务场景设置合理的相似度阈值即可。
  • 如果比对请求量波动较大,建议给DynamoDB开启按需容量模式,不需要手动调整吞吐量。

内容的提问来源于stack exchange,提问作者VANYA SHRIVASTAVA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:57:03