使用load_dataset加载txt数据集时遇UnicodeDecodeError求助
解决load_dataset加载txt文件时的UnicodeDecodeError问题
你的错误根源是txt文件编码不是默认的UTF-8,错误信息里的0x92字节是Windows-1252编码中的单引号字符,无法被UTF-8解码器识别,进而触发了DatasetGenerationError。
以下是几种可行的解决方法:
1. 直接指定文件编码加载
在load_dataset中通过encoding参数指定文件的实际编码,优先尝试Windows-1252:
from datasets import load_dataset path = r'myfile.txt' test = load_dataset("text", data_files=path, encoding="Windows-1252")
如果Windows-1252不生效,可以尝试gbk、cp1252等常见编码。
2. 检测文件的实际编码
如果不确定文件编码,使用chardet库检测:
首先安装依赖:
pip install chardet
然后执行检测代码:
import chardet with open(path, 'rb') as f: encoding_result = chardet.detect(f.read()) print(encoding_result['encoding']) # 输出检测到的编码
将检测结果填入load_dataset的encoding参数即可。
3. 转换文件为UTF-8编码
如果希望一劳永逸,将文件转换为UTF-8格式:
with open(path, 'r', encoding='Windows-1252') as src_file: content = src_file.read() with open('myfile_utf8.txt', 'w', encoding='utf-8') as dst_file: dst_file.write(content)
之后加载转换后的myfile_utf8.txt就不会出现编码问题。
内容的提问来源于stack exchange,提问作者CitrusBoy
相关产品推荐
相关产品推荐

