我两次构建了相同的 B2B 文档提取器:规则与 LLM

使用 pytesseract 的基于规则的 PDF 提取与使用 Ollama 和 LLaMA 3 的基于 LLM 的方法之间的实际比较,基于现实的 B2B 订单场景。我构建相同的 B2B 文档提取器两次:规则与 LLM 的帖子首先出现在 Towards Data Science 上。

来源:走向数据科学

情况:您在一家中型公司的运营团队工作。您的团队每天都会处理来自不同 B2B 客户的订单。它们全部以 PDF 形式提供。理论上,它们都包含相同的信息:客户 ID、采购订单编号、交货日期和订购的商品。

但实际上,每个文档看起来都略有不同:一位客户将采购订单编号放在左上角,下一位客户将采购订单编号放在右下角。有些写“PO 编号”,有些则使用“订单 ID”、“订单参考”或完全不同的内容。

对于我们人类来说,这通常不是问题。我们查看文档,了解上下文,并立即识别出哪些信息的含义。

然而,对于传统的自动化系统,这变得很困难:正则表达式规则可以专门搜索“PO Number:”。但如果下一个客户使用“订单参考:”,会发生什么情况呢?

这正是我为本文重新创建的问题。

我们比较了从 B2B 订单中提取结构化数据的两种不同方法:

  • 使用 pytesseract 和正则表达式规则的传统基于规则的方法
  • 使用 pytesseract、Ollama 和 LLaMA 3 的基于 LLM 的方法
  • 本文的目的并不是要表明法学硕士通常更好。但情况并非总是如此。

    一个更有趣的问题是:随着复杂性和不同布局数量的增加,传统提取管道在什么时候开始达到其极限?法学硕士什么时候可以真正减少维护工作?

    目录1 – 分步指南2 – 头对头比较3 – 我们什么时候不应该使用法学硕士?4 – 最后的想法在哪里继续学习?

    1 – 分步指南

  • 传统方法基本上会问:
  • “我能找到我编程的确切模式吗?”
  • 基于 LLM 的方法会询问:
  • “我能理解这个字段在上下文中的含义吗?”
  • → 🤓在 GitHub Repo 中找到完整代码🤓 ←

    开始之前 — Mise en Place

    pip 与 Anaconda

    创建并激活新的虚拟环境
  • 为什么?