在 .NET 中对 PDF 文件进行分类对于自动化文档工作流、提取洞察以及在无需人工审查的情况下路由内容至关重要。GroupDocs.Classification Cloud SDK for .NET 提供了强大的 API,使 PDF 分类变得简单且可扩展。在本教程中,您将学习完整的 PDF 分类工作流,包括项目设置和分类法配置、批处理、扫描 PDF 的 OCR 处理以及性能调优,并提供可直接运行的代码示例。

在 .NET 中对 PDF 文件进行分类的步骤

  1. 添加 NuGet 包 - 运行 dotnet add package GroupDocs.Classification-Cloud 将库添加到项目中。
  2. 创建并配置 API 客户端 - 使用您的 client ID 和 secret 初始化 ClassificationApi
  3. 上传 PDF - 使用 UploadFile 接口将文档发送到云存储。
  4. 定义分类法 - 提供一个指向 JSON 文件,该文件将类别映射到关键字;这将指导分类引擎。
  5. 调用分类方法 - 使用文件 ID、分类法以及可选的置信阈值调用 ClassifyDocument
  6. 处理结果 - 遍历 ClassificationResult 对象,检查 Confidence 属性以过滤低置信度标签。

有关请求对象的更多详细信息,请参阅 API 参考

在 .NET 中高效分类 PDF 文件 - 完整代码示例

以下示例演示了对单个 PDF 文件进行完整的端到端分类,包括错误处理和结果处理。

注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新文件路径(sample.pdftaxonomy.json),将占位符凭据替换为实际的 YOUR_CLIENT_IDYOUR_CLIENT_SECRET,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 的 REST API 进行 PDF 分类

SDK 基于 REST API 运行,因此您也可以直接使用 cURL 调用它。以下是典型步骤。

  1. 获取访问令牌
curl -X POST "https://api.groupdocs.cloud/v1.0/oauth2/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET","grant_type":"client_credentials"}'
  1. 上传 PDF 文件
curl -X POST "https://api.groupdocs.cloud/v1.0/storage/file/upload" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -F "file=@sample.pdf"
  1. 对文档进行分类
curl -X POST "https://api.groupdocs.cloud/v1.0/classification/classify" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileId": "sample.pdf",
           "taxonomy": "{\"categories\":[{\"name\":\"Invoice\",\"keywords\":[\"amount\",\"total\",\"invoice\"]}]}",
           "confidenceThreshold": 0.6
         }'
  1. 下载结果(如果需要) - API 直接返回 JSON;您可以将其管道输出到文件。

欲了解更多详情,请参阅官方 API 文档

.NET 中的安装和设置

  1. 安装 NuGet 包
    dotnet add package GroupDocs.Classification-Cloud
    
  2. 发布页面下载最新的二进制文件(可选)。
  3. 添加临时许可证(仅用于开发),方法是复制许可证文件并按照代码示例初始化 Configuration 对象。
  4. 验证连接 - 运行一个简单的 GetSupportedFileTypes 调用,以确保客户端能够访问服务。

使用 GroupDocs.Classification Cloud SDK 在 .NET 中进行 PDF 分类

该 SDK 抽象了 HTTP 处理、序列化和错误映射,使您能够专注于业务逻辑。它支持:

  • Multiple languages - API 与语言无关;.NET 客户端遵循相同的契约。
  • Taxonomy‑driven classification - 您只需定义一次类别,即可在多个项目中重复使用。
  • Confidence scoring - 每个标签都包含置信度值,可实现基于阈值的过滤。

了解这些功能有助于您设计一个强大的 PDF 分类工作流。

GroupDocs.Classification Cloud SDK 对此任务重要的功能

  • Batch processing - 在单个请求中对数千个 PDF 进行分类。
  • OCR integration - 在分类之前自动从扫描的 PDF 中提取文本。
  • Custom taxonomy support - 上传 JSON 或 XML 分类法以匹配您的领域。
  • Detailed logging - 检索请求 ID 以进行故障排除和审计跟踪。

配置分类层次结构和置信阈值

