步驟:
1.准備utf-8編碼的文本文件file
2.通過文件讀取字符串 str
3.對文本進行預處理
4.分解提取單詞 list
5.單詞計數字典 set , dict
6.按詞頻排序 list.sort(key=)
7.排除語法型詞匯,代詞、冠詞、連詞等無語義詞
8.輸出TOP(20)
完成:
1.英文小說 詞頻統計
2.中文小說 詞頻統計
一、英文詞頻統計
fo = open('xiaoshuo.txt', 'r', encoding='utf-8')
stra = fo.read().lower()
fo.close()
print(stra) #1.准備utf-8編碼的文本文件file 2.通過文件讀取字符串 str
sep = ',.;!'
for ch in sep:
stra = stra.replace(ch,'') #進行預處理,清除掉sep中存在的標點符號
print(stra)
strList=stra.split(' ')
print(len(strList),strList) #分解提取單詞,轉化為列表list
strSet = set(strList)
print(len(strSet),strSet) #轉化為集合
strDict = {}
for world in strSet:
strDict[world] = strList.count(world)
print(len(strDict),strDict) #轉化為字典,計算上一個集合中每個單詞出現的次數
wcList = list(strDict.items())
print(wcList) #將字典中的目錄轉化為列表輸出
wcList.sort(key=lambda x:x[1],reverse= True)
print(wcList) #按降序輸出
e = {'a','the','an','and','i','or','of'}
strSet = strSet - e
print(len(strSet),strSet) #排除語法型詞匯,代詞、冠詞、連詞等無語義詞
for i in range(20):
print(wcList[i]) #TOP20輸出
運行結果:



二、中文詞頻統計
import jieba
of = open('zhongwen.txt','r',encoding='utf-8')
strb = of.read().lower()
of.close()
print(strb)
print(list(jieba.cut(strb)))
print(list(jieba.cut(strb,cut_all=True)))
print(list(jieba.cut_for_search(strb)))
運行結果:

