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

如何重构PDF/OCR提取时被拆分为多行的文本语句?

从PDF/OCR提取文本的行合并与语句边界问题

问题背景

从PDF、OCR等来源提取文本时,常会遇到文本被拆分为多行的问题。我曾尝试用PyMuPDF 1.22提取PDF文本,使用「block mode」时效果尚可,但我的问题是通用的,不局限于特定工具或格式。

若PDF由LaTeX(如arxiv文档)或通过pandoc(基于HTML)生成,提取时标题和段落会作为单个块,仅含易去除的\n。但如果PDF是从Word或OpenOffice导出,或是OCR识别的结果,每行都会成为独立块,得到如下文本:

The Big Heading
A Sub-Heading?
This is the first sentence and
now it ends. And a second sent-
ence begins and continues and
ends. A short third.

这会得到6个块、6个字符串,但我需要3个段落字符串或5个语句字符串,即期望输出:

The Big Heading
A Sub-Heading?
This is the first sentence and now it ends.
And a second sentence begins and continues and ends.
A short third.

OCR领域中,行转语句的问题理应已有解决方案,但我未找到成熟库或方案。我还想了解是否存在语言无关的解决方案,或是需基于特定语言的启发式规则(我常处理非英文文本)。

我总结了一些启发式规则:

  • 远短于最长行的内容可能是标题(但也有例外,如上例最后一句),学术论文标题也可能跨两行。
  • 以“-”结尾的行是语句的延续(需注意连字符拆分的单词)。
  • 仅含\n的块可标识标题或段落结束(但并非总是如此)。
  • 标题有时带编号,如“1. xxx”“1.1. yyy”。

但我不想重复造轮子,希望找到已有的成熟方案。

更新

我了解到FinNLP workshop曾举办过两届PDF语句边界检测的共享任务,2020年第二届的任务有总结论文,所有FinNLP workshop的论文均可查看。尽管第二届任务得分并不理想,但第三届、第四届及即将到来的第五届并未设置类似任务。

内容的提问来源于stack exchange,提问作者Darren Cook

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:34:51