从数据爬取到机器学习——标题党,你的标题值几何


一、前言:

听说自媒体火了
听说自媒体平台多了
听说自媒体平台补贴高了
听说搞自媒体的人都赚翻了
……
我也想不撸码,投身于自媒体行业去~( ̄▽ ̄~)(~ ̄▽ ̄)~

二、引子:

前段时间拿到一个自媒体平台伪原创的采集器,嗯,长下面那样:

某自媒体平台伪原创采集器

按照阅读量排序进行采集,选择高阅读量的文章,稍加修改,就是一篇自己的伪原创文章了,赶紧注册几个自媒体平台号,什么千家号、尾条号、北极熊号,每天发上几篇自己,坐等各大平台给自己送钱,创造被动收入、实现财务自由,指日可待(๑•̀ㅂ•́)و✧。
醒醒,快醒醒,现实分分钟打我脸(;´༎ຶД༎ຶ`)

所以还是安心撸码吧╮(╯_╰)╭

三、爬取数据

找页面找接口解析元素是一件很繁琐的过程,已经有一个现成的采集器,那就直接对它进行抓包。
用wireshake抓取到它的HTTP请求:

采集器的HTTP请求

解析出来:

详细的请求

打开链接看看:

接口返回的数据

嗯,有了接口,那就直接写爬虫爬数据吧
头条号的ID直接使用采集器自带的(就是那么懒╮(╯▽╰)╭)

没用多进程多线程,没用代理池,没考虑异常处理,没有编码的规范性,嗯,就是写的菜鸡风格的爬虫。╮(﹀_﹀)╭
去MongoDB里面看看数据:

四、探索数据

脸皮薄,怕被骂ㄟ( ▔, ▔ )ㄏ
加载进pandas,来探索探索爬取到的数据
1、引入模块

2、从mongodb中加载数据

3、去除重复值

最后剩下11291条头条:

去重后的数据

4、按照阅读量排序,看看前10都是些什么文章:

点击量前10的头条

嗯,9条娱乐新闻,剩下一条,算是伦理新闻么(☄⊙ω⊙)☄
5、再看看各个类别的占比

 

分类占比饼图

 

分类数量柱状图

娱乐新闻一骑绝尘,真是个娱乐至死的时代[]~( ̄▽ ̄)~*

6、最后看看各个头条号的阅读量
采集的数据中,一共包含210个头条号
阅读量前10位为:

 

阅读量前10的头条号

前10的阅读量合计:

 

158309655

所有头条号的阅读量合计为:

 

635325549

嗯,前10的头条号占了总流量的6分之一。
但是!!!前面所说的都没有什么屁用。
因为!!!通过统计显示,采集的210个头条号中,娱乐类的头条号占了157个┑( ̄Д  ̄)┍

 

头条号类型比率饼图

是不是很尴尬
嗯,不尴尬,重点在下面

五、机器学习——构建标题分类器

本来想做个根据标题来预测阅读量的例子,细想了一下,自己这渣水平还是不要自己找不痛快了。
那就做一个分类器吧。
根据标题预测阅读量的高低等级。
实现简单、容易理解d=====( ̄▽ ̄*)b
先看看数据的整体情况:

 

 

数据整体情况

嗯,平均阅读量为56268
也不清楚自媒体行业的阅读量等级标准,姑且就拿样本数据的分位值平均值作为标准吧,
高于中分位的为高阅读量,低于中分位的为低阅读量。
就这样愉快地决定了。o(*≧▽≦)ツ
生成一个新的阅读量等级序列:

 

然后,对标题进行分词

 

数据就成了这样:

加入分词和阅读量等级后的数据

接下来提取数据,用于生成训练和测试数据:

 

分割训练集和测试集:

 

提取分词后的头条标题的文本特征:

 

使用朴素贝叶斯算法进行模型训练

 

这样一个朴素贝叶斯的模型就训练好了,我们用测试数据来进行预测一下:

 

看看预测数据的准确率:

 

嗯,百分之六十的准确率……
这基本上也就告别实际应用了(ノへ ̄、)

拿本文的标题预测一下:

感人的0——感人的低。
看来没有投身自媒体的本事ε(┬┬﹏┬┬)3
继续为了温饱撸码去╥﹏╥…

  1. 匿名说道:

    我这代码运行怎么是空白呢,求解 :sad:

  2. 说道:

    用的Google拼音输入法?

    1. zmister说道:

      这都被你发现了

发表评论

电子邮件地址不会被公开。