綜合練習 詞頻統計

2021-09-25 14:14:56 字數 3228 閱讀 8630

綜合練習

詞頻統計預處理

將所有,.?!』:等分隔符全部替換為空格

將所有大寫轉換為小寫

生成單詞列表

生成詞頻統計

排序排除語法型詞彙,代詞、冠詞、連詞

輸出詞頻最大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....