一、读取TXT文件中的文本TXT文件是最简单的文本格式读写TXT无需任何第三方库。Python代码先调用open函数打开TXT再调用read函数读取全部文本内容也可循环调用readline函数依次读取每行文本。比如下面代码依次读取TXT文件的每行文本并把各行文本依次添加到知识库数组knowledge中。 从文本文件读取知识库替代原数组 def load_knowledge_from_txt(file_path):knowledge []with open(file_path, “r”, encoding“utf-8”) as f:for line in f:line line.strip()if line: # 非空行才加入knowledge.append(line)return knowledge加载知识自动读 knowledge.txtknowledge load_knowledge_from_txt(“knowledge.txt”)二、兼容GBK字符集的TXT文件首先确保Python代码的同目录下存在knowledge.txt并且文件内容非空再运行上面的Python测试代码。可是Windows系统多半会报错“UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xca in position 4: invalid continuation byte”这是因为Windows系统默认把TXT文件保存为ASCII编码而非UTF-8编码。而Python代码企图以UTF-8编码打开TXT就会报编码格式不符的错误了。为了解决字符集编码冲突的问题需要改造前面的Python代码使得既支持UTF-8编码又支持GBK形式的ASCII编码。改造后的Python文件读取代码如下 从文本文件读取知识库替代原数组 def load_knowledge_from_txt(file_path):knowledge []encoding_type “utf-8”try:with open(file_path, “r”, encodingencoding_type) as f:f.readline()except:encoding_type “gbk”with open(file_path, r, encodingencoding_type) as f: for line in f: line line.strip() if line: # 非空行才加入 knowledge.append(line) return knowledge加载知识自动读 knowledge.txtknowledge load_knowledge_from_txt(“knowledge.txt”)可见上面代码先以UTF-8方式打开TXT如果遇到异常再以GBK方式打开TXT从而实现了同时兼容UTF-8与GBK的目标。三、对文本内容自动分块不过TXT文件中的文本很可能不是一句话一行字而是一段一段的文字每段都包含好几个句子那么上面代码依次调用readline函数并添加到数组每个数组元素都包含一大段文字十分臃肿。为此需要根据句号来拆分文本内容而非根据段落来拆分文本内容。基本要求如下1、读取TXT文件的所有文本内容。2、按照句号分割文本。3、每条知识设定字数下限比如不得少于50个汉字如果某条知识小于这个长度就要跟下一条知识合并。4、处理过程注意去除无效字符例如剔除空行、删除空格等等。根据上述逻辑可编写自动分块的Python测试代码如下 加载一整段 TXT 文本 def load_text(file_path):try:with open(file_path, “r”, encoding“utf-8”) as f:return f.read().strip()except:with open(file_path, “r”, encoding“gbk”) as f:return f.read().strip()读取一整段文本raw_text load_text(“knowledge.txt”) 自动把一段文字切成多段关键 def split_text(text, max_len50):sentences text.split(“。”) # 按句号分割chunks []current “”for sen in sentences: sen sen.strip() if not sen: continue # 加回去句号让语义完整 sen 。 if len(current) max_len: current sen else: if current: chunks.append(current.strip()) current sen if current: chunks.append(current.strip()) return chunks自动分块knowledge split_text(raw_text)至此初步实现了对TXT文件的读取和分块功能拆分后的每条知识仍然保存于knowledge数组后续的RAG构建及检索操作可套用之前的RAG测试代码框架。
1. 这不是又一本MLOps理论书——它是一张可展开的实操地图 “Visual Introduction to MLOps: Part 1”这个标题乍看像某门在线课程的第一页幻灯片,但如果你真点开过这类内容,大概率会遇到两种情况:一种是堆满抽象框图的PPT截图,箭…
5分钟开启AI智能分层革命:设计师的效率新纪元 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider
LayerDivider是一款基于先进AI算法的智能图像分…
5大实战技巧:用ExifToolGUI轻松解决照片元数据管理难题 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui
你是否曾为整理旅行照片时发现拍摄时间错乱而头疼?是否需要在数百张照片中批量…
更多请点击:
https://kaifayun.com
第一章:ChatGPT Plus订阅的合规性认知与服务边界界定 ChatGPT Plus 是 OpenAI 提供的付费订阅服务,其使用须严格遵循《OpenAI Terms of Use》《Acceptable Use Policy》及用户所在地的数据主权与内容监管…