TextIn团队的文档解析测评工具Markdown Tester在Github发布后,我们陆续与大家探讨了目前业内对PDF解析工作的评判标准与我们各项测评指标的设计原理,包括段落、表格、公式、阅读顺序等维度。
今天,我们将介绍另一项重要指标,也是业内面对的一项普遍性难点:标题识别,以及它如何影响数据清洗与RAG系统开发。
 
我们依旧从指标设计出发

 
 
 
 
此前,我们在讨论段落检测维度的文章《所见即所得,赋能RAG:PDF解析里的段落识别与阅读顺序还原》(+link)中详细说明过识别率、召回率与F1的设计原理。
标题检测中,相关指标通过相似规则构建:标题识别率测量的是标题解析是否足够准确,即被识别为标题的项目中有多少是正确的;而标题召回率测量的是段落解析是否足够全面,能不能避免长文档中有没被找到的“漏网之鱼”;F1值是识别率和召回率的调和平均值,它综合考虑了这两个指标,用于评估文档解析的整体性能。
树状编辑距离的概念,可以参考《聊聊文档解析测评里的表格指标》(+link)。相对于表格树状结构,标题会更易于理解。凡长文档,大部分会包含多层级标题,将标题层级以树状结构的方式表达,并测量预测值与真值间的编辑距离,即可评判各层级标题的解析准确程度。
简而言之,如果解析产品将一篇论文中的二级标题检测为三级子标题,在这项指标里就会被扣分。
 
标题检测是PDF解析的主要维度之一,在长文档解析中尤为重要。
TextIn团队研发了文档树引擎这一关键技术,针对性提升标题检测能力。
物理版面分析技术支持对目标区块的检测与元素识别,并利用标题区块的高度(即字号)判断一级、二级、三级、......N级标题。这种方法解决了一部分问题,但较难在文档格式多样的复杂场景中保持良好表现。在此基础上,文档树引擎从语义出发,增强了标题识别率与召回率。
TextIn文档树引擎遵循以下路径工作:
一、输入
  • 整份文档的段落内容,以序列化形式传入模型
二、预测
  • 提取当前段落的embedding值
  • 预测每个段落和上一个段落的关系,分为子标题、子段落、合并、旁系、主标题、表格标题
  • 如果是旁系类型,则再往上找父节点,并判断其层级关系,直到找到最终的父节点
三、输出
  • 基于每个段落的情况,构造该文档的文档树,并按 JSON 结构输出(右图中未渲染段落节点)

 
 
 
 
正确的标题检测结果输出与文档树构建对数据质量有重要的提升作用,对后续数据清洗、大模型语义理解与RAG开发应用场景意义尤为明显。
简单来说,当AI对长文档进行检索与理解,清晰的标题及层级识别,能帮助机器快速读取全文的逻辑结构,并锚定我们希望查找或归纳的信息位置。不论我们需要LLM帮助快速阅读、生成摘要,还是提取细节内容,标题目录都能起到重要作用。
以RAG(Retrieval-Augmented Generation)这一主要场景为例,在系统开发过程中,Chunking(分块)对整体性能有着显著的影响。RAG在进行信息检索的时候需要将检索出来的有价值的文本段送给模型,模型才能生成可靠有用的内容。分块是将整篇文本分成小段的过程,当我们使用LLM embedding内容时,分块可以帮助优化从向量数据库被召回的内容的准确性,因此文本段的质量也是RAG中比较重要的一环。良好的分块能够减少计算资源的消耗,提高检索效率,并提升生成质量。
常见的Chunking方式包括以下几种:
1、固定长度切分:将文本按固定长度进行切分,例如每1000或2000个字符切分为一个块。这种方法简单直接,便于快速处理,但可能无法充分考虑文本的实际语义结构,导致上下文断裂,影响重要的语义信息。
2、基于句子的切分:按照句子粒度进行切分,比如以句号、点号等标点符号进行切分。该方法能保证每个句子的完整性、上下文连贯性。但如果句子过长,可能丢失一些细节,或由于切分不准确影响检索效果。
3、滑动窗口切分:创建一个重叠的滑动窗口,比如设置窗口大小为500,步长为100。这种方法可以减少因固定长度或句子边界切分可能引入的信息丢失问题,在一定程度上平衡文本的连续性和语义完整性,但上下文重叠导致信息重复,增加计算量,而窗口的开始和结束可能会在句子或短语中间,导致语义不连贯。
不同的Chunking策略和参数设置会导致生成Chunk的特点差异,进而影响RAG模型在下游任务中的性能表现。在常规方法之外,也存在对文档要求更高的分块方式:按文档结构切分。这种策略要求文档具有明确的结构化信息,可以有效利用文档的层次信息,保持语义的连贯性。
基于语义分割的优化使用各级子标题作为分块依据,能够最大程度锚定完整内容。优化的实现需要充分的前提条件:文档解析工具能为RAG提供结构清晰、机器可读的长文档,例如自带标题层级的Markdown文本。
好的文档解析工具能让分块处理“不打没准备的仗”,为语义分割提供良好基础。
 
