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

如何使用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,即可提取自定义标签的数据,代码逻辑与预训练提取器一致。

三、同时实现分类与标签提取

若需先分类再提取对应数据,可按以下流程操作:

  1. 调用分类处理器确定文档类型。
  2. 根据分类结果,调用对应类型的实体提取处理器(如分类为发票则调用发票提取处理器)。
  3. 也可创建自定义多任务处理器,在单次请求中同时完成文档分类与标签提取。

内容的提问来源于stack exchange,提问作者Vladimir Mischenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:48:30