利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)

1、对语料进行分析

基本目录如下:

利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)

其中train存放的是训练集,answer存放的是测试集,具体看下train中的文件:

利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)

下面有20个文件夹,对应着20个类,我们继续看下其中的文件,以C3-Art为例:

利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)

每一篇都对应着一个txt文件,编码格式是gb18030.utf8文件夹下的是utf-8编码格式的txt文件。

其中C3-Art0001.txt的部分内容如下:

利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)

2、数据预处理

(1)将文本路径存储到相应的txt文件中

我们要使用数据,必须得获得文本以及其对应的标签,为了方便我们进行处理,首先将训练集中的txt的路径和测试集中的txt的路径分别存到相应的txt文件中,具体代码如下:

def txt_path_to_txt(): #将训练数据的txt和测试数据的txt保存在txt中 train_path = "/content/drive/My Drive/NLP/dataset/Fudan/train/" #训练数据存放位置 test_path = "/content/drive/My Drive/NLP/dataset/Fudan/answer/" #测试数据存放位置 train_txt_path = "/content/drive/My Drive/NLP/dataset/Fudan/train.txt" test_txt_path = "/content/drive/My Drive/NLP/dataset/Fudan/test.txt" train_list = os.listdir(train_path) fp1 = open(train_txt_path,"a",encoding="utf-8") fp2 = open(test_txt_path,"a",encoding="utf-8") for train_dir in train_list: for txt in glob.glob(train_path+train_dir+"/*.txt"): fp1.write(txt+"\n") fp1.close() test_list = os.listdir(test_path) for test_dir in test_list: for txt in glob.glob(test_path+test_dir+"/*.txt"): fp2.write(txt+"\n") fp2.close()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspysw.html