建设网站需要哪些条件上海原单外贸一条街

张小明 2026/3/2 23:06:54
建设网站需要哪些条件,上海原单外贸一条街,网站开发用的那些语言,搞个网站要多少钱一、任务概述 RAG#xff08;检索增强生成#xff09;中的文本数据切割是将原始文本按照特定策略分解为更小、更易处理的片段#xff08;chunk#xff09;的过程。其核心目标是优化检索效率与问答准确性#xff0c;使大语言模型能更精准地获取相关上下文信息。 二、背景 随…一、任务概述RAG检索增强生成中的文本数据切割是将原始文本按照特定策略分解为更小、更易处理的片段chunk的过程。其核心目标是优化检索效率与问答准确性使大语言模型能更精准地获取相关上下文信息。二、背景随着自然语言处理技术的发展RAG系统被广泛应用于知识问答、信息检索等场景。原始文本通常具有长度长、结构复杂的特点直接输入模型会导致超出模型上下文窗口限制关键信息被稀释检索精度下降生成回答时上下文关联断裂因此合理的文本切割成为RAG系统性能优化的关键环节。三、在RAG流程中的定位在RAG系统完整流程中文本数据切割属于知识预处理阶段的核心环节具体位置如下数据采集获取原始文本/文档→文本切割当前任务→文本嵌入将切割后的片段转换为向量→向量存储存入向量数据库→检索阶段根据用户查询匹配相关片段→生成阶段结合检索结果生成回答文本切割是连接原始数据与后续向量处理的桥梁直接影响整个RAG系统的效果。四、作用提升检索效率更小的片段减少检索比对的数据量加快响应速度增强匹配精度主题更聚焦的片段能提高与查询的相关性匹配优化上下文利用符合模型窗口限制的片段能被更充分地用于生成回答保留语义完整性合理的切割策略可最大程度保留文本内在逻辑关系五、主要切割方式及实现1. 通用递归字符切割基于标点符号和换行符等自然分隔符进行递归分割适用于无结构化文本。fromlangchain_text_splittersimportRecursiveCharacterTextSplitterwithopen(rF:\python测试\智谱-langchain\测试数据\test.txt,encodingutf8)asf:text_dataf.read() chunk_size块的最大大小其中大小由length_function决定 chunk_overlap数据块之间的目标重叠。重叠数据块有助于在数据块之间划分上下文时减少信息丢失。 length_function确定块大小的函数。 is_separator_regex分隔符列表是否应解释为正则表达式。 # 递归切割器# 默认的分隔符[\n\n, \n, , ]text_splitterRecursiveCharacterTextSplitter(chunk_size100,chunk_overlap20,length_functionlen,is_separator_regexFalse,separators[\n\n,\n,.,?,!,。,,,,,, ])# chunks_list text_splitter.split_documents([text_data])chunks_listtext_splitter.create_documents([text_data])print(len(chunks_list))print(chunks_list[0])print(--------------------------)print(chunks_list[1])特点实现简单处理速度快支持多语言标点符号可通过调整chunk_size和chunk_overlap控制切割粒度适合处理无明显结构的纯文本2. 基于语义的智能切割利用文本嵌入计算句子间语义相似度在语义断点处分割保留语义完整性。importosfromlangchain_community.embeddingsimportBaichuanTextEmbeddingsfromlangchain_experimental.text_splitterimportSemanticChunker# 1. 环境配置与初始化# 设置百川API密钥用于生成文本嵌入os.environ[BAICHUAN_API_KEY]sk-732b2b80be7bd800cb3a1dbc330722b4# 初始化百川文本嵌入模型embeddingsBaichuanTextEmbeddings()# 读取待分割的文本数据withopen(test.txt,encodingutf8)asf:text_dataf.read()print(*80)print(原始文本长度:,len(text_data))print(*80)# ------------------------------------------------------------------------------# 模式1: percentile百分位模式- 最常用# 核心逻辑计算所有相邻句子嵌入的相似度取N百分位作为阈值# 当相邻句子相似度低于该百分位阈值时视为语义断点# 参数说明# - breakpoint_threshold: 百分位数值0-100默认20# ------------------------------------------------------------------------------print(\n【模式1】breakpoint_threshold_typepercentile百分位模式)print(模式说明基于相邻句子相似度的百分位设定断点适合大多数场景)text_splitter_percentileSemanticChunker(embeddingsembeddings,breakpoint_threshold_typepercentile,breakpoint_threshold20# 默认值可调整值越大分割越细)docs_percentiletext_splitter_percentile.create_documents([text_data])print(f分割后文档数量:{len(docs_percentile)})print(f第1段内容:\n{docs_percentile[0].page_content[:500]}...ifdocs_percentileelse无分割结果)print(-*60)# ------------------------------------------------------------------------------# 模式2: standard_deviation标准差模式# 核心逻辑以所有相邻句子相似度的均值 ± N倍标准差作为阈值# 当相似度低于均值 - N*标准差时视为断点默认N1# ------------------------------------------------------------------------------print(\n【模式2】breakpoint_threshold_typestandard_deviation标准差模式)print(模式说明基于相似度分布的标准差设定断点适合数据分布较均匀的文本)text_splitter_stdSemanticChunker(embeddingsembeddings,breakpoint_threshold_typestandard_deviation,breakpoint_threshold1# 默认值可调整)docs_stdtext_splitter_std.create_documents([text_data])print(f分割后文档数量:{len(docs_std)})print(f第1段内容:\n{docs_std[0].page_content[:500]}...ifdocs_stdelse无分割结果)print(-*60)# ------------------------------------------------------------------------------# 模式3: interquartile四分位模式# 核心逻辑基于四分位距IQR计算阈值鲁棒性更强抗异常值# 阈值 第一四分位数Q1 - N*IQR默认N1.5# ------------------------------------------------------------------------------print(\n【模式3】breakpoint_threshold_typeinterquartile四分位模式)print(模式说明基于四分位距设定断点抗异常值干扰适合噪声较大的文本)text_splitter_iqrSemanticChunker(embeddingsembeddings,breakpoint_threshold_typeinterquartile,breakpoint_threshold1.5# 默认值可调整)docs_iqrtext_splitter_iqr.create_documents([text_data])print(f分割后文档数量:{len(docs_iqr)})print(f第1段内容:\n{docs_iqr[0].page_content[:500]}...ifdocs_iqrelse无分割结果)print(*80)特点基于语义相似度分割保留完整语义单元提供三种分割模式适应不同文本特性依赖嵌入模型处理成本相对较高适合对语义连贯性要求高的场景3. 基于标题结构的切割HTML文档切割利用HTML中的标题标签h1-h6进行层级分割保留文档原生结构。fromlangchain_text_splittersimportRecursiveCharacterTextSplitter,HTMLHeaderTextSplitter html_string !DOCTYPE html html body div h1Foo/h1 pSome intro text about Foo./p div h2Bar main section/h2 pSome intro text about Bar./p h3Bar subsection 1/h3 pSome text about the first subtopic of Bar./p h3Bar subsection 2/h3 pSome text about the second subtopic of Bar./p /div div h2Baz/h2 pSome text about Baz/p /div br pSome concluding text about Foo/p /div /body /html label_split[# 定义章节的结构(h1,大章节 1),(h2,小节 2),(h3,章节中的小点 3),]html_splitterHTMLHeaderTextSplitter(label_split)docs_listhtml_splitter.split_text(html_string)print(切割之后的结果: -------------------)print(docs_list)label_split_2[# 定义章节的结构(h1,大章节),(h2,小节),(h3,章节中的小点),(h4,小点中的子节点),]html_splitterHTMLHeaderTextSplitter(label_split_2)docs_listhtml_splitter.split_text_from_url(https://plato.stanford.edu/entries/goedel/)print(docs_list[0])print(--------------------)print(总共有多少个docs ,len(docs_list))print(--------------------------------)print(docs_list[1])# 由于章节的内容太多可以切两次# 默认的分隔符[\n\n, \n, , ]text_splitterRecursiveCharacterTextSplitter(chunk_size600,chunk_overlap20,# 长度函数length_functionlen,# 默认是len# 是否使用正则表达式is_separator_regexFalse,# 分隔符separators[\n\n,\n,.,?,!,。,,,,,, ])docs2_listtext_splitter.split_documents(docs_list)print(---------------------------------)print(总共有多少个docs ,len(docs2_list),\n)print(---------------------------------)print(docs2_list[1],\n)Markdown文档切割针对Markdown的标题语法#、##、###等进行结构化分割。fromlangchain_text_splittersimportRecursiveCharacterTextSplitter,MarkdownHeaderTextSplitterwithopen(rF:\python测试\智谱-langchain\测试数据\Foo.md,encodingutf8)asf:text_dataf.read()label_split[(#,大章节),(##,小节),(###,小点)]# strip_headers 是否在内容中删除章节的标题markdown_splitterMarkdownHeaderTextSplitter(label_split,strip_headersFalse)docs_listmarkdown_splitter.split_text(text_data)print(docs_list)特点保留文档原生结构信息可通过label_split定义多级标题映射支持直接从URL读取HTML内容进行分割适合处理结构化文档如技术文档、博客文章等六、组合切割策略对于长文档可采用多级切割策略先使用标题分割器按文档结构切割为大章节再使用递归字符分割器对过长章节进行二次分割如上述HTML切割示例中的二次处理七、总结不同切割方式适用于不同场景结构化文档HTML/Markdown优先使用标题分割器非结构化文本可选择递归字符分割器对语义连贯性要求高的场景如长文档理解推荐使用语义分割器实际应用中需根据文档类型、长度及业务需求选择合适的切割策略与参数以达到最佳的RAG系统性能。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设怎么用长尾做标题甜品网站设计论文

