1. 下載一長篇中文小說。
2. 從文件讀取待分析文本。
3. 安裝並使用jieba進行中文分詞。
pip install jieba
import jieba
ljieba.lcut(text)
import jieba
txt = open(r'piao.txt','r',encoding='utf-8').read()
wordsls=jieba.lcut(txt)
wcdict={}
for word in wordsls:
if len(word)==1:
continue
else:
wcdict[word]=wcdict.get(word,0)+1
#word在wcdict中沒有找到對應的詞語,則返回0
wcls=list(wcdict.items())
wcls.sort(key=lambda x:x[1],reverse=True)
for i in range(25):
print(wcls[i])
4. 更新詞庫,加入所分析對象的專業詞匯。
jieba.add_word('天罡北斗陣') #逐個添加
jieba.load_userdict(word_dict) #詞庫文本文件
jieba.add_word('思嘉奧哈拉')
jieba.lcut(txt)
5. 生成詞頻統計
6. 排序(如上圖)
7. 排除語法型詞匯,代詞、冠詞、連詞
import jieba
txt = open(r'piao.txt','r',encoding='utf-8').read()
for ch in '-#$%^&*()@:{}_+[]~':
txt =txt.replace(ch," ")#將文本中的特殊字符轉換為空格替代
wordsls=jieba.cut(txt)
#分解提取單詞
print('\n')
List=str.strip('')
print(len(List),List)
#單詞計數字典
print('/n')
wordsls=set(List)
print(len(wordsls),wordsls)
wcdict={}
for word in wordsls:
if len(word)==1:
continue
else:
wcdict[word]=wcdict.get(word,0)+1
#word在wcdict中沒有找到對應的詞語,則返回0
#wcdict['思嘉']=wcdict['思嘉']+wcdict["思嘉奧哈拉"]
#del(wcdict['思嘉奧哈拉'])
wcls=list(wcdict.items())
wcls.sort(key=lambda x:x[1],reverse=True)
#排除語法型詞匯,代詞、冠詞、連詞
xx=['他們','沒有','自己','一個','什么','這樣','知道','我們','這個','這些','不過','已經','要是','覺得','那樣','而且']
wordsls= wordsls-xx
print(len(wordsls),wordsls)
jieba.add_word('思嘉 奧哈拉')
jieba.lcut(txt)
for i in range(25):
print(wcls[i])
import re
import collections
import numpy as np
import jieba
from wordcloud import WordCloud # 詞雲展示庫
from PIL import Image # 圖像處理庫
import matplotlib.pyplot as plt # 圖像展示庫
txt = open(r'piao.txt','r',encoding='utf-8').read()
for ch in '-#$%^&*()@:{}_+[]~\n':
txt =txt.replace(ch," ")#將文本中的特殊字符轉換為空格替代
stop_word=[]
stop_word=open("停用詞.txt","r",encoding='UTF-8').read().split("\n")
wordsls=jieba.lcut(txt)
object_list=[]
for i in wordsls:
if len(i)!=1:
if i not in stop_word:
object_list.append(i)
word_counts = collections.Counter(object_list) # 對分詞做詞頻統計
word_counts_top10 = word_counts.most_common(20) # 獲取前10最高頻的詞
print (word_counts_top10) # 輸出檢查
wl_split=' '.join(object_list)
mywc = WordCloud().generate(wl_split)
plt.imshow(mywc)
plt.axis("off")
plt.show()
8. 輸出詞頻最大TOP20,把結果存放到文件里
9. 生成詞雲
安裝詞雲:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple wordcloud
下載安裝:下載 https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
安裝 找到下載文件的路徑 pip install wordcloud-1.5.0-cp37-cp37m-win_amd64.whl
配置:
在WordCloud安裝的目錄下找到WordCloud.py文件,對源碼進行修改。
編輯wordcloud.py,找到FONT_PATH,將DroidSansMono.ttf修改成msyh.ttf。這個msyh.ttf表示微軟雅黑中文字體。
在同一個目錄下放置msyh.ttf字體文件供程序調用(字體可以在C:\Windows\Fonts復制)
使用:
1、引入模塊
from wordcloud import WordCloud
import matplotlib.pyplot as plt
2、導入文本
准備生成詞雲的文本word_text =' '.join(wordlist) #是以空格分隔的字符串
4、生成詞雲
mywc = WordCloud().generate(wl_split)
5、顯示詞雲
plt.imshow(mywc)
plt.axis("off")
plt.show()