使用Python做垃圾分类的原理及实例代码附源码


Posted in Python onJuly 02, 2019

0 引言

纸巾再湿也是干垃圾?瓜子皮再干也是湿垃圾??最近大家都被垃圾分类折磨的不行,傻傻的你是否拎得清????自2019.07.01开始,上海已率先实施垃圾分类制度,违反规定的还会面临罚款。

为了避免巨额损失,我决定来b站学习下垃圾分类的技巧。为什么要来b站,听说这可是当下年轻人最流行的学习途径之一。

打开b站,搜索了下垃圾分类,上来就被这个标题吓(吸)到(引)了:在上海丢人的正确姿势。

使用Python做垃圾分类的原理及实例代码附源码

当然,这里的丢人非彼丢人,指的是丢垃圾的丢。

点开发现,原来是一段对口相声啊,还是两个萌妹子(AI)的对口相声,瞬间就来了兴趣,阐述的是关于如何进行垃圾分类的。

使用Python做垃圾分类的原理及实例代码附源码

使用Python做垃圾分类的原理及实例代码附源码

使用Python做垃圾分类的原理及实例代码附源码

原视频链接:https://www.bilibili.com/video/av57129646?from=search&seid=9101123388170190749

看完一遍又一遍,简直停不下来了,已经开启了洗脑模式,毕竟视频很好玩,视频中的弹幕更是好玩!

独乐乐不如众乐乐,且不如用Python把弹幕保存下来,做个词云图?就这么愉快地决定了!

1 环境

操作系统:Windows

Python版本:3.7.3

2 需求分析

我们先需要通过开发调试工具,查询这条视频的弹幕的 cid 数据。

使用Python做垃圾分类的原理及实例代码附源码

拿到 cid 之后,再填入下面的链接中。

http://comment.bilibili.com/{cid}.xml

打开之后,就可以看到该视频的弹幕列表。

使用Python做垃圾分类的原理及实例代码附源码

有了弹幕数据后,我们需要先将解析好,并保存在本地,方便进一步的加工处理,如制成词云图进行展示。

3 代码实现

在这里,我们获取网页的请求使用 requests 模块;解析网址借助 beautifulsoup4 模块;保存为CSV数据,这里借用 pandas 模块。因为都是第三方模块,如环境中没有可以使用 pip 进行安装。

pip install requests
pip install beautifulsoup4
pip install lxml
pip install pandas

模块安装好之后,进行导入

import requests
from bs4 import BeautifulSoup
import pandas as pd

请求、解析、保存弹幕数据

# 请求弹幕数据
url = 'http://comment.bilibili.com/99768393.xml'
html = requests.get(url).content

# 解析弹幕数据
html_data = str(html, 'utf-8')
bs4 = BeautifulSoup(html_data, 'lxml')
results = bs4.find_all('d')
comments = [comment.text for comment in results]
comments_dict = {'comments': comments}

# 将弹幕数据保存在本地
br = pd.DataFrame(comments_dict)
br.to_csv('barrage.csv', encoding='utf-8')

接下来,我们就对保存好的弹幕数据进行深加工。

制作词云,我们需要用到 wordcloud 模块、matplotlib 模块、jieba 模块,同样都是第三方模块,直接用 pip 进行安装。

pip install wordcloud
pip install matplotlib
pip install jieba

模块安装好之后,进行导入,因为我们读取文件用到了 panda 模块,所以一并导入即可

from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import pandas as pd
import jieba

我们可以自行选择一张图片,并基于此图片来生成一张定制的词云图。我们可以自定义一些词云样式,代码如下:

# 解析背景图片
mask_img = plt.imread('Bulb.jpg')

'''设置词云样式'''
wc = WordCloud(
 # 设置字体 
 font_path='SIMYOU.TTF',
 # 允许最大词汇量
 max_words = 2000,
 # 设置最大号字体大小
 max_font_size = 80,
 # 设置使用的背景图片
 mask = mask_img,
 # 设置输出的图片背景色
 background_color=None, mode="RGBA",
 # 设置有多少种随机生成状态,即有多少种配色方案
 random_state=30)

接下来,我们要读取文本信息(弹幕数据),进行分词并连接起来:

# 读取文件内容
br = pd.read_csv('barrage.csv', header=None)

# 进行分词,并用空格连起来
text = ''
for line in br[1]:
 text += ' '.join(jieba.cut(line, cut_all=False))

最后来看看我们效果图

使用Python做垃圾分类的原理及实例代码附源码

有没有感受到大家对垃圾分类这个话题的热情,莫名喜感涌上心头。

4 后记

这两个AI萌妹子说的相声很不错,就不知道郭德纲看到这个作品会作何感想。回到垃圾分类的话题,目前《上海市生活垃圾管理条例》已正式施行,不在上海的朋友们也不要太开心,住建部表示,全国其它46个重点城市也即将体验到……

源码,请点击此处。

以上所述是小编给大家介绍的使用Python做垃圾分类的原理及实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python splitlines使用技巧
Sep 06 Python
Python简单进程锁代码实例
Apr 27 Python
Python中List.index()方法的使用教程
May 20 Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
详解python中的 is 操作符
Dec 26 Python
Window环境下Scrapy开发环境搭建
Nov 18 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 Python
python not运算符的实例用法
Jun 30 Python
python flask框架实现重定向功能示例
Jul 02 #Python
python实现串口自动触发工作的示例
Jul 02 #Python
python常用函数与用法示例
Jul 02 #Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 #Python
python for和else语句趣谈
Jul 02 #Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 #Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 #Python
You might like
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
解决vue+webpack打包路径的问题
2018/03/06 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
python和shell变量互相传递的几种方法
2013/11/20 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
mac使用python识别图形验证码功能
2020/01/10 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
采购主管岗位职责
2014/02/01 职场文书
授权委托书样本
2014/04/03 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
营销与策划实训报告
2014/11/05 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
比较几种Redis集群方案
2021/06/21 Redis
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS