Advertisement

python 新闻标题分类_NLPCC2017(中文)新闻标题分类示例代码以及数据描述

阅读量:

NLPCC 2017 新闻标题分类

代码运行环境

python2.7 (最好用anaconda2)

tensorflow1.0.0 gpu版本或者cpu版本

建议操作系统:Linux

在Linux环境下进行配置设置时可查阅资料关于Setup Deep Learning environment on Linux。请特别注意要在tensorflow网站上获取所需版本。

其官方存储位置位于https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.0-cp27-none-linux_x86_64.whl。

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.0-cp27-none-linux_x86_64.whl

快速上手

这里只提供在linux 上的上手攻略

在满足上面运行环境之后,可以直接运行.

bash ./quick_run_.sh

就开始训练了。log保存在./savings/save01/run.log 里面。

里面做了这些事情:

在命令行中$tar zxvf nlpcc_data.tar.gz 解压 nlpcc_data.tar.gz

解压后的目录结构:

.

├── char

│ ├── dev.txt

│ ├── id2tag.txt

测试数据 #由于nlpcc_data中未提供测试数据,请将dev.txt作为备选文件进行备份并命名为test.txt使用

│ ├── train.txt

│ └── vocab.txt

└── word

├── dev.txt

├── id2tag.txt

测试文件test.txt在nlpcc_data中并不存在,默认情况下会从dev.txt复制一份

├── train.txt

├── vocab.100k

└── vocab.all

将char或者word中的copy到all_data中

下面是运行命令,

#在save01目录中生成一个config文件

python model.py --weight-path ./savings/save01

载入./savings/save01中的配置文件并且开始训练

python model.py --weight-path ./savings/save01 --load-config

导入位于./savings/save01中的配置文件,并将训练完成的参数存储于改目录中进行测试

python model.py --weight-path ./savings/save01 --load-config --train-test test

./savings/save01/config文件可进行修改操作,在无需运行第一条指令生成配置的情况下可以直接运行第二条指令导入更新后的配置设置

配置文件长这样:

[General]

train_data = ./all_data/train.txt

val_data = ./all_data/dev.txt

test_data = ./all_data/test.txt

vocab_path = ./all_data/vocab.txt

id2tag_path = ./all_data/id2tag.txt

embed_path = ./all_data/embed/embedding.

neural_model = lstm_basic

pre_trained = False

vocab_size = 100000

batch_size = 64

embed_size = 200

max_epochs = 50

early_stopping = 5

dropout = 0.9

lr = 0.001

decay_steps = 500

decay_rate = 0.9

class_num = 0

reg = 0.001

num_steps = 40

fnn_numlayers = 1

[lstm]

hidden_size = 300

rnn_numlayers = 1

[cnn]

num_filters = 128

filter_sizes = [3, 4, 5]

cnn_numlayers = 1

配置文件用来配置模型结结构

数据描述

char目录中的数据是字符级别的新闻标题

word目录中的信息属于词级别的新闻标题 (所使用的分词工具为jieba,并非唯一选择)

内容类似于:

finance 建 行 按 揭 贷 余 额 超 3 万 亿 还 将 大 力 发 展

society 头 号 老 赖 欠 款 2 亿 拆 东 墙 补 西 墙 终 欠 下 2 亿 元

entertainment 对 卡 戴 珊 来 说 , 每 一 次 换 装 都 是 一 次 宣 传

entertainment 陈 妍 希 陈 晓 7 月 大 婚 , 你 看 好 他 俩 吗 ?

car 变 道 和 转 弯 , 没 让 直 行 车 辆 后 果 可 不 轻

game 打 辅 助 位 的 正 统 T D ! 坦 克 世 界 斯 太 尔 W T 的 战 场 理 解

tech 大 数 据 人 才 炙 手 可 热 薪 酬 到 底 有 多 高 ?

travel 月 薪 3 0 0 0 元 的 常 州 人 , 到 这 些 国 家 瞬 间 成 土 豪 !

history 清 朝 灭 亡 时 只 有 2 2 行 省 , 现 在 却 有 3 4 个 , 那 些 省 份 是 新 出 的 ?

train.txt、test.txt、dev.txt分别标记为训练数据集、测试数据集以及开发数据集。id2tag.txt中存储了标签字典文件,而vocab.txt则构成了词汇表文件。

全部数据集都采用了utf-8编码,并且如果需要加入嵌入层的话,则必须使用utf-8格式

请注意test.txt并不存在,请创建一个副本dev.txt并将其复制到该位置;也可以对配置文件进行相应的调整

占总数据30%的数据集被用于训练;训练集与验证集的比例设置为2:1;剩下的70%则会被用作测试集;并在截止日期前一周的时间段内发布

预训的embedding 放在百度云,可以自行下载。

测试集已经放在/test目录下。也可以通过百度云下载测试集。

测试结果应当按照指定的测试样本顺序*存储于result.txt文件中(每个标签单独一行,并参考test/test.example的格式),并以附件形式提交至task2@nlpcc2017.info

代码描述

├── Config.py

├── helper.py

├── model.py

Config.py: 配置处理代码,用于生成或者加载配置文件。

helper.py: 加载数据,加载辞典,计算准确度等等。

model.py: 模型代码。

如果需要增减现有模型或新增一个模型组件,在Model类的add_model()方法内进行操作。

引用

@InProceedings{qiu2017overview,

Title = {对NLPCC 2017共同任务的概述:中文新闻标题分类}

Author = {Xipeng Qiu and Jingjing Gong and Xuanjing Huang},

Booktitle = {arXiv:1706.02883v1},

Year = {2017}

}

全部评论 (0)

还没有任何评论哟~