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)

相关推荐
居7然1 小时前
解锁AI大模型:Prompt工程全面解析
人工智能·prompt·提示词
思通数据5 小时前
AI视频监控:重构安防行业智能化新生态
人工智能·安全·目标检测·机器学习·计算机视觉·重构·数据挖掘
萤丰信息5 小时前
智慧工地从工具叠加到全要素重构的核心引擎
java·大数据·人工智能·重构·智慧城市·智慧工地
riveting5 小时前
明远智睿SSD2351:以技术突破重构嵌入式市场格局
大数据·人工智能·重构·边缘计算·嵌入式开发·智能交通
计算机sci论文精选6 小时前
CVPR2025敲门砖丨机器人结合多模态+时空Transformer直冲高分,让你的论文不再灌水
人工智能·科技·深度学习·机器人·transformer·cvpr
XIAO·宝7 小时前
机器学习----绪论
人工智能·机器学习
41号学员7 小时前
机器学习绪论
人工智能·机器学习
华清远见成都中心7 小时前
基于深度学习的异常检测算法在时间序列数据中的应用
人工智能·深度学习·算法
一车小面包8 小时前
机器学习中数据集的划分难点及实现
人工智能·深度学习·机器学习
R-G-B10 小时前
【P27 4-8】OpenCV Python——Mat类、深拷贝(clone、copyTo、copy)、浅拷贝,原理讲解与示例代码
人工智能·python·opencv·浅拷贝·深拷贝·opencv python·mat类