作家
登录

CNN与RNN对中文文本进行分类--基于TENSORFLOW实现

作者: 来源: 2017-11-23 15:56:57 阅读 我要评论

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践

运行 python run_cnn.py test 在测试集长进行测试。


练习与验证

还可以经由过程进一步的调节参数,来达到更好的效不雅。

如今,TensorFlow大年夜版本已经进级到了1.3,对很多的收集层实现了更高层次的封装和实现,甚至还整合了如Keras如许优良的一些高层次框架,使得其易用性大年夜大年夜晋升。比拟夙兴的底层代码,如今的实现加倍简洁和优雅。

本文是基于TensorFlow在中文数据集上的简化实现,应用了字符级CNN和RNN对中文文本进行分类,达到了较好的效不雅。

数据集

本文采取了清华NLP组供给的THUCNews消息文本分类数据集的一个子集(原始的数据集大年夜约74万篇文档,练习起来须要花较长的时光)。数据集请自行到THUCTC:一个高效的中文文本分类对象包下载,请遵守数据供给方的开源协定。

本次练习应用了个中的10个分类,每个分类6500条数据。

类别如下:

体育, 财经, 房产, 家居, 教导, 科技, 时尚, 时政, 游戏, 娱乐

这个子集可以在此下载:链接:http://pan.baidu.com/s/1bpq9Eub 暗码:ycyw

预处理

数据集划分如下:

  • 练习集: 5000*10
  • 验证集: 500*10
  • 测试集: 1000*10

大年夜原数据集生成子集的过程请参看helper下的两个脚本。个中,copy_data.sh用于大年夜每个分类拷贝6500个文件,cnews_group.py用于将多个文件整合到一个文件中。履行该文件后,获得三个数据文件:

  • cnews.train.txt: 练习集(50000条)
  • cnews.val.txt: 验证集(5000条)
  • cnews.test.txt: 测试集(10000条)

data/cnews_loader.py为数据的预处理文件。

  • read_file(): 攫取文件数据;
  • build_vocab(): 构建词汇表,应用字符级的表示,这一函数会将词汇表存储下来,避免每一次反复处理;
  • read_vocab(): 攫取上一步存储的词汇表,转换为{词:id}表示;
  • read_category(): 将分类目次固定,转换为{类别: id}表示;
  • to_words(): 将一条由id表示的数据从新转换为文字;
  • preocess_file(): 将数据集大年夜文字转换为固定长度的id序列表示;
  • batch_iter(): 为神经收集的练习预备经由shuffle的批次的数据。

经由数据预处理,数据的格局如下:

CNN卷积神经收集

设备项

CNN可设备的参数如下所示,在cnn_model.py中。

  1. class TCNNConfig(object): 
  2.     """CNN设备参数""" 
  3.  
  4.     embedding_dim = 64      # 词向量维度 
  5.     seq_length = 600        # 序列长度 
  6.     num_classes = 10        # 类别数 
  7.     num_filters = 128        # 卷积核数量 
  8.     kernel_size = 5         # 卷积核尺寸 
  9.     vocab_size = 5000       # 词汇表达小 
  10.  
  11.     hidden_dim = 128        # 全连接层神经元 
  12.  
  13.     dropout_keep_prob = 0.5 # dropout保存比例 
  14.     learning_rate = 1e-3    # 进修率 
  15.  
  16.     batch_size = 64         # 每批练习大年夜小 
  17.     num_epochs = 10         # 总迭代轮次 
  18.  
  19.     print_per_batch = 100    # 每若干轮输出一次结不雅 
  20.     save_per_batch = 10      # 每若干轮存入tensorboard 

CNN模型

具体参看cnn_model.py的实现。

大年夜致构造如下:

 1/8    1 2 3 4 5 6 下一页 尾页

  推荐阅读

  教你简单三招永别烦人的Windows 10自动更新

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 我们在客岁的夏天,也就是微软推送Windows 10周年更新的时刻写过一篇关于若何禁用Windows 10更新的文┞仿>>>详细阅读


本文标题:CNN与RNN对中文文本进行分类--基于TENSORFLOW实现

地址:http://www.17bianji.com/lsqh/39190.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)