随着大模型文档智能应用逐渐步入正轨,文档解析类产品成为其中重要的一环。文档解析工具能够“唤醒”沉睡在PDF文件中的知识,将其转化为机器能够识别、读取的信息,将可用数据从txt、csv格式扩展到大批量的电子档、扫描档文件,为数据处理、大模型训练、RAG系统开发提供优质的“燃料”。

近期,文档解析的赛道越发火热,大量企业、开发者入局,为AI应用者提供更多可选产品。最近我们也在文章《以后再也不用肉眼测评解析产品了》(+link)中探讨了面对多种选项,我们应如何挑选适合自己业务场景的产品。

然而,作为解析产品的开发者之一,我们认为:PDF解析,还能做得更好,为用户提供更可靠、优质的服务。

今天,我们将从开发者的视角,与大家分享目前解析产品能进一步提升的一些不足之处,也欢迎大家在评论区分享使用感受、提出指正意见。在与大模型应用接轨的解析领域,开发人员与用户是并肩作战的开拓者,所有意见对我们而言都至关重要!

使用过Markdown Tester的朋友可能已经注意到,目前测评的国内外几款相对主流解析产品,包括GPT-4o,都还称不上是“六边形战士”。

其中颇为薄弱的一项,就是公式

而准确的公式识别在许多场景下,都显得相当重要。当我们需要处理技术类论文、专业书籍时,复杂公式是绕不开的重难点。在涉及大量教科书、教辅、试卷的教育应用场景下情况同样如此。在OCR与文档解析工具得到普遍使用之前,公式的手动输入和校对需要消耗许多人力成本,而公式的多变大小及版式也给机器识别造成了挑战。

以下图为例——

尽管公式中大部分信息被正确识别,在指数方面,解析工具反馈的结果仍有误差。这也是目前教育类应用的用户朋友仍需手动调整的原因。

对于复杂公式的训练提升,是我们重视的优化方向之一。

在财经、学术、企业知识库等各类RAG场景下,比公式出镜率更高的,就是此前我们已经介绍过的表格识别《聊聊文档解析测评里的表格指标》(+link)。如下图案例所显示,表格形式的复杂性、多样性无法穷举,面对无线表、合并单元格、不规则行距、跨段、跨页等难题,表格识别的加强是文档解析类产品的长期命题。

针对RAG,TextIn团队还在关注一个提及率不算特别高的问题:标题检测与目录树。在RAG系统开发过程中,面对长文档切片的需要,业内已形成普遍共识:如果文档有清晰准确的标题及层级,即可改换按长度分chunk的传统方式,而是利用子标题、段落做基于语义理解的分片。这有利于提升系统后续的检索召回能力,以及问答任务中总体的回复表现。

目前,在文档解析过程中,由于不同类型的长文档标题格式各异,同时部分标题在语义上相对模糊,要准确、稳定地完成一级、二级、三级与其他子标题的识别仍属难点。以TextIn团队在开发中处理的实际场景为例,对年报、财报、研报等类型文件,标题层级识别与目录树建构已经能达到较好的效果,但在解析格式一致性更弱的文档类型时,表现还需要进一步优化。对解析来说,尝试如实还原各层级标题是一项较为困难、但对下游工作助益相当大的工作。因此,文档目录树的识别是我们关注的解析重点之一,欢迎对此有较高精度需求的用户随时与我们探讨应用场景,试用最新版的解析效果!

最后,我们也想与大家分享一个我们接到的吐槽——文档解析产品的API使用专业性要求太高!尤其在JSON结构的Detail参数方面,例如,现在当我们在参数中读取某一元素的位置,得到的结果为:

坐标数组[283,96,343,96,343,116,283,116](排版加个框线)

数组的实际理解方式是:在象限内,以左下坐标为起点的顺时针坐标位置。

但显然,它与“直观简单”相去甚远。

接下来,我们会不断以用户体验为中心,进行输出优化,争取让JSON坐标数组这种类型的“槽点”不再成为我们用户的困扰。

LLM时代,我们需要更多优质的语料。AI相关行业的小伙伴基本上都认同,我们“喂”给大模型的语料质量,决定了大模型反馈给我们的回答质量。

所以,尽管在这一年中,PDF解析工作同样进度条发展迅速,我们仍然认为:解析还能做得更好!

今天我们分享了一些当前的重难点与优化方向,欢迎各位开发者随时向我们提出其他需求,与我们共同交流当下的需求~

TextIn文档解析产品目前正在内测计划中,请关注公众号合研社,申领内测福利!

立刻试用文档解析。

关于测评工具、产品或需求,都可以找我们沟通。我们欢迎所有探讨和交流!

