綜合練習
詞頻統計預處理
將所有,.?!』:等分隔符全部替換為空格
將所有大寫轉換為小寫
生成單詞列表
生成詞頻統計
排序排除語法型詞彙,代詞、冠詞、連詞
輸出詞頻最大top20
將分析物件存為utf-8編碼的檔案,通過檔案讀取的方式獲得詞頻分析內容。
# 從記事本長讀取檔案
f = open('news.txt','r',encoding='utf-8')#開啟檔案
news = f.read()#讀取檔案
f.close()#關閉檔案
print(news)
s = ''',.;:'"!?」、『;:,。!』「'''
# 定義乙個不需要的單詞列表,即需刪除的單詞,例如代詞、冠詞、連詞等
exclude =
for i in s:
news = news.lower().replace(i,' ')
newslist = news.split()
for i in newslist:
print(i)
#方法1:通過遍歷集合建立字典
newsdict = {}
print('方法1:')
# set集合,去除了重複的鍵
#去除不必要的單詞,直接用列表減去需要去除的列表名
newsset = set(newslist)-exclude
for w in newsset:
newsdict[w] = newslist.count(w)
for w in newsdict:
print(w, newsdict[w])
# 方法2:通過遍歷列表建立字典
newsdict2 = {}
print('方法2:')
for n in newslist:
newsdict2[n] = newsdict2.get(n, 0)+1
# 減去不必要的單詞
for e in exclude:
del(newsdict2[e])
for n in newsdict2:
print(n, newsdict2[n])
print(newsdict2)
# 按歌詞出現的次數進行排序
# 將newsdict轉變成列表
# newsdict.keys()#獲取到newsdict的key值
# newsdict.values()獲取到newsdict的values值
# newsdict.items()獲取newsdict的key和values的值
dictlist = list(newsdict.items())
dictlist.sort(key=lambda x:x[1],reverse=true)
print(dictlist)
# 輸出前20個資料
for i in range(20):
print(dictlist[i])
# 儲存檔案,
f = open('newscount.txt','a')
for i in range(20):
f.write(dictlist[i][0]+' '+str(dictlist[i][1])+'\n')
f.close()
2.中文詞頻統計
從檔案讀取待分析文字。
news = open('gzccnews.txt','r',encoding = 'utf-8')
安裝與使用jieba進行中文分詞。
pip install jieba
import jieba
list(jieba.lcut(news))
生成詞頻統計
排序排除語法型詞彙,代詞、冠詞、連詞
輸出詞頻最大top20(或把結果存放到檔案裡)
import jieba
f = open('asdf.txt','r', encoding = 'utf-8')
news = f.read()
f.close()
print(list(jieba.cut(news)))
s = ''',.;:'"!?」、『;:,。!』「''?":「。」.!'《》'''
exclude = [' ','了','的','我','\n','他','道', '你','也','是','又','著','去','來', '在','都','不','雖','為','卻','那','亦','之','將','這','便','則','只','但','乃','再','因','得','此','與']
for i in s:
news = news.lower().replace(i,' ')
newslist = news.split()
for i in newslist:
print(i)
news = list(jieba.cut(news))
#方法1:通過遍歷集合建立字典
newsdict = {}
print('方法1:')
# set集合,去除了重複的鍵
#去除不必要的單詞,直接用列表減去需要去除的列表名
newsset = set(newslist)-exclude
for w in newsset:
newsdict[w] = newslist.count(w)
for w in newsdict:
print(w, newsdict[w])
# 按歌詞出現的次數進行排序
# 將newsdict轉變成列表
# newsdict.keys()#獲取到newsdict的key值
# newsdict.values()獲取到newsdict的values值
# newsdict.items()獲取newsdict的key和values的值
dictlist = list(newsdict.items())
dictlist.sort(key=lambda x:x[1],reverse=true)
print(dictlist)
# 儲存檔案,
f = open('newszxcf.txt','a')
for i in range(20):
f.write(dictlist[i][0]+' '+str(dictlist[i][1])+'\n')
f.close()
綜合練習 詞頻統計
world f.read f.close xiaoqu depart for c in depart world world.replace c,wordlist world.lower split worddict wordset set wordlist xiaoqu for a in word...
綜合練習 詞頻統計
song twinkle,twinkle,little star,how i wonder what you are.up above the world so high,like a diamond in the sky.twinkle,twinkle,little star,how i wond...
綜合練習 詞頻統計
綜合練習 詞頻統計預處理 將所有,等分隔符全部替換為空格 將所有大寫轉換為小寫 生成單詞列表 生成詞頻統計 排序排除語法型詞彙,代詞 冠詞 連詞 輸出詞頻最大top20 將分析物件存為utf 8編碼的檔案,通過檔案讀取的方式獲得詞頻分析內容。f open news.txt r s f.read f....