使用Python做垃圾分類的原理及實例代碼附源碼
0 引言
紙巾再濕也是干垃圾?瓜子皮再干也是濕垃圾??最近大家都被垃圾分類折磨的不行,傻傻的你是否拎得清?😭😭😭自2019.07.01開始,上海已率先實施垃圾分類制度,違反規(guī)定的還會面臨罰款。
為了避免巨額損失,我決定來b站學習下垃圾分類的技巧。為什么要來b站,聽說這可是當下年輕人最流行的學習途徑之一。
打開b站,搜索了下垃圾分類,上來就被這個標題嚇(吸)到(引)了:在上海丟人的正確姿勢。

當然,這里的丟人非彼丟人,指的是丟垃圾的丟。
點開發(fā)現(xiàn),原來是一段對口相聲啊,還是兩個萌妹子(AI)的對口相聲,瞬間就來了興趣,闡述的是關(guān)于如何進行垃圾分類的。



原視頻鏈接:https://www.bilibili.com/video/av57129646?from=search&seid=9101123388170190749
看完一遍又一遍,簡直停不下來了,已經(jīng)開啟了洗腦模式,畢竟視頻很好玩,視頻中的彈幕更是好玩!
獨樂樂不如眾樂樂,且不如用Python把彈幕保存下來,做個詞云圖?就這么愉快地決定了!
1 環(huán)境
操作系統(tǒng):Windows
Python版本:3.7.3
2 需求分析
我們先需要通過

拿到 cid 之后,再填入下面的鏈接中。
http://comment.bilibili.com/{cid}.xml
打開之后,就可以看到該視頻的彈幕列表。

有了彈幕數(shù)據(jù)后,我們需要先將解析好,并保存在本地,方便進一步的加工處理,如制成詞云圖進行展示。
3 代碼實現(xiàn)
在這里,我們獲取網(wǎng)頁的請求使用 requests 模塊;解析網(wǎng)址借助 beautifulsoup4 模塊;保存為CSV數(shù)據(jù),這里借用 pandas 模塊。因為都是第三方模塊,如環(huán)境中沒有可以使用 pip 進行安裝。
pip install requests pip install beautifulsoup4 pip install lxml pip install pandas
模塊安裝好之后,進行導入
import requests from bs4 import BeautifulSoup import pandas as pd
請求、解析、保存彈幕數(shù)據(jù)
# 請求彈幕數(shù)據(jù)
url = 'http://comment.bilibili.com/99768393.xml'
html = requests.get(url).content
# 解析彈幕數(shù)據(jù)
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}
# 將彈幕數(shù)據(jù)保存在本地
br = pd.DataFrame(comments_dict)
br.to_csv('barrage.csv', encoding='utf-8')
接下來,我們就對保存好的彈幕數(shù)據(jù)進行深加工。
制作詞云,我們需要用到 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')
'''設(shè)置詞云樣式'''
wc = WordCloud(
# 設(shè)置字體
font_path='SIMYOU.TTF',
# 允許最大詞匯量
max_words = 2000,
# 設(shè)置最大號字體大小
max_font_size = 80,
# 設(shè)置使用的背景圖片
mask = mask_img,
# 設(shè)置輸出的圖片背景色
background_color=None, mode="RGBA",
# 設(shè)置有多少種隨機生成狀態(tài),即有多少種配色方案
random_state=30)
接下來,我們要讀取文本信息(彈幕數(shù)據(jù)),進行分詞并連接起來:
# 讀取文件內(nèi)容
br = pd.read_csv('barrage.csv', header=None)
# 進行分詞,并用空格連起來
text = ''
for line in br[1]:
text += ' '.join(jieba.cut(line, cut_all=False))
最后來看看我們效果圖

有沒有感受到大家對垃圾分類這個話題的熱情,莫名喜感涌上心頭。
4 后記
這兩個AI萌妹子說的相聲很不錯,就不知道郭德綱看到這個作品會作何感想?;氐嚼诸惖脑掝},目前《上海市生活垃圾管理條例》已正式施行,不在上海的朋友們也不要太開心,住建部表示,全國其它46個重點城市也即將體驗到……
源碼,請點擊此處。
以上所述是小編給大家介紹的使用Python做垃圾分類的原理及實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Python數(shù)據(jù)可視化的五種方法小結(jié)
大家好,在數(shù)據(jù)驅(qū)動決策的時代,數(shù)據(jù)可視化是挖掘數(shù)據(jù)價值的重要一環(huán),本文將介紹五種極為實用的高級可視化圖表,從原理到代碼實現(xiàn),一站式助力繪制數(shù)據(jù)圖,需要的朋友可以參考下2025-04-04
Python matplotlib超詳細教程實現(xiàn)圖形繪制
matplotlib 模塊不僅提供了繪制統(tǒng)計圖表的功能,還支持繪制圓形、正方形、矩形等各種圖形。這篇文章主要為大家詳細介紹了利用matplotlib.patches 繪制一些基本圖形,快來跟隨小編一起學習吧2021-12-12
Python利用pyecharts實現(xiàn)數(shù)據(jù)可視化的示例代碼
Pyecharts是一個用于生成 Echarts 圖表的 Python 庫,Echarts 是一個由百度開源的數(shù)據(jù)可視化工具,它提供的圖表種類豐富,交互性強,兼容性好,非常適合用于數(shù)據(jù)分析結(jié)果的展示,本文將給大家介紹Python利用pyecharts實現(xiàn)數(shù)據(jù)可視化,需要的朋友可以參考下2024-09-09
基于python的socket實現(xiàn)單機五子棋到雙人對戰(zhàn)
這篇文章主要為大家詳細介紹了基于python的socket實現(xiàn)單機五子棋到雙人對戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06
Python腳本支持OC代碼重構(gòu)模塊調(diào)用關(guān)系分析實踐
在軟件開發(fā)中,經(jīng)常會遇到一些代碼問題,例如邏輯結(jié)構(gòu)復雜、依賴關(guān)系混亂、代碼冗余、不易讀懂的命名等,這些問題可能導致代碼的可維護性下降,增加維護成本,同時也會影響到開發(fā)效率,本文以Python實現(xiàn)自動化的工具,支持代碼重構(gòu)過程的實踐2023-10-10