FSNotes终极指南:简单高效的跨平台笔记管理解决方案 【免费下载链接】fsnotes Notes manager for macOS/iOS 项目地址: https://gitcode.com/gh_mirrors/fs/fsnotes 还在为笔记管理而烦恼吗?FSNotes为您提供完整的笔记管理体验!这款专…

张小明 2026/1/22 12:08:38 网站建设

网站app 开发西安到北京火车时刻表查询

novelWriter是一款专业的开源小说写作软件,专为长篇创作而生。无论你是初次尝试写作的新手,还是经验丰富的作家,这款工具都能让你的创作过程更加流畅高效。 【免费下载链接】novelWriter novelWriter is an open source plain text editor de…

张小明 2026/1/22 12:08:07 网站建设

网站设计成手机阳江招聘网的拼音

在数字内容创作领域,3D资产制作一直是制约游戏开发效率的关键瓶颈。传统制作流程中,美术师需要在十余个专业软件间反复切换,一个中等复杂度的角色模型从概念设计到最终绑定动画往往需要数周时间。腾讯混元3D-Part的出现,通过七大A…

张小明 2026/1/22 12:07:36 网站建设

口碑好的东莞网站建设苏州关键词优化公司

你是不是也遇到过这样的困扰?在Windows上精心设计的PDF文档,到了macOS上字体就变得乱七八糟,或者在Linux服务器上生成的PDF总是缺少某些特殊字符?😫 作为一名开发者,PDF跨平台兼容性问题确实让人头疼不已&a…

张小明 2026/1/22 12:07:05 网站建设

企业网站备案需要网站搭建说明

tf.nn.relu 核心解析 tf.nn.relu 是 TensorFlow 中实现 ReLU(Rectified Linear Unit,修正线性单元) 激活函数的核心接口,也是深度学习中最常用的激活函数之一,核心作用是为神经网络引入非线性,解决线性模型…

张小明 2026/1/22 12:06:34 网站建设

如何宣传网站百度一下 你就知道官网 新闻

终极指南:如何使用abogen快速制作专业级有声书和字幕 【免费下载链接】abogen Generate audiobooks from EPUBs, PDFs and text with synchronized captions. 项目地址: https://gitcode.com/GitHub_Trending/ab/abogen 想要将电子书、PDF文档快速转换为带同…

张小明 2026/1/22 12:06:00 网站建设