首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >拯救重复劳动:无代码实现 Markdown文本抽取与切分

拯救重复劳动:无代码实现 Markdown文本抽取与切分

原创
作者头像
colorknight
发布2025-07-29 16:29:04
发布2025-07-29 16:29:04
2270
举报

自2022年11月ChatGPT 3.5发布以来,距今已快三年。这两年多来,LLM概念从最初的引人关注到现在的深入人心,获得了巨大的发展。无论组织还是个人都希望利用LLM激活磁盘中经年累月积攒下的文件数据的价值以及提升应用的效率。

RAG(检索增强生成)无疑是目前利用LLM技术激活文件数据价值的最佳方案。其主要技术思想是,将文件中的数据抽取并合理切分后,转换为向量存储在拥有向量检索能力的数据库中。当有使用者提出问题时,将问题转换为向量并从向量库中检索出与问题相关的文档块信息。在对所有文档块信息进行适当排序整理后,连同问题一起交给LLM,由LLM依据文本块信息来回答使用者的问题。

在这个技术方案中,如果要获得好的应用效果,首先需要文件数据块拥有较高的切分质量,即数据块中的数据尽量自然内聚,语义明确。否则,在进行向量匹配时,匹配到的文本块与问题的相关度不高或噪音过多,都无法通过LLM归纳获得高质量的回答。

那么,如何切分文档能获得明确语义的文本块呢?按照文档的章节切分是一个不错的选择。因为,任何文档的章节内的文本都是语义集中且明确的。现行主流的文档格式DOC、PDF、Markdown等都有章节的编辑功能,但由于DOC、PDF这类文件的格式结构复杂,章节信息不易提取;而Markdown为纯文本结构,章节信息容易提取。故建议将所有其它类型的结构文件都统一转为Markdown结构后再进行文本抽取和切分。

下面,我们就介绍下如何使用HuggingFists系统无代码实现Markdown中数据的抽取与切分。

流程解读

如图所示,Markdown章节拆分算子对前置算子输入的Markdown格式的文档按照章节进行拆分。Markdown章节拆分算子前的文件输入算子用于从文件系统中输入需要处理的Markdown文件;由于每个数据流只能被读取一次,图中的流程使用了两个Markdown章节拆分算子,意味着要对数据流读取两次。故而使用了流复制算子,用于对数据流进行复制。而后的两个Markdown章节拆分算子分别在两种参数状态下对文件进行拆分,一个拆分设置了块大小为-1,一个设置了块大小为500。Markdown章节拆分算子的属性含义如下:

  • 块大小:缺省值为-1,表示按照章节标题进行自然的拆分抽取。若该值不等于-1,表示按照设置的块大小和自然章节一起拆分文本块。当一个章节特别大,或Markdown文件中没有章节信息时,该块大小可有效补充文本拆分的特殊情况。
  • 块重叠值:缺省值为0,表示文本块之间不留重叠部分。当该值不为0时,文本块会在块前指定长度的前块数据。以便拆分文本块时可以保留上下两个文本块可能存在的语义连贯性。

下面我们看一下流程的执行结果。

结果展示

章节拆分

章节+分块拆分

从上面的2张图可以看到,Markdown章节拆分算子的输出结果集包括:Markdown文件名、拆分后的文本块、以及章节的路径信息。在只按章节拆分的结果中,我们可以看到每个章节被抽到了1个文本块中。而在按章节+分块的结果中,我们可以看到,文本块比较大的章节按照块大小的设置,被拆分为了多个小的文本块。

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

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

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

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

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