当前位置: 首页 > news >正文

上海化工网站建设德州鲁企动力网站优化中心

上海化工网站建设,德州鲁企动力网站优化中心,上海网站排名优化,好网站建设公司哪家好Text Splitters 文本分割器 加载文档后,您通常会想要对其进行转换以更好地适合您的应用程序。最简单的例子是,您可能希望将长文档分割成更小的块,以适合模型的上下文窗口。 LangChain 有许多内置的文档转换器,可以轻松地拆分、组…

Text Splitters 文本分割器

加载文档后,您通常会想要对其进行转换以更好地适合您的应用程序。最简单的例子是,您可能希望将长文档分割成更小的块,以适合模型的上下文窗口。 LangChain 有许多内置的文档转换器,可以轻松地拆分、组合、过滤和以其他方式操作文档。
当您想要处理长文本时,有必要将该文本分割成块。这听起来很简单,但这里存在很多潜在的复杂性。理想情况下,您希望将语义相关的文本片段保留在一起。 “语义相关”的含义可能取决于文本的类型。本笔记本展示了实现此目的的几种方法。
在较高层面上,文本分割器的工作原理如下:

  • 将文本分成小的、具有语义意义的块(通常是句子)。
  • 开始将这些小块组合成一个更大的块,直到达到一定的大小(通过某些函数测量)。
  • 一旦达到该大小,请将该块设为自己的文本片段,然后开始创建具有一些重叠的新文本块(以保持块之间的上下文)。

HTMLHeaderTextSplitter

“MarkdownHeaderTextSplitter”、“HTMLHeaderTextSplitter”是一个“结构感知”分块器,它在元素级别拆分文本,并为每个与任何给定块“相关”的标题添加元数据。它可以逐个元素返回块,或者将元素与相同的元数据组合起来,目的是 (a) 保持相关文本在语义上(或多或少)分组,以及 (b) 保留文档结构中编码的上下文丰富的信息。它可以与其他文本分割器一起使用,作为分块管道的一部分。

from langchain_community.document_loaders import TextLoader# 将网页加载出来
loader = TextLoader("./html/Animation-system.html",encoding="utf8")
doc = loader.load()# 标题标签
headers_to_split_on = [("h1", "Header 1"),("h2", "Header 2"),("h3", "Header 3"),
]# pip install -qU langchain-text-splitters
# 按照标题标签分割
from langchain_text_splitters import HTMLHeaderTextSplitter
html_splitter = HTMLHeaderTextSplitter(headers_to_split_on=headers_to_split_on)
html_header_splits = html_splitter.split_text(doc[0].page_content)

按照字符分割

from langchain_text_splitters import CharacterTextSplitter# 分割的规则
text_splitter = CharacterTextSplitter(separator="\n\n",chunk_size=100,chunk_overlap=10,length_function=len,is_separator_regex=False,
)
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import CharacterTextSplitterloader = TextLoader("./txt/faq-4359.txt",encoding="utf8")
doc = loader.load()text_splitter = CharacterTextSplitter(separator="\n\n",chunk_size=100,chunk_overlap=10,length_function=len,is_separator_regex=False,
)texts = text_splitter.create_documents([doc[0].page_content])
print(texts)#[Document(page_content='一、什么是0分期利息\n\n您好,“0分期利息”是指买家使用花呗、招行掌上生活、工行信用卡、银联信用卡等其他分期购物时无需支付分期利息的功能,分期利息由华为商城承担。'), Document(page_content='注:自2023年起,商城将相关宣传将“免息”调整为“0分期利息”,主要基于中国银保监会、中国人民银行《关于进一步促进信用卡业务规范健康发展的通知》(银保监规〔2022〕13号),要求“银行业金融机构应当在分期业务合同(协议)首页和业务办理页面以明显方式展示分期业务可能产生的所有息费项目、年化利率水平和息费计算方式。向客户展示分期业务收取的资金使用成本时,应当统一采用利息形式,并明确相应的计息规则,不得采用手续费等形式,法律法规另有规定的除外。”'), Document(page_content='二、可以参与0分期利息活动的商品\n\n商城目前仅支持部分单品参与0分期利息,若多商品(含不支持0分期利息)合并支付则不支持0分期利息,以支付页面为准,后续会逐渐开放更多商品,敬请关注。'), Document(page_content='三、确认订...

