使用4种不同的库切割文本
jieba库实现切割文本# 颗粒度较小,可以按词语划分,但会出现冗余情况
# -*- coding: utf-8 -*-
import jieba
# 打开文件并读取文本内容
with open("9000字文本.txt", "r", encoding="GB2312") as file:
text = file.read()
print("/".join(jieba.lcut(text))) # 精简模式,返回一个列表类型的结果
# print("/".join(jieba.lcut(seg_str, cut_all=True))) # 全模式,使用 'cut_all=True' 指定
# print("/".join(jieba.lcut_for_search(seg_str))) # 搜索引擎模式
langchain text splitters库实现切割文本
from langchain_text_splitters import RecursiveCharacterTextSplitter
# 使用with open语句打开文件并读取内容
with open("9000字文本.txt", "r", encoding="GB2312") as file:
text = file.read()
# 创建按字符递归拆分器实例
# 默认分隔符列表是 ["\n\n", "\n", " ", ""], 可根据需要调整
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000,# 每个文本块的目标大小
chunk_overlap=200,# 重叠字符数,以保持上下文
length_function=len,
is_separator_regex=False
)
# 使用递归字符拆分器对文本进行切割
texts = text_splitter.create_documents()
# 打印拆分后的文本块
for i, text_chunk in enumerate(texts):
print(f"Text chunk {i+1} content:\n{text_chunk}\n")
NLTK库实现切割文本
# 颗粒度较大,只能按句子划分
import nltk
# 确保已经下载了nltk的tokenizers
nltk.download('punkt')
# 使用with open语句打开文件
with open("9000字文本.txt", "r", encoding="GB2312") as file:# 确保使用正确的文件编码
paragraph = file.read()
# 使用nltk的word_tokenize进行分词
words_list = nltk.word_tokenize(paragraph)
# 打印分词结果
print(words_list)
pySBD库实现.py
# 颗粒度较大,只能按句子划分
from pysbd import Segmenter
# 创建一个Segmenter实例
segmenter = Segmenter()
# 打开文件并逐行读取
with open("9000字文本.txt", "r", encoding="GB2312") as file:# 确保使用正确的文件编码
full_text = file.read()
# 使用Segmenter对整个文本进行句子分割
sentences = segmenter.segment(full_text)
# 打印分割后的句子列表
for i, sentence in enumerate(sentences, start=1):
print(f"Sentence {i}: {sentence}")
页:
[1]