首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏#大模型热点基础知识

    什么是RAG文档切分策略?

    这正是RAG(检索增强生成)系统中文档切分的魔力所在。RAG系统通过将大文档切分成小块(chunk),让计算机能在海量信息中精准定位用户问题的答案。 文档切分策略,就是解决这个平衡问题的关键艺术。在RAG系统中,文档切分不只是简单的"砍一刀",它直接影响检索的准确性和生成答案的质量。 二、什么是RAG文档切分策略RAG文档切分策略是将大型文档分割成适合检索和生成的小块(chunks)的方法论。 三、RAG文档切分策略如何工作文档切分策略主要包含三种核心方法,每种都有其独特的工作机制和适用场景。 未来可能出现"切分-嵌入"联合训练的端到端模型。跨文档chunk关联:当前的切分局限在单个文档内,但用户问题常需跨文档回答。

    26920编辑于 2026-04-02
  • 来自专栏自然语言处理

    【RAG入门教程04】Langchian的文档切分

    在 Langchain 中,文档转换器是一种在将文档提供给其他 Langchain 组件之前对其进行处理的工具。 通过清理、处理和转换文档,这些工具可确保 LLM 和其他 Langchain 组件以优化其性能的格式接收数据。 上一章我们了解了文档加载器,加载完文档之后还需要对文档进行转换。 文本分割器 集成 Text Splitters 文本分割器专门用于将文本文档分割成更小、更易于管理的单元。 理想情况下,这些块应该是句子或段落,以便理解文本中的上下文和关系。 它可以返回单个分块或将具有相同元数据的元素组合在一起,以保持语义分组并保留文档的结构上下文。此拆分器可与分块管道中的其他文本拆分器结合使用。

    1.3K10编辑于 2024-06-10
  • 来自专栏Java架构师必看

    水平切分与垂直切分

    数据库优化无非水平切分与垂直切分! 1.水平.就是按记录分.

    93030发布于 2021-03-22
  • 来自专栏ClearSeve

    MFC窗口切分

    在主窗体,OnCreateClient重载该函数 动态切分 在OnCreateClient函数中使用CSplitterWnd 对象进行窗口切分 动态切分不可>2行|列 BOOL CreateStatic ( CWnd* pParentWnd, int nMaxRows, //切分的行数 int nMaxCols, //切分的列数 SIZE sizeMin, // CSplitterWnd::CreateStatic 进行切分窗口 CSplitterWnd::CreateView 对切分好的窗口创建视图 CSplitterWnd::IdFromRowCol 在已切分窗口进行再切分 (在CreateStatic指定需要在切分的行|列,并将父类修改为上次切分的对象地址) m_wndAgainSplitter.CreateStatic(&m_wndSplitter,2,2,WS_CHILD |WS_VISIBLE,m_wndSplitter.IdFromRowCol(1,0)); MFC应用程序, 单文档视图, 勾选掉视图/文档选项

    1.4K40编辑于 2022-02-11
  • 【详解】Mycat读写分离+垂直切分+水平切分+er分片+全局表

    垂直切分2.1 概述垂直切分是指将不同的表或业务模块拆分到不同的数据库中,以减少单个数据库的压力。Mycat支持通过配置​​schema​​和​​table​​来实现垂直切分。 水平切分3.1 概述水平切分是指将同一张表的数据拆分到多个数据库中,以分散数据存储压力。Mycat支持通过配置分片规则来实现水平切分。 垂直切分:将用户信息和订单信息分别存储在不同的数据库中。水平切分:将订单信息按用户ID进行切分,存储在不同的分片中。ER 分片:确保相关联的数据存储在同一分片中。 垂直切分垂直切分是将不同的表或表的一部分分配到不同的数据库中,以减少单个数据库的压力。 水平切分水平切分是将同一个表的数据按照某种规则(如哈希、范围等)分散到多个数据库中。

    32410编辑于 2025-09-08
  • 来自专栏从零开始的Code生活

    切分木棒(DFS)(BFS)

    题目 假设要把长度为 n 厘米的木棒切分为 1 厘米长的小段,但是 1 根木棒只能由 1 人切分,当木棒被切分为 3 段后,可以同时由 3 个人分别切分木棒(图 2)。 求最多有 m 个人时,最少要切分几次。譬如 n = 8,m= 3 时如图所示,切分 4 次就可以了。

    58320编辑于 2022-01-13
  • 来自专栏性能与架构

    数据库数据切分

    垂直切分 将数据库想象成由很多个一大块一大块的“数据块”(表)组成,垂直地将这些“数据块”切开,然后把它们分散到多台数据库主机上面 优点 (1)数据库的拆分简单明了,拆分规则明确 (2)应用程序模块清晰明确 (3)数据维护方便易行,容易定位 缺点 (1)部分表关联无法在数据库级别完成,要在程序中完成 (2)对于访问极其频繁且数据量超大的表仍然存在性能瓶颈,不一定能满足要求 (3)事务处理复杂 (4)切分达到一定程度之后 ,扩展性会受到限制 (5)过度切分可能会带来系统过于复杂而难以维护 水平切分 将某个访问极其频繁的表再按照某个字段的某种规则分散到多个表中,每个表包含一部分数据 优点 (1)表关联基本能够在数据库端全部完成 (2)不会存在某些超大型数据量和高负载的表遇到瓶颈的问题 (3)应用程序端整体架构改动相对较少 (4)事务处理相对简单 (5)只要切分规则能够定义好,基本上较难遇到扩展性限制 缺点 (1)切分规则相对复杂 ,很难抽象出一个能够满足整个数据库的切分规则 (2)后期数据的维护难度有所增加,人为手工定位数据更困难 (3)应用系统各模块耦合度较高,可能会对后面数据的迁移拆分造成一定的困难

    1.1K50发布于 2018-04-02
  • 来自专栏AIGC大模型应用

    解密RAG文档解析与知识切分(Chunking)的核心挑战

    实战干货:编程严选网 1 开源解析和拆分文档 第三方工具去对文件解析拆分,提取文件内容,并将文档内容拆分成一个小chunk。 1.1 优势 支持丰富的文档类型 每种文档多样化选择 与开源框架无缝集成 但有时效果很差,内容跟原文件差别大。 2 PDF格式多样性 复杂多变的文档格式,提高解析效果困难。 3 复杂文档格式解析问题 文档内容质量很大程度影响最终效果,文档处理涉及问题: 3.1 内容不完整 对文档的内容提取时,可能发现提取出的文档内容会被截断。 3.3 文档格式 像常见PDF md文件,需要去支持把这些各类型的文档格式的文件都给提取。 3,4 边界场景 代码块还有单元格这些,都是我们去解析一个复杂文档格式中会遇到的一些问题。 4 PDF内容提取流程 5 为啥解析文档后,要做知识片段拆分?

    55600编辑于 2025-06-07
  • 来自专栏desperate633

    LintCode 单词切分题目分析

    题目 给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词。 样例 给出 s = "lintcode" dict = ["lint","code"] 返回 true 因为"lintcode"可以被空格切分成"lint code" 分析 这道题算动态规划里比较复杂的 下面来分析具体的算法思路: dp[i]:表示前i个字符能不能被完整的切分,要么为true,要么为false. 假设判断到了第i个字符,我们还要在内部用一个循环判断,从1到i 个字符,在哪个地方可以被切分,这个循环变量用j表示,那么dp[i]为true的条件是,dp[i-j]为true,且后面s.subString { return true; } int maxLength = getMaxLength(dict); //前i个字符能不能切分

    63120发布于 2018-08-22
  • 来自专栏后台技术底层理解

    spark分区与任务切分

    我们都知道在spark中,RDD是其基本的抽象数据集,其中每个RDD由多个Partition组成。在job的运行期间,参与运算的Parttion数据分布在多台机器中,进行并行计算,所以分区是计算大数据量的措施。

    2.2K20发布于 2020-08-04
  • 来自专栏IT技术精选文摘

    HBase Region自动切分细节

    HBase系统中Region自动切分是如何实现的,这里面涉及很多知识点,比如Region切分的触发条件是什么、Region切分切分点在哪里、如何切分才能最大的保证Region的可用性、如何做好切分过程中的异常处理 ConstantSizeRegionSplitPolicy'} Region切分准备工作:寻找Splitpoint region切分策略会触发region切分切分开始之后的第一件事是寻找切分点-splitpoint Region核心切分流程 HBase将整个切分过程包装成了一个事务,意图能够保证切分事务的原子性。 ,即要么切分完全成功,要么切分完全未开始,在任何情况下也不能出现切分只完成一半的情况。 Region切分对其它模块的影响通过region切分流程的了解,我们知道整个region切分过程并没有涉及数据的移动,所以切分成本本身并不是很高,可以很快完成。

    2.4K71发布于 2018-01-30
  • 来自专栏飞总聊IT

    Python实用技巧大任务切分

    今天来说说,Python 中的任务切分。以爬虫为例,从一个存 url 的 txt 文件中,读取其内容,我们会获取一个 url 列表。我们把这一个 url 列表称为大任务。 列表切分 在不考虑内存占用的情况下,我们对上面的大任务进行一个切分。比如我们将大任务切分成的小任务是每秒最多只访问5个URL。 生成器切分 # -*- coding: utf-8 -*- # @时间 : 2019-11-23 23:47 # @作者 : 陈祥安 # @文件名 : g.py # @公众号: Python学习开发 ,这里我们每次切分出含有5个元素的生成器,因为生成器没有__len__方法所以,我们将其转为列表,然后判断列表是否为空,就可以知道迭代是否该结束了。 下面就和大家讨论,异步生成器切分的问题 异步生成器切分 首先先来看一个简单的异步生成器。

    75030发布于 2019-12-02
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    Sqoop切分数据的思想概况

    Sqoop通过--split-by指定切分的字段,--m设置mapper的数量。通过这两个参数分解生成m个where子句,进行分段查询。 因此sqoop的split可以理解为where子句的切分。 第一步,获取切分字段的MIN()和MAX() 为了根据mapper的个数切分table,sqoop首先会执行一个sql,用于获取table中该字段的最小值和最大值,源码片段为org.apache.sqoop.mapreduce.DataDrivenImportJob 第二步,根据MIN和MAX不同的类型采用不同的切分方式 支持有Date,Text,Float,Integer,Boolean,NText,BigDecimal等等。 复杂的是字符串这种类型,最简单的方式就是m小于26的时候,比如2,那么按照开头字母就可以切分,[A,M),[M,Z].但是对于hello,helaa这种就只能到第四个字母才能切分了。

    1.5K50发布于 2018-01-17
  • 来自专栏坚毅的PHP

    startup script和cronolog日志切分

    lamp/ruby/railscook/opensource/0596527314/i_0596527314_chp_13_sect_6.html 安装cronolog cronolog是个简单的日志切分插件 ,常见的经典应用就是切分apache的单个庞大日志,按日期保存 安装: ----------------------------------------------------------------

    1.4K60发布于 2018-03-20
  • 来自专栏reizhi

    Machete Lite 视频切分工具

      博主用过的视频切分工具不少,比如UltraVideoSplitter或者Boilsoft Video Splitter等。 但不知是不是打开方式不对,总有半数以上的视频切分之后音频流或者视频流损坏,又或者关键帧分割错误导致开头结尾处有少量马赛克。这次在用过Machete Lite之后感觉不错,特与大家分享。   此软件lite版本为精简版,仅支持AVI和WMV视频格式切分,不过对于博主而言完全足够,便不去找什么和谐版了。   此时按5标记切分起点,继续使用2预览直到确定终点,按3或4跳到最近关键帧。此时按6标记切分终点,最后按7进行保存。   由于切分仅仅是对视频进行重新封装,所以速度很快,也不会影响到画质。

    67240编辑于 2022-09-26
  • 来自专栏坚毅的PHP

    python日志按时间切分-----TimedRotatingFileHandler

    原生loggging类+ TimedRotatingFileHandler类 实现按day hour second 切分 原生loggging类+ TimedRotatingFileHandler类 实现按day hour second 切分 import logging from logging.handlers import TimedRotatingFileHandler log = logging.getLogger TimedRotatingFileHandler(BASIC_LOG_PATH + filename, "S", 1, 10) fileTimeHandler.suffix = "%Y%m%d.log" #设置 切分后日志文件名的时间格式

    3.8K60发布于 2018-03-20
  • 来自专栏编程大道

    关于切分字符串split

    有好几次想切分字符串都没有成功,也没有找到原因 是这样的字符串:aaa|bbb|ccc|ddd。 用的是竖线来隔开的,之前切分的是这样的:aaa;bbb;ccc;ddd。 这样的字符串直接这样 String[] resArr=res.split(";"); 来切分就成功了,可是像用“|”来隔开的字符串,用同样的方法行不通。 我又尝试了一下别的字符分割,看用别的符号隔开字符串时切分,会不会也遇到这种问题。 果然当我用英文圆点“.”时,和竖线一样也不成功,同样还有其他,例如:“$”、“[”等符号。试了好多目前就发现这几个。 自己摸索着用了下面的方法解决了问题,就是在切分的时候把符号转义,加两个撇就可以了。 ,照样可以切分成功。

    74920发布于 2019-07-15
  • 来自专栏日积月累1024

    用shell切分文件--split

    下面记录下基本用法: split [-bl] file [prefix] 参数说明: -b, --bytes=SIZE :对 file 进行切分,每个小文件大小为 SIZE 。 -l, --lines=NUMBER :对 file 进行切分,每个文件有 NUMBER 行。 prefix:分割后产生的文件名前缀。 示例: 假设要切分的文件为test.2012-08-16_17,大小1.2M,12081行。

    2.9K10发布于 2020-12-07
  • 来自专栏TechBlog

    PyTorch: 张量的拼接、切分、索引

    文章目录 一、张量拼接与切分 1.1 torch.cat 1.2 torch.stack 1.3 torch.chunk 1.4 torch.split 二、张量索引 2.1 torch.index_select 2.2 torch.masked_select 一、张量拼接与切分 1.1 torch.cat 功能:将张量按维度dim 进行拼接 tensors : 张量序列 dim: 要拼接的维度 input : 要切分的张量 chunks 要切分的份数 dim 要切分的维度 code # cut into 3 a = torch.ones((2, 7)) # 7 list_of_tensors torch.Size([2, 1]) 1.4 torch.split torch.split(Tensor, split_size_or_sections, dim) 功能:将张量按维度 dim 进行切分 返回值:张量列表 tensor : 要切分的张量 split_size_or_sections 为 int 时,表示 每一份的长度;为 list 时,按 list 元素切分 dim 要切分的维度 code

    1.8K30编辑于 2022-11-12
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    Spark Stage切分 源码剖析——DAGScheduler

    Spark中的任务管理是很重要的内容,可以说想要理解Spark的计算流程,就必须对它的任务的切分有一定的了解。 不然你就看不懂Spark UI,看不懂Spark UI就无法去做优化...因此本篇就从源码的角度说说其中的一部分,Stage的切分——DAG图的创建 先说说概念 在Spark中有几个维度的概念: 应用 当产品经理有什么需求时,会找一下项目经理,给它一份需求文档。项目经理根据需求文档,按照业务拆分成不同的模块,然后以模块为单位分配给程序员。 partitions.toArray, callSite, waiter, SerializationUtils.clone(properties))) ... } job的切分

    1.6K80发布于 2018-01-17
领券