Split code拆分代码

CodeTextSplitter 允许您使用支持的多种语言拆分代码。导入枚举 Language 并指定语言。

from langchain_text_splitters import (Language,RecursiveCharacterTextSplitter,
)
#可以拆分的语言
#['cpp', 'go', 'java', 'kotlin', 'js', 'ts', 'php', 'proto', 'python', 'rst', 'ruby', 'rust', 'scala', 'swift',...]# 以JS 为例
RecursiveCharacterTextSplitter.get_separators_for_language(Language.JS)
#JS以函数作为分类
#['\nfunction ', '\nconst ', '\nlet ', '\nvar ', '\nclass ', '\nif ', '\nfor ', '\nwhile ', '\nswitch ', '\ncase ', '\ndefault ', '\n\n', '\n', ' ', '']

举例

#加载js文档
loader = TextLoader("./js/main.js",encoding="utf8")
doc = loader.load()
# 指定拆分规则
js_splitter = RecursiveCharacterTextSplitter.from_language(language=Language.JS, chunk_size=250, chunk_overlap=20
)
# 拆分
js_docs = js_splitter.create_documents([doc[0].page_content])

Markdown 文本分割器

许多聊天或问答应用程序都涉及在嵌入和矢量存储之前对输入文档进行分块。
如前所述,分块通常旨在将具有共同上下文的文本放在一起。考虑到这一点,我们可能希望特别尊重文档本身的结构。例如,Markdown 文件是按标题组织的。在特定标头组中创建块是一个直观的想法。为了解决这个挑战,我们可以使用 MarkdownHeaderTextSplitter 。这将按一组指定的标头拆分 Markdown 文件。

from langchain_text_splitters import MarkdownHeaderTextSplitter
# 加载md文档
loader = TextLoader("./txt/stable_diffusion.md",encoding="utf8")
doc = loader.load()headers_to_split_on = [("#", "Header 1"),("##", "Header 2"),("###", "Header 3"),
]markdown_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on)
# strip_headers用于确定是否删除Markdown标题中的前导空格和尾随空格。
# markdown_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on,strip_headers=False)
md_header_splits = markdown_splitter.split_text(doc[0].page_content)
http://www.yayakq.cn/news/863905/

相关文章:

  • 做类似淘宝网站多少钱泉州自助建站
  • 四川省建设局网站网站开发可以开发哪些
  • 免费 网站阿里云免费服务器
  • 个人做理财网站好wordpress 路径中文乱码
  • 花店网站建设个人小结网站权重的重要性
  • 求网站2021给个网址网架生产公司
  • 做a视频网站有哪些企业网站建设公司名称
  • 临汾建设局官方网站移动商城网站开发选择
  • 学院网站建设开题报告清空网站空间
  • 支付招聘网站套餐费用怎么做帐微网站建设代运营
  • 邢台市桥西住房建设局网站网络推销
  • 网站域名实名证明广西新宇建设项目有限公司网站
  • 企业形象网站建设意义自适应网站模版
  • 电商网站建设应用找合伙人做网站
  • asp网站源码破解社区网站建设公司
  • 国外视觉差网站深圳有做网站的吗
  • 做网站流量要钱吗做微商怎样加入网站卖东西赚钱
  • 免费的网站软件正能量推荐腾讯中国联通
  • 济南企业建站怎么样成立一个公司需要多少钱
  • 外贸没有公司 如何做企业网站wordpress正版主题
  • 松原建设小学网站wordpress 数据表插件
  • 关于做网站的文献综述装修网十大平台排行榜
  • 西部数码网站管理助手2优设网设计服务平台
  • 南川网站建设好多商城app
  • 网站开发实习总结logo设计网站在线
  • 网站建设所需物资阿里云免费服务器
  • 行业网站特点顺义区专业网站制作网站建设
  • 做网站需要多少钱 都包括什么APP做网站
  • 看网站用什么软件论坛网站 备案
  • 青岛建站模板制作企业建设网站的步骤是什么意思