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)

相关推荐
海宇数据14 小时前
零信任架构实战:基于海宇身份证OCR构建自动化证照采集网关
人工智能·架构·自动化·ocr
一只桃子~14 小时前
Ai大模型数据标注与质检评测面试题
人工智能
枯木◊靠推文躺平版14 小时前
2026企业AI办公工具选型全指南
大数据·人工智能
地理探险家14 小时前
图片中的目标如何定位和计数?从数据检查到模型预测的完整实践
人工智能·深度学习·数据集
东方芷兰14 小时前
Agent 技术摘要 03 —— 基座模型、推理模型、Flash、联邦学习、分布式机器学习
人工智能·分布式·机器学习
reasonsummer14 小时前
【办公类-200-01】20260820课题的查重报告比例(AI写结题报告+人工插图+PaperYY免费查重(标红文字修改:口语化)+知网查重结果对比)
人工智能·aigc·知网查重·paperyy
xianghongtao011614 小时前
Deloitte_2026_GenZ_Millennial_CSDN_解读
人工智能
天远数科14 小时前
零信任架构实战:基于天远股权穿透构建自动化供应商准入合规网关
大数据·人工智能·架构·自动化
KKKLWX14 小时前
@电气自动化人,2026年湖北省厅电子信息、计算机、自动化、电气职称申报开始
人工智能
mit6.82414 小时前
古法编程->用Agent
人工智能