Chinese news classification based on TextCNN 基于TextCNN的中文新闻分类 数据结构大作业
输入python run.py <指令>可以进行程序的功能调用,其中—help可以调出帮助界面(Figure 1)。
-t或—task,任务,代表所要程序进行的任务,可以输入的范围在{train, test, webtest}之中。train表示进行模型训练,test表示进行测试,webtest表示使用带web GUI界面的测试工具。 -g或—gpu,使用GPU,代表程序在训练train或者测试test任务中是否使用GPU,输入范围在{0, 1}之中,1代表使用GPU,0代表不使用。 -e或—epoch,epoch数,代表训练轮数。
使用示范:
python run.py -t train -g 1 -e 32
#进行训练,使用GPU,epoch为32
python run.py -t test -g 1
#进行测试,使用GPU
python run.py -t webtest
#进行测试,使用web GUI界面(默认使用GPU)
data文件夹用于存放数据集,预训练词向量,停用词。 logs文件夹用于存储tensorboard的日志文件,用于程序开发的时候实现参数一定程度上的可视化。 obj文件夹用于存储加载完数据之后所生成的字典文件,用于将训练时生成的词表字典、标签字典在测试时使用。 SavedModel文件夹用于存储训练时生成的模型,每epoch保存一次。 src文件夹存放源码数据。
其中: config.py——配置文件,存储项目大部分的配置参数 forecast.py——预测类,集成了分类预测功能 loaddataset——加载数据,将数据集的数据从硬盘中加载到程序 Module.py——模型 objprocess——对象操作,保存对象到硬盘或从硬盘读取对象 run.py——导航页,项目主程序 test.py——测试 webtest——web GUI界面测试 train.py——训练
进入src目录,python run.py命令直接运行,若要设定运行模式,可见4.1命令及其含义 。
- 停用词 设置位置:src/loaddataset.py 于jiebatokensize函数可以设置加载的停用词文件
- 数据集 设置位置:src/loaddataset.py 于load函数中,可以设置加载的数据集(训练集、验证集、测试集)
训练集的格式须为tsv,且是<标签> <新闻内容>顺序。
- 模型设置 设置位置:src/config.py 类初始化函数中带默认值的是可调参数,不带默认值的是利用训练过程中生成的数据进行赋值(Figure 8)。 模型中人为可调的参数及其含义: dropoutp——dropout层在训练中神经元失活的概率 filterlength——卷积层卷积核大小,[3 4 5]表示有3种不同大小的卷积核,大小分别是3embedding_dimension、4embedding_dimension、5*embedding_dimension filternumber——同一种卷积核的数量 learningrate——学习速率
- 使用命令行测试 进入src目录,python run.py -t test命令直接运行,若要设定运行模式,可见4.1命令及其含义 。在输入框输入所要进行测试的新闻内容便可以得到分类结果。
- 使用web GUI界面测试 进入src目录,python run.py -t webtest命令直接运行。
进入提示的局域网地址后,在文本框里面输入要进行预测的新闻,点击确认即可得到预测结果。