准确高效的TextIn文档解析:一项开发痛点的解决方案

举报
bdi洲 发表于 2024/05/21 19:59:19 2024/05/21
【摘要】 准确高效的TextIn文档解析:一项开发痛点的解决方案

一、写在前面的话

最近接到一项需求(咨询),计划是做企业级的知识库问答,将相关业务的现有数据、材料做清洗整合,建立数据库,通过问答工具提高业务部门的工作效率。

对现有的开源方法做了一些调研后,笔者发现开发工作在流程第一步就比较难顺畅推进。原因在于,需求方的重要数据有很大一部分来自还没完全实现无纸化办公的环境,以扫描档居多,也包含一部分手写批注或修正,而结合现有的开源工具,自研开发难度相当高。在此分享一下调研过程中的收获。

二、还得是专业的长文档解析

长文档解析并不是一项产生时间很久的需求。在大模型应用进入市场之前,传统的智能文字处理工具已经能满足C端用户的大部分阅读、编辑需求。此前,OCR主要用于处理单页发票、卡、证等,长文档识别缺乏应用场景。

随着LLM在过去一年中的快速发展,我们逐渐发掘AI在处理大量信息内容并提取、总结、帮助分析方面强大的优势,对长文档做高效、准确解析的需求很快浮现。笔者进行调研的基础正是处理长篇且版面复杂的PDF文件。

首先,笔者考虑的是大家通常使用的开源工具,能够支持电子档PDF的提取,但也发现PyPDF2等工具对中文的支持不太理想,距离企业需求的准确度仍有比较大的差距。而结合一些可订阅的OCR工具,例如一些大厂的云服务,一定程度上满足了扫描文件识别要求,但依旧产生两个问题:

1、OCR识别的耗时较长,在处理长文档时体验感不佳;
2、从技术原理来说,OCR返回的信息是文本与相应坐标,一般按行输出字符内容,缺少序列与段落信息,更难以应对有线甚至无线表格、多栏文档这样的复杂板式。

88e700b641eefb15b4ba55c6756276ce_d0b0f7a6e68b4ad1ade9f3fa0383225e.png

总体来说,要基于现有方法实现解析文档的需求,自研难度较大,难以实现理想的速度、泛化能力和兼容性,而如果使用大量数据标注做模型训练,又会需要相当高的成本与漫长的开发周期。因此,笔者测试了目前市场上专业的文档解析产品,并发现一款能解决痛点的产品:合合信息TextIn平台的文档解析。

这款产品能提供PDF转Markdown服务,测试下来速度也令人满意,处理100页左右的长文档,能在3s以内输出结果。这是笔者比较过的好几款市面上的产品中速度最快的,有一些产品20页以内的文档需要几十秒处理时间,在效率和体验感差异巨大。

笔者也通过TextIn平台与合合信息的技术人员简单交流了文档解析的技术使用,根据他们的内部测试,在同一批数据上,使用同样的Prompt给到大模型做信息抽取,比较纯OCR和markdown格式输出的差异,发现Markdown格式的抽取准确率要高于纯OCR输出不少。

这也是比较好理解的,我们知道在LLM训练时,大家一般会采用Markdown格式作为训练语料,而同格式的输入对大模型来说较为友好。笔者在测试后发现:要加快问答产品的研发周期,还得是专业的长文档解析。

三、使用TextIn文档解析工具增强LLM问答

分享几个测试案例。主要是一开始用大模型自带解析无法正确应答的,在用TextIn文档解析后做了二次尝试。

笔者上传一份技术专业文件扫描档,并向Kimi提出一个检索式内容问题,回答为文本内容不包含。而同样的文本,经过文档解析转换后,提出一样的问题,Kimi能够准确回答

6eee63c926ed2f454076ac0a14910721_ec5a2e97baa44528aa2fc36ab70e9ffd.png

在扫描原文件中,可以对结果进行验证。

94b816ed5e5b1b1fd79d3f9c6b51d806_2ac83b2479ac465aaad6f4a94a146969.png

在海螺AI,笔者测试了两份含表格文件。第一份为公司文件。

03a61a11aae3d2ca29f27699ace7a8ac_df6292d6f7584817872542fcc2bb82c0.png

3465cd587f829307ae9a7862a14a8f39_1cd65c10d78a414cbcdc78b98681931a.png

针对扫描档,海螺回复内容为空。由于海螺暂时不支持Markdown格式,将文档解析输出结果手动转为txt格式,能正确给出答案,且指明了位置。

回到原文件,也可以方便地定位到信息。

b9287b1195b21962883f52ccfc70cd36_bb138bed5a514815b0252bb522cb4fa0.png

第二份为财报文件。
629cc84906e3efbdbe62f6d56583974a_aa806e63c44743f082b9b329275bd96a.png
2d90c0c3ec3ba09e9476748a8dcda5f0_d1e35277141248908f1494c1710654c1.png
3e5fef636885b35af83eec088aa8fd47_71f3b2dbd06649a9834710fca638ba23.png

同样地,经由文档解析后,大模型的答复得到显著提升。

TextIn这款产品符合开发知识库问答需要的几大要素:快速解析、高准确度与良好的兼容性,解决了当前开发过程中的痛点。

四、试用方式

分享一下TextIn文档解析的使用方式,希望能给与笔者遇到类似困难的开发者提供一些思路。同时,笔者注册的时候发现这款产品现在正处于内测阶段,平台给每位开发者提供每周7000页的额度福利,有需要的C站朋友也可以通过“合研社”公众号领取。

产品官网链接:https://www.textin.com/market/detail/pdf_to_markdown

文档解析产品在TextIn平台,第一次使用需要注册账号,速度也很快,点击页面上的“免费体验”就可以试用了。
对开发者来说,如果需要用代码调用,也有对应的接口文档内容
https://www.textin.com/document/pdf_to_markdown

平台提供了一个Playground,帮开发者们预先调试接口。
669b2271f3ef7208e603e610c4e43e88_75a9d036eb524d95bbd87d882120631a.png
7e5b5452a3e68e9da864fc448e819ad9_7c78637ad66d4762953af44c4a89e885.png

简单配置一些接口参数,发起调用后,就能查看调用结果。

如果想用python调用,既可以参考平台上的通用示例代码,也可以通过公众号“合研社”,联系合合技术团队,获得更全面的demo代码。

开始试用👉TextIn平台

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。