使用Python計算文章中的字詞頻率丨學習筆記和反思
也可以在博客中閱讀使用Python計算文章中的字詞頻率丨學習筆記和反思
來源:天善智能-商業智能和大數據在線社區,用心創造價值
丘祐瑋人人都愛數據科學家!Python數據科學精華實戰課程
環境:Anaconda3
建議使用Anaconda,下載源文件後再閱讀本文:https://github.com/zhangslob/DanmuFenxi
=====================================================================
選擇經典演講稿,奧巴馬2009年9月8日開學演講。。 奧巴馬開學演講稿2009年9月8日_百度文庫
THE PRESIDENT:n n Hello, everybody! Thank you. Thank you. Thank you, everybody. All right, everybody go ahead and have a seat. How is everybody doing today? (Applause.) How about Tim Spicer? (Applause.) I am here with students at Wakefield High School in Arlington, Virginia. And weve got students tuning in from all across America, from kindergarten through 12th grade. And I am just so glad that all could join us today. And I want to thank Wakefield for being such an outstanding host. Give yourselves a big round of applause. (Applause.)n...n
1、World Count(Version 1)
把數據命名為speech_text,首先需要對英文進行分詞。英文中主要是空格,使用split()函數
# coding: utf-8nn# In[1]:nnspeech_text=#長文本使用..nTHE PRESIDENT:n n Hello, everybody! Thank you. Thank you. Thank you, everybody. All right, everybody go ahead and have a seat. How is everybody doing today? (Applause.) How about Tim Spicer? (Applause.) I am here with students at Wakefield High School in Arlington, Virginia. And weve got students tuning in from all across America, from kindergarten through 12th grade. And I am just so glad that all could join us today. And I want to thank Wakefield for being such an outstanding host. Give yourselves a big round of applause. (Applause.)n ...#省略文字nn# In[2]:nnspeech=speech_text.split()nnn# In[3]:nnspeechn
下一步,計算speech中詞語出現的次數
# In[4]:nndic={}nfor word in speech:n if word not in dic:n dic[word] = 1n else:n dic[word] = dic[word] + 1nnn# In[5]:nndicn
通過 items() 函數以列表返回可遍歷的(鍵, 值) 元組數組。
下一步,對詞語進行排序
# In[7]:nnimport operatornswd=sorted(dic.items(),key=operator.itemgetter(1),reverse=True)#從大到小排序nnn# In[9]:nnswdn
發現其中「to」、「the」等單詞是常見詞,借用nltk我們可以把這些詞語去掉
from nltk.corpus import stopwordsnstop_words = stopwords.words(English)n
雖說Anaconda已經安裝了NLTK,但是n我自己操作時stopwords貌似沒有,出錯請參考安裝和使用NLTK分詞和去停詞
看看英文中的去停詞,下一步,遍歷,列印出不含有去停詞
for k,v in swd2:n if k not in stop_words:n print(k,v)n
發現出現了很多「--」,回去原文中觀察,發現確實有很多,
那麼問題來了,為什麼出現這麼多「--」。萌新求解!
2、World Count(Version 2)
from collections import Counternc=Counter(speech2)n
使用Python 的collections模塊更簡潔,詳細見Python collections模塊實例講解
同樣可以使用stop_word,還可以使用most_common列印出前幾個for sw in stop_words:n del c[sw]n
3、反思
上一篇文章昨天看球時,球迷都說了啥--彈幕抓取與分析 - 知乎專欄寫的比較粗糙,很多人要求把「觀眾」 「禮物」篩選出來,那我來試試。
stop = [!,*,觀眾,禮物,:,?,。,,,~,1]n
去停詞只有這些、可以根據實際情況添刪。
看來觀眾很喜歡說「xx學院發來賀電~~」
少年,你渴望交易嗎?https://zhuanlan.zhihu.com/pygame
推薦閱讀:
※PyQt5系列教程(8):標準輸入對話框
※代碼這樣寫更優雅 (Python 版)
※1000+收藏了!小白自學Python一本通
TAG:Python |