目前,TextIn文档解析工具已在RAG知识库问答中发挥重要功能,文档树引擎在年报、财报、行研报告等金融文件领域展现了较为明显的优势。
对于文档解析工具在RAG、LLM场景下的效果,欢迎各位开发者随时向我们提出其他需求,与我们共同交流您当下的用途和需要~
TextIn文档解析产品目前正在提供开发者福利,添加合合信息企V,即可申领!
关于测评工具、产品或需求,都可以找我们沟通。我们欢迎所有探讨和交流!

TextIn文档树引擎,助力RAG知识库问答检索召回能力提升的更多相关文章

  1. bs4--官文--搜索文档树

    搜索文档树 Beautiful Soup定义了很多搜索方法,这里着重介绍2个: find() 和 find_all() .其它方法的参数和用法类似,请读者举一反三. 再以“爱丽丝”文档作为例子: ht ...

  2. bs4--官文--遍历文档树

    遍历文档树 还拿”爱丽丝梦游仙境”的文档来做例子: html_doc = """ <html><head><title>The Dor ...

  3. bs4--官文--修改文档树

    修改文档树 Beautiful Soup的强项是文档树的搜索,但同时也可以方便的修改文档树 修改tag的名称和属性 在 Attributes 的章节中已经介绍过这个功能,但是再看一遍也无妨. 重命名一 ...

  4. 使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解(新手必学)

    为大家介绍下Python爬虫库BeautifulSoup遍历文档树并对标签进行操作的详细方法与函数下面就是使用Python爬虫库BeautifulSoup对文档树进行遍历并对标签进行操作的实例,都是最 ...

  5. Python爬虫系列(六):搜索文档树

    今天早上,写的东西掉了.这个烂知乎,有bug,说了自动保存草稿,其实并没有保存.无语 今晚,我们将继续讨论如何分析html文档. 1.字符串 #直接找元素soup.find_all('b') 2.正则 ...

  6. 使用requests爬取梨视频、bilibili视频、汽车之家,bs4遍历文档树、搜索文档树,css选择器

    今日内容概要 使用requests爬取梨视频 requests+bs4爬取汽车之家 bs4遍历文档树 bs4搜索文档树 css选择器 内容详细 1.使用requests爬取梨视频 # 模拟发送http ...

  7. MaltReport2:通用文档生成引擎

    UPDATED: 本文仅适用 MaltReport 2.x ,3.x 版本文档还在撰写当中,目前请参考项目中的 Samples. MaltReport 是我几年前写的开源单据.报表引擎,最近进行了较大 ...

  8. Linux 基础命令、文档树 和 bash

    最近发现了一个总结得更好的:bash cheatsheet 本文只是我对 linux 基础学习的一个总结,可能仅适用于复习用.算是我的 Linux 备忘录. 最基础 tab 补全 * 通配符 ctrl ...

  9. [整理] ES5 词法约定文档树状图

    将ES5 词法说明整理为了树状图,方便查阅,请自行点开小图看大图:

  10. smarty3.0中文手册文档API及使用指南

    1.安装Smarty3.0一.什么是smarty?smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变 ...

随机推荐

  1. 洛谷P1464

    搜索优化后是记忆化搜索,再优化就是dp了 #include <iostream> #include <utility> using namespace std; typedef ...

  2. 使用post请求登陆

    1.使用post请求登陆 import requests import matplotlib.pyplot as plt url = 'https://www.ptpress.com.cn/login ...

  3. 使用Selenium爬取动态网页

    1.使用Selenium爬取动态网页 In [ ]: from selenium import webdriver driver = webdriver.Chrome() driver.get('ht ...

  4. 27 首页banner文库失效

    安卓app 首页banner文库没有连接功能

  5. 万维网WWW

    万维网是一个大规模的联机式信息储存场所,能方便地从一个网络站点访问另一个网络站点.万维网是一个分布式的超媒体系统. 统一资源定位符URL URL表示从互联网上得到的资源位置和访问这些资源的方法,实际上 ...

  6. [oeasy]python0112_扩展ascii_Extended_ascii_法文字符

    法文字符 回忆上次内容 上次回顾了 字型编码的进化过程 从 7-seg 到 点阵字库 终于让字母.数字.标点 明确了字型 小写字符 占据了位置 法文字符 没有地方放了     ​   添加图片注释,不 ...

  7. CF1468N 题解

    洛谷链接&CF 链接 题目简述 共有 \(T\) 组数据,对于每组数据: 有三个桶,五种垃圾,每个桶有固定的容量. 前三种垃圾分别放入三种桶中,第四种垃圾可以放进 \(1,3\) 桶中,第五种 ...

  8. SUM-2024成信大天梯赛

    查看代码中有仔细的批注 L1-5 yihan的新函数 题解:(字符串)需要用到一个知识,整数与字符串之间的变换"to_string()",字符串变成整数"stoll()& ...

  9. python multipart/form-data post接口请求

    python multipart/form-data post接口请求 def WebKit_format(data, boundary="----WebKitFormBoundary*** ...

  10. PyTorch视觉模型库torchvision.models介绍

    安装pytorch时我们一般都是会一并选择安装自带的视觉模型库 torchvision ,  该库不仅有经典的视觉模型结构同时还提供了对应参数的下载功能,可以说torchvision库是十分方便于研究 ...