今天來試一下如何利用 python 來統計文本中每個英文單詞出現的次數
列出了兩種方法,一種是直接調用 Counter 函數 ,核心代碼一行搞定
另一種是手寫的利用 python 中的字典來統計
?
1.首先將文本文件導入
f = open(r"C:\Users\aaa\Desktop\new.txt",encoding="utf-8")
a = f.read().split()
?open 文本之后,將文本 read 進來,然后用 split 將單詞利用空格切分開
輸出的是一個列表,也就是將文本文件變成單詞的列表
?
2. 利用?Counter 函數統計詞頻
這個方法很簡單,只需要用一行代碼即可搞定
print(collections.Counter(a))
這樣就直接統計好詞頻,并利用字典的形式排序好了再輸出
當然, Counter 函數在 collections 包里,所以使用之前要先導包:import collections
?
3.手寫字典統計詞頻
如果你覺得直接調用函數沒有意思的話,可以自己手寫字典來統計:key 是單詞,value 是單詞出現次數
先創建一個字典,然后遍歷剛剛取出的單詞列表,接著做一個判斷:
? ? 如果字典中 key 已經出現了這個單詞,那么它對應的 value ,也就是出現次數就 +1
? ? 如果這個單詞沒出現過,就直接 插入這個單詞及?value 為 1 到 字典中
代碼如下:
words_dic = {}
for k in a:
? ? if k in words_dic:
? ? ? ? words_dic[k] += 1? ? ?
? ? else:
? ? ? ? words_dic[k] = 1print(words_dic)
統計結果:
?
4.完整代碼
import collections
f = open(r"C:\Users\aaa\Desktop\new.txt",encoding="utf-8")
a = f.read().split()
print(a)
print(collections.Counter(a))
words_dic = {}
for k in a:
if k in words_dic:
words_dic[k] += 1
else:
words_dic[k] = 1
print(words_dic)
f.close()
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
