湘江之畔,秋风送爽。前不久,2024长沙·中国1024程序员节在长沙盛大举行。今年的程序员节主题为“智能应用新生态”,以科技为纽带,搭建起了一个共筑智能应用新生态的交流平台,众多技术大咖齐聚一堂,探讨智能应用的新发展。
在人潮涌动的模型与工具论坛会场中,一道熟悉的身影格外引人注目——合合信息。作为在智能文档处理领域深研多年的一员,合合信息本次在会上带来了“智能文档处理百宝箱”的三大全新工具——可视化文档解析前端TextIn ParseX、向量化acge-embedding模型、文档解析测评工具markdown_tester。
听完报告后,回家就体验了一下其中的可视化文档解析前端工具,在这里分享给大家。
一、文档版面分析与理解
在深入探讨TextIn ParseX的实践应用之前,有必要先简单讲解一下文档版面分析与理解的目的。
1.1、文档版面分析
文档版面分析是对图片或页面扫描图像上感兴趣的区域进行定位和分类的过程。其目的是让机器“看懂”文档结构,即将文档图像分割成不同类型内容的区域,并分析区域之间的关系,这是文档版面理解之前的关键步骤。从广义上讲,大多数方法可以提炼为页面分割和逻辑结构分析。
- 页面分割方法侧重于外观,并使用视觉线索将页面划分为不同的区域,最常见的是文本、图形、图像和表格。
- 逻辑结构分析侧重于为这些区域提供更细粒度的语义分类,即识别作为段落的文本区域,并将其与标题或文档标题区分开来。
1.2、文档版面理解
文档版面理解则是在版面分析的基础上,进一步对文档中的信息进行深度挖掘和语义解释。它不仅要求识别文档的物理结构,还需要理解这些结构所承载的信息内容和它们之间的逻辑关系。例如,识别出文档中的标题、摘要、正文段落以及它们之间的层级关系,理解表格中数据的排列方式和含义,或者解析图像与文本之间的关联。
二、TextIn ParseX 本地实践流程
2.1、TextIn ParseX 项目简介
就我个人目前在工作中遇到的各类业务而言,现代文档形式日益多样化,这些文档不仅包含传统的文本格式,还包括PDF、扫描件、手写文本、图片嵌入文本等多种结构,常常掺杂图像、表格、图形等非文本信息。与此同时,文档信息的冗余和噪声过滤也带来了困扰。在实际业务中,文档中关键信息常被大量冗余内容包围,比如广告、页眉页脚、参考文献等无关信息,这些噪声不仅增加了解析难度,还使得信息提取的准确性受到影响。传统的文档扫描和分析工具往往难以适用。
工欲善其事,必先利其器,TextIn ParseX项目正是在这样的背景下应运而生。该项目基于强大的智能文档处理能力,旨在设计一款工具,用于OCR或PDF解析结果的审核校对、效果测评,同时也适用于翻译软件等一系列需要可视化比对的场景。TextIn ParseX项目的开发,不仅能够提升文档解析的效率和准确性,还能有效降低技术门槛,使得非开发者用户也能轻松上手,从而极大地提高工作效率。TextIn ParseX具备以下核心特点:
- 多种扫描内容支持:能够有效处理各类图片和扫描文档,包括手机照片和截屏等。
- 多语言兼容性:支持简体中文、繁体中文、英文以及多种主流语言。
- 卓越的表格识别能力:能够准确识别各种格式的表格,包括有线表格、无线表格和密集表格,并支持合并单元格的识别与还原。
- 准确的阅读顺序还原:理解并还原文档的结构和元素排列,确保阅读顺序的准确性,适合多栏布局的学术论文、年报、业务报告、数据调研等。
- 自研文档树引擎:从语义层面提取段落的embedding值,预测标题层级关系,通过构造文档树提升检索和信息召回的效果。
2.2、下载代码与安装环境
目前合合信息团队已经将TextIn ParseX 项目开源,我们可以首先进入TextIn ParseX 项目github仓库:https://github.com/intsig-textin/parsex-frontend
复制仓库地址,并转到本地文件夹中,打开终端输入:git clone https://github.com/intsig-textin/parsex-frontend.git
如果连不上github也可以离线下载安装包后解压,导入VSCode后项目的完整结构如下所示:
项目结构是一个典型的React项目结构,其中layouts/为页面框架组件,定义页面的整体布局,modules/存储应用的状态管理逻辑,pages/为页面组件,service/则为接口服务,主要用于封装与后端API的交互逻辑。
── src/ # 源代码
│ ├── assets/ # 静态资源
│ ├── components/ # 全局通用组件
│ ├── layouts/ # 页面框架组件
│ ├── modules/ # store
│ ├── pages/ # 页面组件
│ ├── service/ # 接口服务
│ ├── utils/ # 工具函数│ └── app.ts # 入口文件
├── public/ # 静态资源
├── config/ # 配置│ ├── routes # 路由
│ └── config.* # 其他umi配置
├── .eslintrc.js # ESLint 配置
├── tsconfig.json # TypeScript 配置
├── package.json # 项目配置
└── README.md # 项目说明文件
其次在终端输入npm install -g yarn
安装yarn包管理器,安装完后可以输入yarn -v,如果出现版本号则说明已经成功安装:
然后输入yarn install
安装依赖环境:
显示以上则说明已成功安装对应依赖环境。下载好代码和安装好环境后,在终端输入命令yarn start即可启动项目:
打开网页,输入url地址127.0.0.1:10007即可进入项目。
2.3、项目配置
首次打开项目后,需要首先进入TextIn工作台申请api,点击https://www.textin.com/console/dashboard/setting
进入控制台,新建密钥:
然后将密钥中的x-ti-app-id和x-ti-secret-code复制下来
复制完后,转到刚刚之前启动的TextInParseX页面,打开高级模式:
将刚刚复制的x-ti-app-id和x-ti-secret-code分别填入指定位置,然后就可以开始使用了!
2.4、TextIn ParseX功能测评
点击左侧上传需要扫描的PDF文件,即可看到解析目录、pdf对照以及最终的解析结果如下:
首先,我们可以看到TextIn ParseX对解析结果进行了Markdown形式的渲染。这种渲染方式不仅使文档的结构更加清晰易读,还能够支持各级标题、文本和图像的有效展示。其在解析过程中还将解析出的内容按类型进行了分类。文本、图像、表格和公式等不同类型的信息会被明确标识并归档。这种分类方式不仅便于用户在海量信息中进行快速检索,直观地了解文档的层次和主要内容,快速定位所需的特定信息,提升整体工作效率。
值得注意的是,TextIn ParseX对于复杂表格和数学公式的解析能力也颇为出色。在处理复杂表格时,其能够识别表格的行列结构,并准确提取每个单元格的内容。对于数学公式的解析,ParseX能够理解并渲染各种数学表达式,使得公式的展示更加规范和清晰。
另外,TextIn ParseX还提供了非常便捷的原文对照功能,这一功能极大地提升了用户的工作效率。在PDF原文中,系统会自动标注解析出的版面元素的位置,例如文本块、表格和图像等。这种可视化的标注方式,使得用户能够直观地看到解析结果与原文之间的对应关系。
在解析结果的右侧,我们可以通过点击相应的画框,快速跳转到对应的解析结果,反之,也可以在解析结果中点击具体的内容,这样系统会自动跳转回原文的相关位置。
三、智能文档处理百宝箱
除此之外,“百宝箱”还提供了向量化模型acge_text_embedding模型(简称“acge模型”)和文档解析测评工具markdown_tester。
其中acge_text_embedding模型是一种高精度的文本向量化模型,它将海量的文本数据转化向量,使得计算机能够高效地计算文本之间的相似性。
相比于传统的预训练或微调垂直领域模型,acge模型支持在不同场景下构建通用分类模型、提升长文档信息抽取精度,且应用成本相对较低,可帮助大模型在多个行业中快速创造价值,为构建新质生产力提供强有力的技术支持。
而markdown_tester能够针对表格、段落、标题、阅读顺序以及公式等关键指标进行定量测评,并提供直观的雷达图展示结果。这样,开发者就可以直观地看到文本识别、解析和翻译的效果,从而便捷地评估产品性能。
总的来讲,智能文档处理“百宝箱”通过细分数据处理任务,有效解决了各类文档解析与知识管理的难点问题,在知识库开发、智能文档抽取、大模型预训练语料与数据治理快速入库、文档翻译等多个专业场景中展现出了广泛的应用潜力。
如需了解更多文档处理权益,欢迎点击活动链接,加入交流社群,随时获得最新资讯及福利。