创建一个描述您类别的 taxonomy.json 文件:

{
  "categories": [
    {
      "name": "Invoice",
      "keywords": ["invoice", "amount", "total", "due"]
    },
    {
      "name": "Resume",
      "keywords": ["experience", "education", "skills", "profile"]
    }
  ]
}

在构建 ClassifyDocumentRequest 时,设置 ConfidenceThreshold 属性(例如 0.6),以过滤不确定的预测。根据您所在领域对误报的容忍度调整此值。

大批量 PDF 的性能优化

  • 将批次分块 - 将大型集合拆分为每组 100‑200 个文件,以避免超时。
  • 启用异步处理 - 使用 SubmitJob 接口并轮询 GetJobStatus 以释放线程。
  • 复用相同的分类法 - 只加载一次分类法,并在所有请求中复用相同的 JSON 字符串。
  • 并行上传 - 使用 Task.WhenAll 并发上传文件,以降低网络延迟。
场景推荐方法
< 100 PDFs同步单请求
100‑1,000 PDFs分块同步批处理
> 1,000 PDFs异步作业提交 + 轮询

处理扫描的 PDF 和 OCR 集成

扫描的文档包含图像而不是可选择的文本。要对它们进行分类:

  1. 将请求中的 ocr 标志设置为 true
  2. 可选地指定 ocrLanguage(例如,英文使用 "en")。
  3. 服务在应用分类规则之前内部运行 OCR。

此两步流程确保仅包含图像的 PDF 在分类时被视为与原生 PDF 相同。

常见分类错误排查

  • 401 Unauthorized - 验证 ClientIdClientSecret 是否正确,并且令牌请求已成功。
  • 400 Bad Request (Invalid Taxonomy) - 确保 taxonomy JSON 格式正确;缺少括号会导致此错误。
  • 404 Not Found (File ID) - 确认文件已成功上传且 fileId 与存储路径匹配。
  • Low confidence scores - 检查 taxonomy 关键字;添加更具代表性的术语或扩大训练集。

有关错误代码的完整列表,请查阅 API reference

.NET 中 PDF 分类的最佳实践

  • 保持分类法小且专注 - 过多重叠的关键字会降低准确性。
  • 使用带版本的分类法文件 - 将它们存储在源代码控制中以跟踪更改。
  • 设置适当的置信阈值 - 从 0.6 开始,并根据验证结果进行调整。
  • 监控作业状态 - 记录请求 ID 和响应时间以进行性能分析。
  • 保护凭据 - 将 ClientIdClientSecret 存储在环境变量或 Azure Key Vault 中。

结论

在 .NET 中对 PDF 文件进行分类变得简单,只需使用 GroupDocs.Classification Cloud SDK for .NET。按照上述步骤设置 SDK、定义清晰的分类体系、处理扫描 PDF 的 OCR,并优化批处理性能,您即可构建可靠、可扩展的分类服务,满足任何文档密集型应用的需求。请记得获取正式的生产许可证;您可以先从临时许可证页面获取临时许可证,并在需求增长时升级为完整订阅。

常见问题

问:如何在 .NET 中以高置信度对 PDF 文件进行分类?
答:在请求中设置 ConfidenceThreshold 以过滤低置信度的结果。SDK 为每个标签返回置信度分数,您可以仅保留高于所选阈值的预测。请参阅官方文档了解更多细节。

Q: SDK 是否支持对扫描的 PDF 进行 OCR?
A: 是的。通过在分类请求中设置 ocr 标志来启用 OCR。服务在应用分类法之前会从基于图像的 PDF 中提取文本,从而提高扫描文档的准确性。

Q: 处理成千上万的 PDF 的最佳方法是什么?
A: 使用批量分类和异步作业。将大型集合拆分为可管理的块,通过 SubmitJob 提交,并轮询 GetJobStatus 直至完成。这种方法可避免超时并最大化吞吐量。

问:我在哪里可以获取用于开发的临时许可证?
A: 访问临时许可证页面以生成 30 天的许可证密钥。在进行 API 调用之前,将其应用于您的 Configuration

阅读更多