spring-ai-alibaba 迭代字符分割器

TextSplitter

spring-ai有一个文本分割器接口,TextSplitter

spring-ai本身仅提供了一个TokenTextSplitter,按照token个数进行切分

但是这样的切分策略很容易在段落或句子中间断开,造成语义的割裂,很难保持语义完整性

SentenceSplitter

spring-ai-alibaba为了解决这个问题,提供了一个SentenceSplitter

不过该切分器是使用opennlp的SentenceModel进行句子切分,底层是一个训练好的拆分句子的模型,像是一个黑盒,并不容易理解

RecursiveCharacterTextSplitter

最近,spring-ai-alibaba新增了一个RecursiveCharacterTextSplitter,迭代字符文本分割器

该分割器的逻辑也很容易理解,就是维护一个分隔符列表,首先使用第一个分隔符进行分割,如果文本大小不满足要求,就继续用下一个分隔符进行分割,直到分隔符用完,就按设置的文本大小进行分割

相比于英文中,句号和小数点共用,中文有自己专用的句号,使用句号进行分割不容易失误,更适合中文环境下使用

默认分隔符列表是{ "\n\n", "\n", "。", "!", "?", ";", ",", " " },代表双换行符、单换行符、中文句号、中文叹号、中文问号、中文分号、中文逗号、空格

代码调用

java 复制代码
        List<Document> documents = ...
		RecursiveCharacterTextSplitter splitter = new RecursiveCharacterTextSplitter();
		documents = splitter.split(documents);

调用方法很简单,new 一个 RecursiveCharacterTextSplitter,然后调用split方法即可

默认文本块大小为1024,支持自定义分隔符列表

ps:该类目前还未发布到中央仓库,使用需自行编译打包,或等待新版本(>1.0,0,2)

相关推荐
小牛壮士10 分钟前
经典神经网络之LetNet
人工智能·深度学习·神经网络
趁早折枝13 分钟前
从零搭建 OpenCV 项目(新手向)-- 第二天 OpenCV图像预处理(一)
人工智能·opencv·计算机视觉
霍格沃兹测试开发13 分钟前
拖拽搭建AI应用!Dify保姆级教程,小白秒变AI工程师
人工智能
几维安全21 分钟前
突发限制下的破局之路:国产之光 Lynx 重构 AI 开发安全壁垒
人工智能·安全·重构
蚊子爱喝水26 分钟前
HUAWEI Pura80系列机型参数对比
人工智能·华为
上海生物发酵展33 分钟前
无锡市亨达电机盛装亮相 2025上海生物发酵展引关注
大数据·人工智能·科技·自动化·制造
程序员是干活的37 分钟前
高级 JAVA 工程师卷 1
java·大数据·前端·数据库·人工智能
旭日东升的xu.1 小时前
OpenCV(03)插值方法,边缘填充,透视变换,水印制作,噪点消除
人工智能·opencv·计算机视觉
AI新视界1 小时前
AI赋能DBA:数据库管理与运维的智能化工具全景解析
数据库·人工智能·dba
艾醒(AiXing-w)1 小时前
探索大语言模型(LLM):提升 RAG 性能的全方位优化策略
人工智能·语言模型·自然语言处理