如何使用Google Document AI实现文档分类功能?
使用Google Document AI实现文档分类与数据提取的实操步骤
一、文档分类的实现
1. 借助预训练分类器
Google Document AI提供了针对发票、简历、收据等常见文档的预训练分类模型,直接调用对应处理器即可完成分类:
- 核心代码示例(Python):
from google.cloud import documentai_v1 as documentai def classify_document(project_id, location, processor_id, file_path): client = documentai.DocumentProcessorServiceClient() # 构造处理器路径 processor_name = client.processor_path(project_id, location, processor_id) # 读取文档内容 with open(file_path, "rb") as doc_file: doc_content = doc_file.read() # 构建请求对象 raw_doc = documentai.RawDocument(content=doc_content, mime_type="application/pdf") request = documentai.ProcessRequest(name=processor_name, raw_document=raw_doc) # 发送请求并获取结果 response = client.process_document(request=request) doc = response.document # 输出分类结果 print(f"文档类型: {doc.document_type}") print(f"分类置信度: {doc.document_type_confidence:.2f}")
- 说明:不同预训练分类器的
processor_id可在GCP控制台的Document AI页面中查询获取。
2. 训练自定义分类器
若预训练模型无法覆盖你的文档类别,可创建自定义分类器:
- 准备数据集:每个目标类别至少提供10份样本文档,尽量保证各类别数据量均衡。
- 在GCP控制台创建自定义分类处理器,上传数据集并配置训练参数(如训练轮次、置信度阈值)。
- 训练完成后,使用生成的自定义
processor_id,按照上述预训练分类器的代码逻辑调用即可。
二、按标签提取数据的实现
1. 使用预训练实体提取器
针对结构化文档(如发票、身份证),预训练处理器会自动识别并提取带标签的字段:
- 核心代码示例(Python):
from google.cloud import documentai_v1 as documentai def extract_labeled_data(project_id, location, processor_id, file_path): client = documentai.DocumentProcessorServiceClient() processor_name = client.processor_path(project_id, location, processor_id) with open(file_path, "rb") as doc_file: doc_content = doc_file.read() raw_doc = documentai.RawDocument(content=doc_content, mime_type="application/pdf") request = documentai.ProcessRequest(name=processor_name, raw_document=raw_doc) response = client.process_document(request=request) doc = response.document # 遍历提取的带标签实体 for entity in doc.entities: print(f"标签: {entity.type_}") print(f"提取值: {entity.mention_text}") print(f"置信度: {entity.confidence:.2f}\n")
2. 自定义标签提取
如果需要提取业务专属的标签(如合同中的“甲方名称”“签约日期”):
- 在GCP控制台创建自定义实体提取处理器,定义需要提取的实体标签。
- 使用GCP提供的标注工具,为训练文档中的目标字段标注对应标签。
- 训练模型后,调用自定义处理器ID,即可提取自定义标签的数据,代码逻辑与预训练提取器一致。
三、同时实现分类与标签提取
若需先分类再提取对应数据,可按以下流程操作:
- 调用分类处理器确定文档类型。
- 根据分类结果,调用对应类型的实体提取处理器(如分类为发票则调用发票提取处理器)。
- 也可创建自定义多任务处理器,在单次请求中同时完成文档分类与标签提取。
内容的提问来源于stack exchange,提问作者Vladimir Mischenko
相关产品推荐
相关产品推荐

