中文詞頻統計與詞雲生成


作業來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822

中文詞頻統計

1. 下載一長篇中文小說。

2. 從文件讀取待分析文本。

3. 安裝並使用jieba進行中文分詞。

pip install jieba

import jieba

jieba.lcut(text)

4. 更新詞庫,加入所分析對象的專業詞匯。

jieba.add_word('天罡北斗陣')  #逐個添加

jieba.load_userdict(word_dict)  #詞庫文本文件

參考詞庫下載地址:https://pinyin.sogou.com/dict/

轉換代碼:scel_to_text

5. 生成詞頻統計

6. 排序

7. 排除語法型詞匯,代詞、冠詞、連詞等停用詞。

stops

tokens=[token for token in wordsls if token not in stops]

8. 輸出詞頻最大TOP20,把結果存放到文件里

9. 生成詞雲。

 代碼如下:

 1 import jieba
 2 def read_file():
 3      f = open('C:\\Users\\leo\\Desktop\\我當陰陽先生的那幾年.txt', 'r', encoding='utf-8')
 4      content = f.read()  #通過文件讀取字符串 str
 5      f.close()
 6      return content
 7 def read_stops():
 8      f = open('C:\\Users\\leo\\Desktop\\stops_chinese.txt', 'r', encoding='utf-8')
 9      content = f.read()  #通過文件讀取字符串 str
10      f.close()
11      return content
12 text = read_file()
13 stops = read_stops().split()
14 #添加不切割的詞
15 jieba.add_word('三清書')
16 jieba.add_word('崔作非')
17 jieba.add_word('福澤堂')
18 #分割
19 words = jieba.lcut(text)
20 #除掉stops
21 tokens = [token for token in words if token not in stops]
22 wcdict = {}
23 """統計次數並排序"""
24 for word in tokens:
25     if len(word)==1:
26         continue
27     else:
28         wcdict[word] = wcdict.get(word,0)+1
29 wcls = list(wcdict.items())
30 wcls.sort(key=lambda x:x[1],reverse=True)
31 for i in range(20):
32     print(wcls[i])
33 cut_text = " ".join(tokens)
34 """生成詞雲"""
35 from wordcloud import WordCloud
36 ciyun = WordCloud().generate(cut_text)
37 import matplotlib.pyplot as plt
38 plt.imshow(ciyun)
39 plt.axis("off")
40 plt.show()
41 ciyun.to_file(r'D:\搜狗高速下載\wordCloud.jpg')

 

 

詞頻統計截圖:

 

詞雲展示:

主要問題:pycharm安裝第三方庫不成功,目測是pip的版本太低,大概就是版本問題,第三方的庫都安裝不了

解決方法:1.通過命令行安裝

2.下載壓縮包並解壓到放置package的路徑

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM