要使用 AI 处理 PDF 的拆分、合并等功能,可以参考以下内容:
对于人类来说,浏览任何文档页面的认知过程都是相似的。当我们阅读一个页面时,我们的视网膜会捕捉到字符。接着在我们的大脑中,这些字符被组织成段落、表格和图表,然后被理解或记忆。但计算机是以二进制码感知信息,所从计算机的角度看,文档可以分为两类,如图3所示:图3计算机视角下的两种类型的文档有标记文档(Tagged Documents):例如Microsoft Word和HTML文档,它们包含像<p>和<table>这样的特殊标记,用来将文本组织成段落、单元格和表格。无标记文档(Untagged Documents):例如PDF文档,它存储了每个文档页面上字符、线条和其他内容元素放置位置的指令。PDF文档以人类可读的方式“绘制”这些基本内容元素,但它并没有存储文档的任何结构信息,如表格或段落。因此,无标记文档仅供人类阅读,但机器无法读取。当尝试将PDF表格复制到Word中时,这一点会很明显,因为在Word中原表格的结构通常会完全丢失。然而,大语言模型擅长处理序列化的文本。因此,为了使大语言模型能够有效处理无标记文档,需要一个解析器将散乱的字符组织成具有其结构的连贯文本。理想情况下,PDF解析器应具备以下关键特征:文档结构识别:能够灵活地将页面划分为不同类型的内容块,如段落、表格和图表。这确保了划分的文本块是完整和独立的语义单元。在复杂文档布局中保持鲁棒性(Robustness):即使是在文档页面布局复杂的情况下也能保证解析效果,如多列页面、无边框表格甚至合并单元格的表格。
接下来,我们转向基于深度学习的解析方法,以我们的ChatDOC PDF解析器为例。ChatDOC PDF解析器(pdflux.com)在超过一千万份文档页面的语料库上进行了训练。按照引用[2]中的方法,它包含了一系列复杂的步骤:1.OCR进行文字定位和识别;2.物理文档对象检测;3.跨列和跨页调整;4.阅读顺序确定;5.表格结构识别;6.文档逻辑结构识别。读者可以参考引用[2]了解这些步骤的细节。解析后,我们用段落和表格作为基本块,然后合并相邻块,直到达到词元(Token)限制以形成一个分块。ChatDOC PDF解析器旨在始终以JSON或HTML格式提供解析结果,即使对于有挑战性的PDF文档也是如此。它将文档解析为内容块,其中每个分块指代一个表格、段落、图表或其他类型的内容元素。对于表格,它会输出每个表格单元格中的文本,并告知哪些单元格被合并成一个新的单元格。此外,对于具有分级标题的文档,它会输出文档的分层结构。总之,解析后的结果就像一个结构清晰的Word文件。图5展示了一个扫描复印页面及其解析结果。左侧展示了文档及识别的内容块(不同内容块用不同颜色的矩形表示)。右侧展示了JSON或HTML格式的解析结果。读者可以参考引用[3]查看这个解析结果的在线演示。图5 ChatDOC PDF解析器的解析结果。放大查看细节。然后,我们查看了ChatDOC PDF解析器在案例1中的结果,如图6所示。它成功解决了PyPDF的三个缺点。
图6案例一中ChatDOC的解析和分块结果(原文档:[4])。放大查看细节。1.如“3分块结果可视化”部分所示,ChatDOC PDF解析器识别了混合布局,并正确地将整个表格设置为一个单独的分块。对于段落,如“2分块结果”部分中的分块2所示,同一段落中的文本行会被合并到一起,使其更易于理解。1.在“2分块结果”部分的分块1中,我们可以看到表格以Markdown格式表示,保留了表格的内部结构。此外,ChatDOC PDF解析器可以识别表格内的合并单元格。由于Markdown格式不能表示合并单元格,我们在Markdown格式中将合并单元格中的全部文本放入每个原始单元格中。如图所示,在分块1中,文本“Year ended March 31,2021”重复了9次,表示该合并单元格合并了9个原始单元格。1.此外,“Management Discussion and Analysis”和“112 Alibaba Group Holding Limited”被识别为页眉和页脚,它们被分别放置在解析结果的顶部和底部,与阅读顺序一致。另一个案例2为复杂的跨页表格,其解析结果如附录中的图16所示。