![6d297f464d82996d33fd12379438bb12.png](https://i-blog.csdnimg.cn/blog_migrate/6f201fbee1b378fac10ed111ef0a399f.jpeg)
人类在处理大量信息时,是有局限的。
如果现在有几条新闻让你辨别真假:
1,“震惊!深圳市将于10月25日发生极昼现象!”;
2,“腾讯将给每位微信用户充值100元,手慢无”;
3,“美职篮:湖人4-2中击败热火,荣获赛季总冠军”……
你肯定觉得超简单,但如果现在有几千甚至数万条新闻让你辨别真假,你会觉得“是在玩我吧!”。
![82f4e53613543670bb830554002c153d.png](https://i-blog.csdnimg.cn/blog_migrate/dec835c01a8cb31ea8ce1439c3ba2169.jpeg)
当然,如果你特别有毅力,可能会尝试一下各种评判标准,去进行快速筛选,但这样大量快速手工操作的准确率和效率,往往可能是不尽如人意的。
怎么办呢?这个时候就要借助AI了,也就是机器学习,让计算机通过学习足够数量的样本,根据数据中的特征构建模型,并利用此模型对新的情境给出判断和预测。
你可能会觉得有点意思了!更加有意思的是你也可以通过机器学习的方法,利用Python里强大的scikit-learn 包中的聚类学习工具,来迅速判定海量新闻的真假(而Atlas OS的云主机的使用能让整个过程轻松便捷)。
下面跟着视频或图文介绍来试试看!
知乎视频www.zhihu.com一,数据和代码准备
我们从DataFlair的“Fake News Detection Project”教程中收集了6335条真假新闻数据集,并开发了相应学习代码。(数据和代码链接
:https://data-flair.training/blogs/advanced-python-project-detecting-fake-news/)
二,环境搭建
如果我们要进行sklearn聚类学习,就需要一个Python开发环境来进行开发,为了省去可能会有一万字的繁琐环境搭建步骤,所以这里选择了Atlas OS 的达仁云主机Linux+JupyterLab开发环境,里面已经预设好了Python环境,只需简单几步就能调出使用。
1,首先在浏览器中输入http://atlas.daren.io登陆(如果没有账号可以注册一个);
![e724ecd846b2e3cdb8ca25ad5c639493.png](https://i-blog.csdnimg.cn/blog_migrate/5bc76435fb78c388f85d0fcb1e6f7659.jpeg)
2,选择达仁云主机,新建一个虚拟硬盘,并上传新闻数据集文件news.csv,这是一个逗号分隔的纯文本文档,可以用任何的文本编辑器打开查看;
![dac2dab000d0e44f08b62c34e17ec9c7.png](https://i-blog.csdnimg.cn/blog_migrate/87934d2e6fbe930df4d02ab6b963a07e.jpeg)
3,选择主机镜像,启动Linux+Jupyterlab镜像,并选择镜像配置,这里选了一个2核2G的就够了,跑一个小时才0.1元,然后选择数据文件所在的虚拟硬盘,点击启动云主机。
![14f1dc6af09ef0b6f973bc25be783066.png](https://i-blog.csdnimg.cn/blog_migrate/95bb9f4c7ced5c0dcfded679828233b5.jpeg)
4,仅需2分钟,一个崭新的Linux+Jupyterlab镜像就出炉了,在主机信息中,点击进入云主机,复制密码在网页登陆,就可以看到镜像界面了。
![4bc0e989518e8c613d69557cf216a91a.png](https://i-blog.csdnimg.cn/blog_migrate/b47c64653e2aec2fb52c5f427d3133e1.jpeg)
三,开始机器学习:真假新闻识别
首先在Terminal里,安装这个机器学习项目需要的支撑包。
![fc861638686e7712d00e16fe550daf07.png](https://i-blog.csdnimg.cn/blog_migrate/512c22886ad59e05308d5d26d29c5bd0.jpeg)
这个项目使用的数据是我们之前放入虚拟硬盘的数据文件news.csv。这里面有6335条真假新闻数据,包含新闻标题、内容和真假性质数据。
然后新建一个JupyterLab文档,在文档的代码中先import项目需要的支撑包,并读取数据。
![698b386139edab342e49ea4cd4af2b3b.png](https://i-blog.csdnimg.cn/blog_migrate/c21abff86a98e77a73bf75353806b553.jpeg)
一个机器学习的项目里,我们需要将数据的一部分作为模型训练使用,一部分用来测试。这个例子里面我们可以看到test_size=0.001,也就是随机使用千分之一的数据用来测试,剩下的千分之九百九十九的其他数据用来训练模型。这个test_size参数可以根据需要调整。
![a46a4bc278b61d27fa7b72806b5939a3.png](https://i-blog.csdnimg.cn/blog_migrate/7359f7ff39f131f9d460d58989e72113.jpeg)
我们使用sklearn TfidfVectorizer函数,用TF-IDF词频-逆向文件频率方法进行文本特征提取,使用sklearn fit_transform 函数根据输入的训练数据,统计词汇词典并返回数据对象,生成文档稀疏矩阵,建立模型。
最后,我们使用sklearn PassiveAggressiveClassifier来做学习,这是一种增量学习算法(PA算法),即被动感知算法对测试数据进行预测,并统计结果。
![38c0b8ae93e3d4b20918d51142da7a13.png](https://i-blog.csdnimg.cn/blog_migrate/3de70bbddb69e4eec5f5069791a66da5.jpeg)
我们可以看到这里程序输出了部分新闻的信息,以及模型对测试数据的预测结果和真实数据的对比信息,以及最终预测正确与错误的数据。可以看到这里这几个简单测试的结果预测准确率为100%,也就是说,本次随机测试到的7条新闻完成预测正确。
![770aad2717d7a35ce31806881248d215.png](https://i-blog.csdnimg.cn/blog_migrate/51d5b630d26cc30ba5171bdcf9a55db5.jpeg)
上面测试数据较少,调整test_size=0.2,运行,查看结果,这里显示计算出的模型的预测准确率有92%以上。我们可以看到对1267条测试数据的验证结果: 589个真阳性,587个真阴性,42个假阳性和49个假阴性(即1176个预测正确,91个预测错误)。
![60ec9f90c1b300433a42b62ed9cafeb0.png](https://i-blog.csdnimg.cn/blog_migrate/051be5e801c8ee049c5c2aebff0df215.jpeg)
可以看到,在达仁云主机中开启环境,可以快速学习和实践Python的机器学习功能。我们通过这个简单的scikit-learn聚类学习项目,我们可以判断出90%以上的假新闻。那么在这个广告和假新闻满天飞的年代,也许我们后续可以逐步按这个方式过滤假新闻。
你学会了吗?想要马上练习!赶快登陆http://atlas.daren.io一键启用你的云主机吧,不仅是JupyterLab,达仁云主机还提供RStudio、Eclipse等多种主流开发环境,可选配置多达百余种,可选CPU涵盖1~96核,可选内存涵盖0.5~3TB,可选硬盘涵盖1GB~16TB,费用低至0.03元每小时起,浏览器中即开即用,这下再也不用为各种学习、开发、测试环境而苦恼了。
想了解更多新鲜实用的云计算和云数据分析工具欢迎关注“Atlas OS”微信公众号,或联系达仁基算团队ddeng@daren.io。