基于cnn和rnn的文本分类实践

本文主要介绍在文本分类中,使用CNN网络和RNN网络的实践,其中CNN又分为maxPool和k-maxpool。可以直接在juputer执行。

代码已经上传github

text-classify-cnn-rnn/README.md at master · yixiu00001/text-classify-cnn-rnn · GitHub

1.CNN+maxPool

text-classification-cnn-maxpool 该工程为cnn-maxpool相关代码。

dataOwn.py

主要包括基于word2vec的embedding方法构建词和index的映射词典,词长不到设定值的打padding以及数据的载入和batch_iter

CNNDiseaseModel.py

主要是CNN网络相关的变量初始化及网络构造。 重点看placeholder/inference等部分,在计算损失部分,由于目前的label只有一个数值,非onehot类型,所以调用sparse_softmax_cross_entropy_with_logits接口。 

CNNDiseaseModelTrain.ipynb

这个文件是训练模型的文件,在train部分是整个训练的逻辑。

CNNDiseaseModelPredict.ipynb

这个文件是对已经训练好的模型,进行结果测试,提供了输入一段文本进行测试的接口和输入一个测试文件地址进行测试的接口。

2.CNN-k-max-pool

这里和上面工程的区别是使用了k-max pool,但是本实验中效果和max-pool差不多。 同样包含几个文件

dataOwn.py
modelOneConv.py
trainWord2vec.ipynb
predictWord2vec.ipynb

3.text-classification-rnn

这个文件是基于rnn实现的分类,可以选择使用LSTM或者GRU

rnn_model_oneLable.py
train_rnn_oneLable.ipynb
predict_rnn_oneLablelNew.ipynb

这三个文件对应的数据的label是一个数字,如0 ,1 ,2这种类型

rnn_model_onehotLable.py
train_rnn_onehotLable.ipynb

这两个文件对应的数据的label是onehot类型,如100000000000000,010000000000

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值