標籤:

使用Python計算文章中的字詞頻率丨學習筆記和反思

也可以在博客中閱讀使用Python計算文章中的字詞頻率丨學習筆記和反思

來源:天善智能-商業智能和大數據在線社區,用心創造價值

丘祐瑋人人都愛數據科學家!Python數據科學精華實戰課程

環境:Anaconda3

建議使用Anaconda,下載源文件後再閱讀本文:github.com/zhangslob/Da

=====================================================================

選擇經典演講稿,奧巴馬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學院發來賀電~~」

少年,你渴望交易嗎?zhuanlan.zhihu.com/pyga


推薦閱讀:

PyQt5系列教程(8):標準輸入對話框
代碼這樣寫更優雅 (Python 版)
1000+收藏了!小白自學Python一本通

TAG:Python |