PDF解析,还能做得更好的更多相关文章

  1. pdf解析与结构化提取

    #PDF解析与结构化提取##PDF解析对于PDF文档,我们选择用PDFMiner对其进行解析,得到文本.###PDFMinerPDFMiner使用了一种称作lazy parsing的策略,只在需要的时 ...

  2. [源码解析]为什么mapPartition比map更高效

    [源码解析]为什么mapPartition比map更高效 目录 [源码解析]为什么mapPartition比map更高效 0x00 摘要 0x01 map vs mapPartition 1.1 ma ...

  3. VPS用来配置上网外,还可以做一个同步盘

    我曾经在一个活动的博文里说过,男人必须要有一个VPS和一个树莓派,VPS这个东西,以后会是中国男人的一种必备技能,今天又有一个小伙伴请教我VPS的用法,我就简单说说我目前使用的情况.首先我希望你能有点 ...

  4. Redis还可以做哪些事?

    在上一篇文章中,讲到了redis五大基本数据类型的使用场景,除了string,hash,list,set,zset之外,redis还提供了一些其他的数据结构(当然,严格意义上也不算数据结构),一起来看 ...

  5. PDF解析记录——Pdfbox

    此文仅作记录[嫌放电脑里碍事-_-],内容为以前收集的一小段代码.   下面为pdf获取文本的简要代码片段: private string GetPDFText(string filename) { ...

  6. SAP 打印自动导出PDF本地文件(自己做的例子)

    smartforms导出PDF: 常用函数有: convert_otfconvert_otfspooljob_2_pdfconvert_abapspooljob_2_pdfCONVERT_OTF_2_ ...

  7. 为什么位运算可以实现加法(1、 不考虑进位的情况下位运算符中的异或^可以表示+号)(2、 位运算符中的与运算符&和左移运算符<<可以模拟加法中的进位)(3、位运算不仅可以做加法,还可以做其它的乘法减法等:计算机本质是二进制运算)

    为什么位运算可以实现加法(1. 不考虑进位的情况下位运算符中的异或^可以表示+号)(2. 位运算符中的与运算符&和左移运算符<<可以模拟加法中的进位)(3.位运算不仅可以做加法,还 ...

  8. 除了Web和Node,JavaScript还能做什么

    前言 提起JavaScript,我们也许经常会想到的是,可以用来写Web页面嘛,又或者,会想起Node.js 这个服务端环境,搞前后端同构. 那么,除此之外, JavaScript还可以做什么?   ...

  9. PDF转任意格式 & 做动画效果

    1.PDF转任意格式 & 做动画效果|让PPT傻眼去吧! http://www.aiweibang.com/yuedu/6984803.html

  10. Zsh vs. Bash不完全对比解析,zsh是一种更强大的被成为“终极”的Shell

    https://www.zhihu.com/question/21418449 Mort | Zsh vs. Bash:不完全对比解析(1) 2014-10-07  bdpqlxz     Zsh和B ...

随机推荐

  1. 一位有着近 10 年 iOS 开发经验的全职爸爸如何高效管理时间?

    名字: Mindr 开发者 / 团队: Florian Vates 平台: iOS, iPadOS, Android 正在开发中 请简要介绍下这款产品 有没有发现自己总是不断推迟待办事项的通知? Mi ...

  2. Sql Server 按日统计产量

    碰到一个这样的需求,需要查询每天的产量,直接 group 是可以分出不同天的产量,但是如果当天没有生产,就会少一条那一天的记录,而不是那一天显示产量为0,这样不方便前端显示曲线. 于是找到下面的办法, ...

  3. BS架构和CS架构应用

    概述     B/S结构即浏览器和服务器结构.它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构.在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Br ...

  4. [oeasy]python0128_unicode_字符集_character_set_八卦_星座

    unicode 回忆上次内容 中国的简体和繁体汉字 字符数量都超级大 彼此还认对方为乱码   如果有一种编码所有的字符都能编进去就好了 中日韩(CJK) 欧洲拼音 梵文 阿拉伯文 卢恩字符 等等等都包 ...

  5. Win10下安装LabelImg以及使用--LabelImg

    labelImg是图片标注软件,用于数据集的制作.标注等等.下面介绍labelImg的安装过程. 我用的是anaconda,所以以anaconda prompt作为终端: 在Anaconda Prom ...

  6. Django Template层之自定义tag

    Django Template层之自定义tag by:授客 QQ:1033553122 测试环境 Win7 Django 1.11 实践 步骤1 应用根目录下,新建templatetags包目录(注意 ...

  7. for循环以及常用的遍历(迭代)用法

    for循环以及常用的遍历(迭代)用法   概念:(概念才是高楼的地基!) for循环是一个计次循环,一般运用在循环次数已知的情况下.通常适用于枚举或遍历序列,以及迭代序列中的元素. 注意*:迭代变量用 ...

  8. Jmeter固定定时器

    固定定时器(Constant Timer),每个线程在请求之间暂停相同的时间.时间单位是毫秒,1000毫秒=1秒 组件路径:线程组->右键添加->定时器->固定定时器 1.固定定时器 ...

  9. 12、SpringMVC之拦截器

    12.1.环境搭建 创建名为spring_mvc_interceptor的新module,过程参考9.1节和9.5节 12.1.1.页面请求示例 <a th:href="@{/test ...

  10. 【Mybatis + Spring】 Mybatis - Spring 结合

    环境搭建 EvBuild 软件环境准备 - MySQL 5.0 + - IDEA 2018 + - JDK1.8 + 依赖包相关 - Junit单元测试 - JDBC驱动 - Mybatis 组件 - ...