news 2026/7/10 23:40:03

网安研途智能体:基于数据治理与Dify平台的垂直领域RAG智能体研发实践与优化 数据治理 基于python脚本的文本分割

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网安研途智能体:基于数据治理与Dify平台的垂直领域RAG智能体研发实践与优化 数据治理 基于python脚本的文本分割

二 数据治理

2.4基于python脚本的文本分割

由于Dify直接文本分割功能对单个文件的大小限制为15MB,部分文件因超出该限制而无法上传。为此,我采用更具灵活性与可控性的替代方案:基于 Python 脚本实现自定义文本分割。首先将资料按种类与时间划分为四类进行存储(如图 2-4 所示)。接下来将详细阐述数据标准化与结构化方案、Chunking 策略的设计思路,分析其对检索效果的影响,并探讨后续优化方向。

图2-4 文件结构

元数据字段采用 JSON 格式定义,示例如下:

{

"category": "vulnerability_mining", // 类别英文标识

"category_cn": "漏洞挖掘", // 类别中文名称

"year": "2024", // 发表年份

"section": "Abstract", // 所属章节

"char_count": 685, // 字符数

"source_file": "paper1.pdf", // 来源文件

"title": "Title of the Paper" // 论文标题

}

在数据标准化环节,年份信息优先从文件夹路径中提取;章节名称则通过映射规则将非标准表述(如“1. Introduction”)统一为标准名称(如“Introduction”)。文本清洗流程包括:移除页码和页眉页脚、标准化空白字符、过滤过短段落、保留数学公式中的特殊符号(如Σ,∫,→)。具体操作步骤如下:

1. 原始文本提取:使用 PyMuPDF 工具库提取 PDF 文档所有页面的文本内容。

2. 空白字符标准化:将连续的多个空格、换行符、制表符统一替换为单个空格。

3. 段落过滤:剔除字符数少于 20 的段落,以去除无效或噪声内容。

4. 特殊符号保留:确保数学公式中常用的特殊符号不被清洗或转义。

针对章节的识别与提取,设计了专门的识别策略。首先构建章节模式库,覆盖学术论文的常见章节标题(如Abstract、Introduction、Related Work 等)。采用多模式正则表达式匹配章节标题,并记录每个标题在文档中的起始位置。基于位置信息对全文进行切分,提取各章节对应的文本片段。最后对提取出的标题进行标准化映射,使非标准标题(如“1. Introduction”)统一转换为标准名称。经过上述处理,各章节内容与论文级别的元数据形成结构化关联,为后续检索与分析奠定基础。

文本分割策略采用章节感知的语义分割方法,其核心设计思路为:首先按章节边界进行切分,以保持语义单元的完整性;继而在章节内部引入滑动窗口机制,合理控制文本块大小;最后在句子边界处完成精细切分,确保语义连贯性。

为阐明该策略的优越性,我对几种常见分割方法进行了对比分析:

(1)固定长度分割:按固定字符数切分,不考虑语义边界。其优势在于实现简单、块大小均匀且处理速度快,但缺点显著:可能切在单词或句子中间,导致语义完整性差、句子碎片化。

(2)按标题递归分割:依据章节标题递归切分,章节内可进一步细分。该方法语义完整性高、符合文档逻辑结构,但存在文本块大小不均、可能产生超大块的问题,且依赖明确的标题标记,实现复杂度较高。

(3)语义分割:基于语义相似度在低相似处切分。该策略语义完整性最高、话题转换明确,但需要嵌入模型计算,处理速度慢,且块大小不可控,需调优阈值。

相较之下,章节感知的语义分割策略具有以下突出优势:

1. 平衡性最佳:在语义完整性与文本块大小可控性之间取得良好平衡;

2. 专为学术论文设计:充分考虑论文的章节结构特点,贴合实际应用场景;

3. 实现复杂度适中:无需嵌入计算,仅依赖文档结构信息;

4. 处理速度较快:具备线性时间复杂度,适合大规模处理;

5. 语义连贯性好:在句子边界处切分,有效避免语义割裂。

Chunking 策略对检索效果具有显著影响,其关键参数的选择直接决定了知识库的质量与下游任务的性能。以下从 Chunk 大小、重叠窗口、语义边界及章节信息保留四个维度展开分析,并结合实际应用给出优化建议。

对于Chunk大小,过小的 Chunk(< 300字符)易导致上下文信息不足、背景缺失,检索结果呈现碎片化。这会降低检索相关性,生成回答时需多次检索拼凑信息,难以提供完整答案。过大的 Chunk(> 1500字符)时,单个块内可能混杂多个话题,噪声信息增多,相似度计算精度下降。这会造成检索噪声大、相关性排序不准,同时显著增加 Token 消耗。因此最佳范围应该为500-800字符,该区间能够容纳完整上下文,保持话题相对单一,检索准确性高,兼顾了信息密度与语义完整性。

