前言
文档分割是一项具有挑战性的任务,它是任何知识库问答系统的基础。高质量的文档分割结果对于显著提升问答效果至关重要,但是目前大多数开源库的处理能力有限。
这些开源的库或者方法缺点大致可以罗列如下:
- 只能处理文本,无法提取表格中的内容
- 缺乏有效的分割策略,要么是一整个文档全部提取,要么是词粒度的获取
对于第一点,一般是把表格中的内容识别成文本,这样喂给大模型的时候就会出现一连串数字或者字母,这无疑会增大模型的理解难度;对于第二点,则是需要按照指定的长度对文档进行切分,或者把词按照一定的规则拼接到一块,这同样会损失到文本自身的上下文信息。
而本文接下来介绍的Open-parse这个库可以直接从文本中提取出多个节点,每个节点就是一个chunk,已经分好了,因此无需再按照长度进行split,这样同时也比单独提取一个词再进行合并又简化了不少操作;同时还支持同时提取表格和文字,无需分开提取。
快速开始
安装
pip install openparse
使用pip
进行安装,同时这个库依赖Pymupdf
、pdfminer
等其他库,也会同时安装。
识别文字
pdf = "c:\\人口.pdf"
parser = openparse.DocumentParser()
parsed_basic_doc = parser.parse(pdf)
for node in parsed_basic_doc.nodes:
node
print(