首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >拯救重复劳动:无代码实现 Markdown 图&表抽取

拯救重复劳动:无代码实现 Markdown 图&表抽取

原创
作者头像
colorknight
发布2025-07-16 15:29:38
发布2025-07-16 15:29:38
1410
举报
文章被收录于专栏:HuggingFistsHuggingFists

在信息爆炸的时代,数据的高效处理能力已成为衡量个人与团队效率的重要标准。Markdown 作为一种轻量级标记语言,因其简洁、易读、易写的特性而广泛应用于技术文档、博客写作以及日常笔记中。在AI时代,更是受到了LLM的青睐,成为了使用者与LLM交互的重要载体之一。

在使用Markdown格式的文件训练LLM或者搭建RAG系统时,更需要的是Markdown中的文字信息。而除此外,我们还有一些其他场景类的需求会需要获取Markdown中的表格以及图片。比如:我们希望获取Markdown中的表格信息,将这些信息整理为一个综合数据表。亦或,我们从Markdown中获取特定的人物、物品或其它图片进行知识系统的搭建。当然,按照我们现行的实际状况而言,这类数据可能更多的是存放在PDF文件中的。但我们的上一篇文章《HuggingFists: 无代码处理复杂PDF》有提到,可以将Markdown格式作为统一目标格式,其他类型的文件都转换为Markdown格式即可。

流程解读

本文我们就介绍下如何使用HuggingFists实现无代码的Markdown数据抽取。

如图所示,Markdown图/表抽取算子从前置的文件输入算子中获取所有需要抽取的Markdown文件。这些Markdown文件来自我们上一个视频的PDF转换为Markdown格式后的文件。

Markdown图/表抽取算子在对Markdown文件进行抽取后,将结果从三个端口输出,形成了三个处理分支。三个处理分支由上而下,分别是Markdown主体文件部分输出处理流程、Markdown表格数据输出处理流程以及Markdown图片数据输出处理流程。

主文件输出

Markdown主体文件输出处理流程中,输出的Markdown文件是用占位符替换了对应的表格以及图片的位置。如果希望还原会原格式,可以通过占位符的名字与表格名、图片名的映射关系进行还原。Markdown的主体文件没有做更多的处理,只是进行了简单的文本提取,然后输出到了快速结果查看端口。

表格输出

Markdown的表格处理分支处理流程最为繁琐。这主要是因为HuggingFists要求每个算子的输入/输出结构应该都是明确的,方便用户定义流程时明确算子的上下文结构。但由于Markdown文中内嵌的表结构各不相同,如果从同一个端口输出,是无法明确表结构的,所以这个端口打破了原有的设计约束,允许从该端口输出各类结构的数据集。但从HuggingFists设计界面看,该端口的输出结构没有结构描述,所以此类端口只能在后续对接特定的算子。即该端口后的第三个算子,RowSet2Text(数据集转文本)算子。该算子会将任何结构的数据集转换为一个csv或json文本。然后,在该算子后的数据集结构就清晰起来了,可以进行后续流程的编排了。在RowSet2Text算子前,还有2个算子,添加水位线和设置水位线变量算子。这两个算子属于HuggingFists中的高级技巧算子。

添加水位线算子用于在流程中添加一个数据集标记,用于完成数据流的状态同步、事务等功能。主要用于协调数据的同步性和一致性,需要详细了解的可以看文档水位线进行了解。添加水位线后,我们添加水位线变量,水位线变量是伴随着水位线在HuggingFists中一起流转的。在编排流程时,我们有很多算子输入数据集经过计算后会产生新的数据集结构,原有数据集的信息无法传递给该算子的后续算子。此时,可以使用水位线变量留存此类信息,以便在后续的算子中随时使用。这里使用水位线变量算子是为了留存数据集的名称,该名称由Markdown图/表抽取算子抽取的表名组合而成。方便后续使用该名字作为表被转换为文件时的名字。设置水位线变量算子的配置如下:

RowSet2Text算子后,会将表格转换为一个文本输出。此时,数据集不管输入的表格有多少条数据。输出时,就只有一条数据了。列添加算子会添加一个streamName列,该列的值为从水位线变量中获得的streamName变量的值,即表格的名字。

由于streamName列的名字格式内包含一些其它信息,如:markdown原文件的名字,表在文件中的序号等,当前流程将表存储为文件时,只希望用表的名字来命名,所以其它字符串信息我们需要删除。由于剪切字符串需要对字符串进行多步处理,流程中使用Python脚本算子来完成。Python算子处理好文件名后,需要将表格生成的文本以文件名进行输出。由于文件写出算子必须接受数据流类型的数据集,而当前的数据集并不符合该结构,所以流程中使用流输入转换器将当前的数据集转换为数据流结构。转换后,使用批量文件输出算子将表格文件写出到指定文件目录。供后续对表格文件分析后使用。

图片输出

Markdown图片输出处理流程最简单,直接将Markdown图/表抽取算子抽取到的图片写出到指定目录。供对图片文件进行后续处理。

结果展示

主文件结果

从上图可以看到,文件中的第三行为一个图片的占位符变量,原文档中的图片被流程抽取出来并替换为了图片名。可使用这个名字与图片实现映射还原。文件中的表名也采用了这种替换方式,限于篇幅这里就不进行展示了。

表格输出

上图展示了markdown中表格被输出为一组以.csv结尾的文件。文件中的内容为csv格式的文本。后续,可以继续编写流程将这些csv文件插入到对应的数据库表中。

图片输出

上图展示了从markdown中抽取出的图片文件列表和其中一张图片的浏览展示。由于图片文件的名字在流程中没有做特殊处理,因此从图中我们看到的图片文件的名字显的有些奇怪。如需处理,可以采用与表格处理流程相同的方式进行抽取。

结语

HuggingFists提供的无代码Markdown自动化抽取能力,简单,易用,能够帮助使用者快速完成数据的整理工作。且使得 Markdown 数据抽取不再是程序员的专属技能,而是每一个知识工作者都可以掌握的能力。它不仅提升了工作效率,更让我们能够专注于创造价值的核心工作。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 流程解读
    • 主文件输出
    • 表格输出
    • 图片输出
  • 结果展示
    • 主文件结果
    • 表格输出
    • 图片输出
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档