许多公开的NLP标准数据集都是以.txt文本的形式进行存储的,即每一条语料存储为一个txt文本,标签为.txt文本所在的文件夹名称,如谭松波老师的酒店评论语料以及THUCNews新闻分类集合,为了读取数据的方便,我们通常把所有的文本存储于一个.csv文件中,这里记录一个实现将THUCNews新闻分类数据集整合到一个.csv文件中的方法。
1、文件结构
2、预期目标
生成一个.csv格式的文件,其中一行代表一条语句,共有两列,一列为文本内容review,另一列为分类class,在这里就对应二级文件夹的名称。
3、实现代码
import os
import csv
def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
#root返回当前目录路径;dirs返回当前路径下所有子目录;files返回当前路径下所有非目录子文件
return root,dirs,files
fieldnames=['review','class']
if __name__=='__main__':
csv_file=open("./merge.csv",'a+',newline='',encoding='utf-8')
writer=csv.DictWriter(csv_file,fieldnames=fieldnames)
writer.writeheader()
file_dir = "E:/SmartTravelling/Code_bert_zhihu/THUCNews/THUCNews"
root_0,dirs_0,_ = file_name(file_dir)
for dir_0 in dirs_0:
curdir=root_0+'/'+dir_0
root_1,_,files= file_name(curdir)
for line in files:
line=root_1+'/'+line
data=''
for temp in open(line, 'r',encoding="utf-8").readlines():
if temp !='/n':
data+= temp.strip()
writer.writerow({'review':data,'class':dir_0})
csv_file.close()