Akemi

Langchain模块DataCollection组件-文件分割器splitter

2025/12/05

文档转换器transformer

文本切割、特征提取、问答转换、文档翻译、元数据标记器

文本分割

这是最基本的将文本切割为不同的文档,可以选择使用换行符、逗号、句号等进行分割

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from langchain.text_splitter import CharacterTextSplitter

text = """
人工智能作为新一轮科技革命和产业变革的核心驱动力,正在对全球经济、社会发展和人类生活产生深刻影响。
近年来,中国在人工智能领域取得了举世瞩目的成就,已成为全球人工智能发展的重要力量。
中国政府高度重视人工智能发展,先后出台了一系列政策文件。
2017年7月,国务院印发《新一代人工智能发展规划》,提出到2030年中国人工智能理论、技术与应用总体达到世界领先水平,成为世界主要人工智能创新中心。
这一规划为中国人工智能发展指明了方向。
在技术研发方面,中国在计算机视觉、语音识别、自然语言处理等领域已达到国际先进水平。
以百度、阿里巴巴、腾讯、华为为代表的科技企业,以及清华大学、北京大学、中国科学院等科研机构,在人工智能基础研究和应用创新方面取得了丰硕成果。
"""

text_splitter = CharacterTextSplitter(
separator="\n",
chunk_size=200, # 每个文本块的最大字符数
chunk_overlap=50 # 相邻文本块之间重叠的字符数量
)

texts = text_splitter.create_documents([text])
print(texts[0])

# 可见已经被切分开了
# page_content='人工智能作为新一轮科技革命和产业变革的核心驱动力,正在对全球经济、社会发展和人类生活产生深刻影响。
# 近年来,中国在人工智能领域取得了举世瞩目的成就,已成为全球人工智能发展的重要力量。
# 中国政府高度重视人工智能发展,先后出台了一系列政策文件。
# 2017年7月,国务院印发《新一代人工智能发展规划》,提出到2030年中国人工智能理论、技术与应用总体达到世界领先水平,成为世界主要人工智能创新中心。'

Doctran库(未完成

这个Doctran库是依赖于openai的,它所有的功能都需要openai的key

Doctran是一个文档转换和处理库,在文档分割中主要起以下作用:

  • 文档预处理:在分割前对文档进行清洗、格式化等预处理
  • 结构化分割:提供比简单字符分割更智能的分割策略
  • 元数据提取:在分割过程中提取和保留文档的元数据信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 需要openai的api
import json
from langchain.schema import Document
from langchain.document_transformers import DoctranPropertyExtractor

sample_text = """"""

document = [Document(page_content=sample_text)]

# 定义关心的属性
properties = [
]

property_extractor = DoctranPropertyExtractor(properties=properties)
extracted_document = await property_extractor.atransform_documents(
document,properties=properties
)

print(json.dumps(extracted_document[0].metadata,indent=2))
CATALOG
  1. 1. 文档转换器transformer
    1. 1.1. 文本分割
    2. 1.2. Doctran库(未完成