Tensorflow2.0使用CNN和爬虫做新闻分类
重温Tensorflow2.0框架所做的一个小项目,写下来分享一些。写的可能不是太好,如果有错误还请指正。
利用爬虫技术获取新浪网新闻
利用爬虫技术获取到了新浪网中两类信息。一类是科技方面的,一类是NBA
每一类都获取了1200条左右的信息。做一个二分类任务。
对获取的文本做预处理
1.把获取到的新闻存到excel文档中并读取文档,在读取文档的同时过滤掉停用词,因为获取新闻的时候有些信息是新闻的固定格式对文本分析没有意义,例如:北京时间,新浪网,作者等这些词语每个新闻里面都有所以去掉这些没有用的词语和一些没有实际意义的停用词可以适当的减少文档的大小,在后面卷积操作的时候可以加快卷积的时间(这里不是一个字一个字的读取,而且用到了jieba分词)。
2.把清理后的文档分成两部分,一部分用来做训练,一部分用来做测试。
3.生成标签,生成一个列表,把科技的标签定为 1, NBA的标签定位 0
统一文本长度
首先我们要知道我们获取的新闻的长度肯定是不一样的,但在卷积的时候,输入的Tensor的维度是一丁的,这时候还要对文本进行处理,找到文本中最长的那个文本的长度,然后以他为标准,对所有小于这个长度的文本进行填充,使它们的文本长度一致(这里做的不够细节,如果最大的文本长度是6000,而第二大的文本长度是2000,而大部分的文本长度是几百的话,这样填充就太大了,不利于机器的学习)。
做词向量模型
在统一文本的长度以后文本的维度是(n,seq_len)既n个文本每个文本有seq_len个单词,然后使用gensim这个库中的word2vec做词向量,把每个词影射到32维。就会得到一个(n,seq_len,dim)既n个文本每个文本有seq_len个单词,每个单词用32维向量表示。在做词向量模型的时候顺便就把模型保存下来,不然每次都做一次会很浪费时间。
CNN模型的建立
到此数据处理已经差不多了,我们得到了一个(n,seq_len,dim)输入tensor 和一个(n,)的标签。
下面我们开始建立CNN模型。这里用到了 tf.keras.layers.Conv1D 这个模型。具体用法可以看我的另外一篇博客
在模型建立时,用到了六个卷积层和三个池化层以及三个全连接层。
最后会得到一个维度为(n,2)的数据。
在建立好模型并建立优化器后进行卷积操作,获取模型参数并把它保存下来,每进行一次epoch进行一次测试,查看其准确率。
到此我们的CNN新闻分类就已经完成了。自己可以在找一些这两类的信息,把训练好的模型导入进来,做下测试看是否准确。代码整理好以后我会上传到GitHub上。
Tensorflow2.0使用CNN和爬虫做新闻分类相关推荐
- Tensorflow2.0 利用LSTM和爬虫做自动生成七言律诗
从古诗网上获取七言律诗. 从网上随便找了一个古诗网 把该网站上的七言律诗爬取过来,该网站上也有五言律诗但没有把它们一起爬取下来做为数据来源,因为它们的文本长度不一样,如果把它们混在一起的话要对五言律诗 ...
- 【Python深度学习】基于Tensorflow2.0构建CNN模型尝试分类音乐类型(二)
前情提要 基于上文所说 基于Tensorflow2.0构建CNN模型尝试分类音乐类型(一) 我用tf2.0和Python3.7复现了一个基于CNN做音乐分类器.用余弦相似度评估距离的一个音乐推荐模型. ...
- 【Python深度学习】基于Tensorflow2.0构建CNN模型尝试分类音乐类型(一)
音乐分类 前言 复现代码 MP3转mel CNN模型 训练结果 总结 前言 我在逛github的时候,偶然发现了一个项目:基于深度学习的音乐推荐.[VikramShenoy97].作者是基于CNN做的 ...
- 神经网络与深度学习理论,tensorflow2.0教程,cnn
*免责声明: 1\此方法仅提供参考 2\搬了其他博主的操作方法,以贴上路径. 3* 场景一:神经网络与深度学习理论 场景二:tensorflow的安装 场景三:numpy包介绍 场景四:机器学习基础 ...
- 基于tensorflow2.0利用CNN与线性回归两种方法实现手写数字识别
CNN实现手写数字识别 导入模块和数据集 import os import tensorflow as tf from tensorflow import keras from tensorflow. ...
- Tensorflow2.0:CNN 解决凯斯西储大学轴承数据集的分类问题
文章目录 项目介绍 代码实现 1.导入需要的库 2.参数设置 3.归一化 4.定义滑窗函数 5.取样本 6.划分训练集和测试集 7.得到 Dataset 类型数据集 8.建立模型 9.初始化优化器 1 ...
- 【毕业设计_课程设计】基于网络爬虫的新闻采集和订阅系统的设计与实现(源码+论文)
文章目录 0 项目说明 1 项目说明 2 系统需求 3 系统架构 4 效果展示 5 论文目录 6 项目工程 0 项目说明 基于网络爬虫的新闻采集和订阅系统的设计与实现 提示:适合用于课程设计或毕业设计 ...
- python分类预测_python做logistic分类预测尝试
首先需要明确一点是logistics回归和线性回归的区别: 1线性回归的因变量Y是连续性变量,而logistics回归是分类变量. 2线性回归最后可以通过函数y=a1x1+a2x2...去描述,而lo ...
- TensorFlow2.0 学习笔记(三):卷积神经网络(CNN)
欢迎关注WX公众号:[程序员管小亮] 专栏--TensorFlow学习笔记 文章目录 欢迎关注WX公众号:[程序员管小亮] 专栏--TensorFlow学习笔记 一.神经网络的基本单位:神经元 二.卷 ...
- 基于tensorflow2.0+CNN实现手势识别(全)
基于tensorflow2.0+CNN实现手势识别 环境:windows10.pycharm2017.python3.64.tensorflow2.0.opencv3 我在github上分享了代码以及 ...
最新文章
- 如何使用ggplot2绘制左右分布的柱状图
- 使用openssl生成rsa公钥和私钥
- 二进制字符串模5的值(有限状态机法)
- Spring Boot + Redis 实现接口幂等性 | 分布式开发必知!
- rog live service是什么_王者荣耀五周年好礼送不停,玩游戏还能白嫖ROG游戏手机3?...
- Oracle里面的用户user无法登录 LOCKED(TIMED)
- Codeforces 848C. Goodbye Souvenir
- 蓝桥杯 试题 入门训练 Fibonacci数列——9行代码AC
- 北理计算机网络实验汇编,北理计算机与网络实验(II)(汇编语言实验4).docx
- 手机站点击商务通无轨迹解决方法
- 利用ipsec配置tcp/ip用于安全连接
- Python爬虫实战之解密HTML
- c++ primer5 第一章练习题答案 尚未完成 后续补充(基本已经完结)
- Linux7安装硬盘显示错误,【原创文章】centos7 badblocks检测硬盘出现Value too large for defined data type错误的原因和解决办法...
- 小小方法,问题锦集。
- 蓝桥杯单片机——“”彩灯控制器”的程序设计
- 散列表的概念及其拉链法和常见的散列函数(C语言)
- 十年老撕鸡分享,五分钟搭建个人轻论坛
- 好玩的Ipaddian
- 线性回归模型(最小二乘法模型)诊断--R语言