对于Chunk重叠,若无重叠,则可能导致信息可能被切断、边界信息丢失等问题,继而产生检索时可能遗漏信息、生成回答时缺少关键信息等影响;若是过大的重叠(> 300字符),则会导致信息冗余、检索结果重复、Token消耗大等问题,从而产生检索效率低和成本高等影响。因此最佳重叠应为100-200字符,可以保证信息连续性、避免信息丢失和冗余可控。

对于语义边界,当前策略采用在句子边界切分,优势为句子完整、语义清晰、便于阅读理解、生成回答时句子连贯;若是在单词中间切分(按固定长度),则会产生单词被切断、句子不完整和影响理解等问题;若是在段落边界切分,虽然可以使得语义完整性最高且符合自然阅读习惯,却会产生段落可能很长以及超出最大chunk大小限制等问题。

另外,如果保留章节信息,则可以在检索时可按章节筛选、理解上下文位置和区分不同类型的陈述,可以便于检索筛选(如只查询Method章节)、回答生成(区分方法描述和实验结果)和引用定位(快速定位到相关章节)。

基于上述分析,最终确定采用以下参数配置:Chunk大小设置为700字符,Chunk重叠大小设置为150字符。按资料类别统计的Chunk数量分别为:LLM安全9924个、漏洞挖掘11576个、漏洞修复2974个、其他4216个,总计28690个文本块。

总之,当前策略具备以下优势:

(1)平衡性良好:在语义完整性与块大小可控性之间取得合理折中;

(2)贴合学术论文结构:充分考虑论文的章节组织特点,适配性强;

(3)实现复杂度适中:处理流程具备线性时间复杂度,执行效率高;

(4)实际效果已验证:应用于检索任务时表现良好,满足预期需求。

同时,该策略亦存在若干局限:

(1)Chunk大小固定:未根据章节重要性或内容密度动态调整块长度;

(2)重叠策略单一:采用固定重叠值,未结合文本复杂度进行自适应调节;

(3)章节识别依赖预定义模式:需预先构建章节模式库,对新文档结构的泛化能力有限。

针对上述局限的优化方案将在后续“未来展望”部分详细阐述。此外,完整的数据处理代码已整理为可复用脚本,随本报告一并提交,以便后续学习、验证与进一步改进。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 23:39:48

鸿蒙应用开发:@Computed 装饰器详解与实战

文章目录一、引言二、Computed 装饰器简介核心特点使用限制三、基础使用示例四、进阶场景&#xff1a;复杂计算与列表渲染五、什么时候用 Computed&#xff1f;六、总结一、引言 在鸿蒙&#xff08;HarmonyOS&#xff09;应用开发中&#xff0c;状态管理是构建响应式 UI 的核心…

作者头像 李华
网站建设 2026/7/10 23:38:53

【AVRCP】规范精讲[40]:属性请求截断,单条歌曲信息如何适配MTU限制

用过车载蓝牙听歌的朋友,可能遇到过这种情况:点击一首歌曲,车机上只显示了歌名和歌手,专辑封面、流派、时长等信息全是空的,或者直接显示“信息缺失”。很多人以为是手机没传全数据,其实这背后藏着AVRCP里一个极易被忽略的细节——GetItemAttributes命令的MTU截断机制。 …

作者头像 李华
网站建设 2026/7/10 23:37:24

ft_engine性能优化秘籍:3个技巧让您的应用在Linux桌面飞起来

ft_engine性能优化秘籍&#xff1a;3个技巧让您的应用在Linux桌面飞起来 【免费下载链接】ft_engine ft_engine is contains modules window display and window management, providing the core capabilities of the Windows engine 项目地址: https://gitcode.com/openeule…

作者头像 李华
网站建设 2026/7/10 23:35:18

Cocos Creator游戏提审避坑指南:性能优化、内存管理与平台兼容性实战

1. 项目概述&#xff1a;当游戏提审成为一场“渡劫”在游戏开发圈子里&#xff0c;尤其是中小团队和独立开发者&#xff0c;最让人血压飙升的时刻&#xff0c;莫过于看到应用商店后台弹出那条冰冷的“审核未通过”通知。你熬了几个通宵&#xff0c;修复了无数Bug&#xff0c;满…

作者头像 李华
网站建设 2026/7/10 23:34:42

XUnity自动翻译器完整指南:如何让任何Unity游戏秒变中文版

XUnity自动翻译器完整指南&#xff1a;如何让任何Unity游戏秒变中文版 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏而烦恼吗&#xff1f;XUnity自动翻译器是你的终极解决方案&#xff0…

作者头像 李华