tensorflow多层卷积网络实现CNN文本分类

1.实验数据获取:
这里的实验数据是本人自己提取的,具体方式是:
(大家可以根据自己喜好进行如下步骤)
1.选取3个不同类别的文本,每类500篇,共1500篇。
2.使用TF-IDF或词频等方式,从每个类型的文本中选出100个特征词,3个类别,共300个特征词。将300个特征词存入一个list中。
3.使用300个特征词的列表去遍历每一篇文本,如果第x个特征词在该文本中出现次数为n,则对应该文本的特征list的第x为记为n。1500篇文本,1500个特征list分别对应每个文本。
4.对每个文本设置标签,使用one-hot方式表示即可
5.将其文本顺序打乱即可,但保证其对应关系不变 文本——文本特征list——标签

例如:
这里我使用TF-IDF从3个不同类别的文本中提取到的300个特征词:
在这里插入图片描述
我们甚至可以从这些词中看出这三类文本的类别分别为:房产,星座,游戏
当然,有些词的区分性不是太好,我们可以通过增加文本数量,设置更精确的停用词实现更好的效果。

提取一篇文本的特征list:
在这里插入图片描述
文本特征list的每一位与特征词list的每一位一一对应,例如文本特征list[1]=11,对应特征词list[1]=“一个”,即表示"一个"这个词在该文本中出现11次。

再对这篇文本设置标签:
[‘0’, ‘1’, ‘0’]
表明该文本属于第二类。

2.代码实现:
关于理论实现这里就不做讲解(如果想要学习,推荐深度学习入门——基于Python的理论与实现-图灵教育-[日]斋藤康毅 著),
直接上代码,具体解释在注释中:
代码参考于:
Tensorflow中文社区
BiliBili视频 深度学习框架Tensorflow学习与应用

import tensorflow as tf

import dataN     #这里是自己写的获取数据的python文件,可以获取到1200个训练数据,训练标签。300个测试数据,测试标签
train_dataN,train_labelN,test_dataN,test_labelN=dataN.dataone()

#placeholder为tensor操作创建占位符,可以在TensorFlow运行某一计算时根据该占位符输入具体的值
x=tf.placeholder("float",shape=[None,300])
#None表示一次传入数据的个数未知,他会根据实际情况自动设置
y_=tf.placeholder("float",s
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值