大家好,
我现在尝试设计一个 Python 管线来从 PDFAnnual Accounts 中提取结构化的财务数据。 我想以自动转换这些文档为结构化财务数据,以供评估模型和财务分析使用。
预期的工作流程如下:
- 上传一个或多个 PDFAnnual Accounts
- 自动检测并提取 Balance Sheet 和 Income Statement
- 确定 帐号和金额的对应关系
- 将提取的数据转换为 标准化的账户结构
- 将所有数据导出为 结构化数据格式(Excel、dataframe 或数据库)
- 运行验证检查,如 Balance Sheet 等式和多年比较
困扰我的是 PDF 的结构非常不一致。
在实际中,我遇到的文件类型有:
1. 文本 PDF
- 表格存在但通常结构很差
- 列可能不正确对齐
- 有时行会在行中断
2. 扫描 PDF
- 整个文档都是一个图片
- 需要 OCR 才能进行解析
3. 布局变异
- cânance Sheet 和 Income Statement 的位置会改变
- 表格结构会大大不同
- 帐号的标签会在文件之间有所不同
- 列和距边不一致
所以管线需要能够处理:
- 文本提取
- 扫描 PDF 的 OCR
- 表格检测
- 帐号识别
- 映射到预定义的账户结构
- 处理多年数据
我当前关于 Python 层面的考虑是:
pdfplumber或PyMuPDF进行文本提取pytesseract+opencv进行扫描 PDF 的 OCRCamelot或Tabula进行表格提取pandas进行数据清洗和重构- 自定义逻辑来识别帐号和映射它们
但是,我不是很确定这是处理糟糕的实际财务 PDF 的最合适方法。
我想为管线寻求建议。以下是几个问题:
- 在不一致的 PDF 中有什么 Python 工具可以用于可靠地提取表格?
- 是否最佳的方法是先在每个 PDF 上运行 OCR 还是检测是否需要 OCR?
- 有什么库可以很好地处理财务表格提取?
- 是否应该推荐基于规则的手段或基于 ML的手段来识别帐号和映射它们?
- 怎么来设计管线的 总体架构?
任何建议、库或实际经验都会非常有价值。
感谢 !
评论 (0)