(图片来源网络,侵删)
如何对文档进行分割,其实是数据处理中最核心的一步,其往往决定了检索系统的下限但是,如何选择分割方式,往往具有很强的业务相关性——针对不同的业务、不同的源数据,往往需要设定个性化的文档分割方式LangChain 提供多种文档分割方式,区别在怎么确定块与块之间的边界、块由哪些字符/token组成、以及如何测量块大小Recursive(RecursiveCharacterTextSplitter): 根据用户定义的字符递归分割文本,保持相关文本在一起这是推荐的初始分割方式HTML/Markdown(HTMLTextSplitter/MarkdownTextSplitter): 根据 HTML/Markdown 特定字符分割(如 ##、---等)并添加元数据标记文本来源Code(CodeTextSplitter): 根据编程语言(Python、JS 等 15 种)特定字符分割代码文本Token(TokenTextSplitter): 根据 token 分割文本,可选择不同的 token 度量方式Character(CharacterTextSplitter): 根据用户定义的字符(如逗号)分割文本,较为简单[实验性]Semantic Chunker(SemanticChunker): 首先按句子分割,然后将语义相似的句子组合在一起AI21 Semantic Text Splitter(AI21TextSplitter): 识别不同主题形成的连贯文本块,并在这些块之间分割添加元数据标记文本来源通常建议从 RecursiveCharacterTextSplitter 递归分割器开始尝试#头条创作挑战赛#
0 评论