递归字符文本分割器是最常用的文本分割器,在LangChain中通过RecursiveCharacterTextSplitter类实现,本文介绍的是其在中文场景下更友好的版本ChineseRecursiveTextSplitter,其实现在Langchain-Chatchat项目工程下。 两者的工作流程和目标是相同的,即指定一个块长度和一组分隔符,根据分隔符的优先顺序对文本进行预分隔,然后将小...
2.12 ChineseTextSplitter : Langchian-chatchat封装 2.13 zh_title_enhance:标题增强 3 如何确定最佳块大小 4 文本重叠对准确率的提升 5 参考文献 在上一篇【悟乙己:大模型RAG 场景、数据、应用难点与解决(四)】提到了RAG中文档数据不够干净,召回效果也不会好,同时在第2点提到了Langchian-Chatchat中提及到的一...
chinese_recursive_text_splitter.py 1 change: 1 addition & 0 deletions1text_splitter/__init__.py Original file line numberDiff line numberDiff line change @@ -1,3 +1,4 @@ from.chinese_text_splitterimportChineseTextSplitter from.ali_text_splitterimportAliTextSplitter ...
常用的文本分割器为 RecursiveCharacterTextSplitter,可以通过 separators 指定分隔符。其先通过第一个分隔...
texts = text_splitter.create_documents([texts]) print(texts[0].page_content) # 3)入库检索,官方使用的Pinecone,他提供一个后台管理界面 | 用户需求太大,不好用了已经,一直加载中... import pinecone from langchain.vectorstores import Pinecone pinecone...
RecursiveCharacterTextSplitter(): 按字符串分割文本,递归地尝试按不同的分隔符进行分割文本。 CharacterTextSplitter(): 按字符来分割文本。 MarkdownHeaderTextSplitter(): 基于指定的标题来分割markdown 文件。 TokenTextSplitter():按token来分割文本。 SentenceTransformersTokenTextSplitter():按token来分割文本 Language...
from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain import OpenAI # openAI的Key os.environ["OPENAI_API_KEY"] = '***' # 谷歌搜索的Key os.environ["SERPAPI_API_KEY"] = '***' # 导入文本 loader = UnstructuredFile...
(data)}')# 初始化加载器 # chunk_size每个分片的最大大小,chunk_overlap分片之间的覆盖大小,可以保持连贯性 text_splitter=RecursiveCharacterTextSplitter(chunk_size=100,chunk_overlap=0)# 切割加载的 document split_docs=text_splitter.split_documents(data)print("split_docs size:",len(split_docs),type(...
AliTextSplitter ChineseRecursiveTextSplitter ChineseTextSplitter 借用chatchat项目中的test/custom_splitter/test_different_splitter.py来看看一起调用make_text_splitter函数: from langchain import document_loaders from server.knowledge_base.utils import make_text_splitter ...
在文本分割这个任务中,LangChain 支持了多种分割方式,例如按字符数的 CharacterTextSplitter,针对 Markdown 文档的 MarkdownTextSplitter,以及利用递归方法的 RecursiveCharacterTextSplitter,当然你也可以通过继成 TextSplitter 父类来实现自定义的 split_text 方法,例如在中文文档中,我们可以采用按每句话中的标点符号进行...