如何通过Document AI API训练自定义分类器并配置数据集与标签?
Document AI自定义分类器训练:关联文档与标签的API实现方法
自定义文档分类器的训练完全支持API调用,核心解决点是通过JSONL标签映射文件绑定Cloud Storage中的文档路径与对应分类标签,再通过BatchDocumentsInputConfig指向该文件完成训练/测试集配置,具体步骤如下:
1. 准备标签映射JSONL文件
每个JSON对象对应一个文档,需包含两个必填字段:
gcs_uri:Cloud Storage中文档的完整路径(如gs://your-bucket/train/invoice_001.pdf)document_type:文档对应的分类标签(如invoice)
示例JSONL内容:
{"gcs_uri": "gs://your-bucket/train/invoice_001.pdf", "document_type": "invoice"} {"gcs_uri": "gs://your-bucket/train/receipt_001.pdf", "document_type": "receipt"}
将该文件上传至Cloud Storage的指定路径,比如gs://your-bucket/train/labels.jsonl。
2. 配置训练请求中的输入参数
训练处理器版本时,BatchDocumentsInputConfig需指向标签映射文件(而非原始文档目录),示例Python代码如下:
from google.cloud import documentai_v1 as documentai client = documentai.DocumentProcessorServiceClient() # 处理器完整名称,格式:projects/{项目ID}/locations/{区域}/processors/{处理器ID} processor_name = "projects/your-project/locations/us/processors/your-processor-id" # 训练集输入配置 training_input = documentai.BatchDocumentsInputConfig( gcs_list=documentai.GcsList( uris=["gs://your-bucket/train/labels.jsonl"] ) ) # 测试集输入配置(可选,若不指定会自动从训练集拆分20%作为测试数据) test_input = documentai.BatchDocumentsInputConfig( gcs_list=documentai.GcsList( uris=["gs://your-bucket/test/labels.jsonl"] ) ) # 构建训练请求 request = documentai.TrainProcessorVersionRequest( parent=processor_name, processor_version=documentai.ProcessorVersion( display_name="v1-trained-classifier" ), training_documents=training_input, test_documents=test_input ) # 发起训练请求(超时时间可根据数据集大小调整) operation = client.train_processor_version(request=request) response = operation.result(timeout=3600)
3. 关键注意事项
- 确保Cloud Storage存储桶与Document AI处理器处于同一区域,避免区域不兼容问题
- 标签映射文件必须是UTF-8编码的JSONL格式,每个JSON对象单独占一行
- 确认处理器类型为DOCUMENT_CLASSIFIER,仅该类型支持自定义分类模型训练
- 若未指定测试集,系统会自动从训练集中拆分20%数据作为测试集
内容的提问来源于stack exchange,提问作者pippofranco
相关产品推荐
相关产品推荐

