LangChain——HTML文本分割 & 多种文本分割

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 inst
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值