NLP实战 -中文文本分类问题:THUCNews数据集
中文文本分类问题:THUCNews数据集
1 THUCNews数据集与预处理
1.1 数据集下载
本文采用了清华NLP组提供的THUCNews新闻文本分类数据集的子集
数据下载链接:
THUCNews数据子集:https://pan.baidu.com/s/1hugrfRu 密码:qfud
1.2 数据量
该数据集使用了其中的10个分类,每个分类6500条,总共65000条新闻数据。
类别如下:
数据集共有三个文件,如下:
cnews.train.txt: 训练集(500010条)
cnews.val.txt: 验证集(50010条)
cnews.test.txt: 测试集(1000*10条)
1.3 预处理
data/cnews_loader.py为数据的预处理文件。
- read_file(): 读取文件数据;
- build_vocab(): 构建词汇表,使用字符级的表示,这一函数会将词汇表存储下来,避免每一次重复处理;
- read_vocab(): 读取上一步存储的词汇表,转换为{词:id}表示;
- read_category(): 将分类目录固定,转换为{类别: id}表示;
- to_words(): 将一条由id表示的数据重新转换为文字;
- preocess_file(): 将数据集从文字转换为固定长度的id序列表示;
- batch_iter(): 为神经网络的训练准备经过shuffle的批次的数据。
1.3.1 read_file(),读取文件数据;
在cnews.train.txt中,每一条数据包含一段文字和对应的label,也就是相应的类别category, 如下如所示:
1.3.2 build_vocab()构建词汇表
基于cnews.train.txt 训练集的数据,采用 build_vocab() 构建词汇表。添加一个 来将所有文本pad为同一长度。
1.3.2 read_vocab()读取已存储的词汇表,
read_vocab()读取已存储的词汇表,并将词汇表中的词转换为对应的数字id,并用dict形式存储。
2 特征向量化
2.1 TF-IDF
3 情感分析
4 模型搭建
4.1 CNN模型
4.2 RNN模型
5 参考
[1] https://blog.****.net/u011439796/article/details/77692621
[2] 代码: https://github.com/gaussic/text-classification-cnn-rnn/blob/master/data/cnews_loader.py