是什么垃圾呢?
自2019年7月1日开始,各大媒体上突然出现了上海市人民群众围绕“垃圾分类”发生的各种故事。上海群众已经身先士卒帮我们“内测”了一下垃圾分类功能。但是现在全国范围内已经要开始“公测”啦。
其实自20世纪60年代以来,世界范围内的环境污染与生态破坏日益严重,环境问题和环境保护逐渐为国际社会所关注。进入21世纪,全球的环保建设已经提上日程。目前的中国虽是世界第二大经济体,却面临着严重的资源浪费及环境污染问题。我国目前不仅积极培养环境工程人才,推进环保研究,也开始尝试从政策方面引导居民提高环保意识。
作为我国“身先士卒”的第一批居民,上海市人民群众最直观的感受就是每天早上拎着袋垃圾下楼,朝垃圾厢房走去。总会有个阿姨守候在那里,并发出“直击灵魂的拷问”——“你是什么垃圾?”
垃圾如何分类成为了当下一个重点话题,你会分类吗?你是怎么分类呢?万能的网友甚至总结了一首猪记“能吃的叫湿垃圾,都不吃的叫干垃圾,吃了会死的叫有害垃圾,能卖钱换的叫可回收垃圾。
在试用过华为的三款垃圾分类app和苹果的三款垃圾分类app 后,发现图像及语音识别的垃圾分类内容有限,垃圾分类app的可学习资源有限,那我们换一换可操作的学习方向
打开现代(总是缺钱)年轻人的最流行学习途径——b站,搜索“垃圾分类”,上来就有“在上海丢人的正确姿势”;当然,此丢人非彼丢人,指的是丢垃圾的丢。点开一看两个萌妹子(AI)对口相声,阐述如何进行垃圾分类。
01
通过<F12>开发调试工具,
查询这条视频的弹幕的cid数据。
02
拿到cid,填入以下链接中
http://comment.bilibili.com/{cid}.xml
03
打开,可看见该视频弹幕列表
04
保存弹幕数据到本
方便进一步加工处理
如制作成词云图进行展示。
05
代码实现
获取网页的请求:使用requests模块;
解析网址借助:beautifulsoup4模块;
保存为CSV数据:借用pandas模块
06
模块安装好后,进行导入
因为读取文件用了panda模块,所以一并导入即可
07
自行选择一张图片,
并基于此图片来生成一张定制的词云图。
定义词云图样式。
代码如下:
import requestsimport matplotlib.pyplot as pltimport pandas as pdimport jiebaimport tracebackfrom lxml import etreefrom wordcloud import WordCloud, ImageColorGenerator# 获取弹幕数据并保存本地csv文件def getWords2locals(comment_cid):try:# 请求弹幕数据base_url = 'http://comment.bilibili.com/{}.xml'now_url = base_url.format(comment_cid)res = requests.get(now_url)xml_dom = etree.XML(res.content)comment_list = xml_dom.xpath('//d/text()')# 解析弹幕数据comments = [comment for comment in comment_list]comments_dict = {'comments': comments}# 将弹幕数据保存在本地br = pd.DataFrame(comments_dict)wordFile_name = str(comment_id) + '.csv'br.to_csv(wordFile_name, encoding='utf-8')# 调用制作词云的函数makeWordClound(wordFile_name)except:print('获取弹幕数据发生错误', traceback.format_exc())# 读取得到的弹幕并制作词云图def makeWordClound(wordFileName):try:# 加载背景图mask_img = plt.imread('timg.jpg')'''设置词云样式'''wc = WordCloud(# 设置字体font_path='/Users/zhanghuining/Desktop/msyh.ttf',# 允许最大词汇量max_words=200000,# 设置最大号字体大小max_font_size=80,# 设置使用的背景图片mask=mask_img,# 设置输出的图片背景色background_color=None, mode="RGBA",# 设置有多少种随机生成状态,即有多少种配色方案random_state=30)# 读取文件内容br = pd.read_csv(wordFileName, header=None)text = ' 'for line in br[1]:text += ' '.join(jieba.cut(line, cut_all=False))# 打印用于制作词云的字符串print(text)# 生成词云wc.generate_from_text(text)# 改变字体颜色img_colors = ImageColorGenerator(mask_img)# 字体颜色为背景图片的颜色wc.recolor(color_func=img_colors)# 显示词云图plt.imshow(wc)# 关闭坐标轴plt.axis('off')# 将图片保存到本地clound_id = wordFileName.split('.')[0]wordClound_name = clound_id + '.png'wc.to_file(wordClound_name)print('生成词云图成功!')except:error = traceback.format_exc()print('制作词云图片时发送错误 ---错误信息', error)if 'cannot open resource' in error:print('可能是font_path参数错误,请设置当前系统中已有的字体,并且是支持中文的')if __name__ == '__main__':# 99768393---->弹幕idcomment_id = input('请输入弹幕id:')getWords2locals(comment_id)
08
效果图
图参考文章:知乎之《震惊!垃圾分类居然能用python搞定》
本期作者:范诗悦
本期编辑校对:李嘉楠
扫描左侧二维码
发现更多精彩内容~

