實戰一:手把手教你中英文詞雲

 

                        實戰一:手把手教你中英文詞雲

1.簡介

     詞雲是一種數據呈現方式。

 

2.準備

    工具:python 3.6  sublime text

    所需安裝包:

pip install wordcloud matplotlib jieba pillow

3.WordCloud()可選的參數

font_path:可用於指定字體路徑,包括otf和ttf

width:詞雲的寬度,默認爲400

height:詞雲的高度,默認爲200

mask:蒙版,可用於定製詞雲的形狀

min_font_size:最小字號,默認爲4

max_font_size:最大字號,默認爲詞雲的高度

max_words:詞的最大數量,默認爲200

stopwords:將被忽略的停用詞,如果不指定則使用默認的停用詞詞庫

background_color:背景顏色,默認爲black

mode:默認爲RGB模式,如果爲RGBA模式且background_color設爲None,則背景將透明

4.英文詞雲

# _*_ coding:utf-8 _*_

# 進行英文詞雲生成
from wordcloud import WordCloud
import matplotlib.pyplot as plt

path = 'D://BaiduNetdiskDownload//深度有趣人工智能//實戰一 詞雲的使用//'

# 打開文本
text = open(path + 'source//constitution.txt').read()
# 生成對象
wc = WordCloud().generate(text)

# 顯示詞雲
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.show()

# 保存到文件
wc.to_file(path + 'create_images//wordcloud1.png')

由於英文單詞之間有空格,所以不需要額外的處理。

5.中文分詞

(1)不分詞的效果

這裏以西遊記爲例

# _*_ coding:utf-8 _*_
# 中文不分詞效果展示
from wordcloud import WordCloud
import matplotlib.pyplot as plt

path = 'D://BaiduNetdiskDownload//深度有趣人工智能//實戰一 詞雲的使用//'

# 打開文本
text = open(path + 'source//xyj.txt',encoding = 'UTF-8').read()
# 生成對象
wc = WordCloud(font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text)

# 顯示詞雲
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.show()

# 保存到文件
wc.to_file(path + 'create_images//wordcloud2.png')

 (2)中文分詞效果

 這裏用jieba進行中文分詞 

# _*_ coding:utf-8 _*_
# 中文分詞後的詞雲
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba

path = 'D://BaiduNetdiskDownload//深度有趣人工智能//實戰一 詞雲的使用//'

# 打開文本
text = open(path + 'source//xyj.txt',encoding = 'UTF-8').read()

# 中文分詞
text = ' '.join(jieba.cut(text))
print(text[:100])

# 生成對象
wc = WordCloud(font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text)

# 顯示詞雲
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.show()

# 保存到文件
wc.to_file(path+'create_images//wordcloud3.png')

 

(3)使用蒙版

這裏將mask翻譯爲蒙版,使用蒙版之後,可以根據提供的蒙版圖片,生成指定形狀的的詞雲

# _*_ coding:utf-8 _*_
# 使用蒙版
from wordcloud import  WordCloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba

path = 'D://BaiduNetdiskDownload//深度有趣人工智能//實戰一 詞雲的使用//'

# 打開文本
text = open(path+'source//xyj.txt',encoding='utf-8').read()

# 中文分詞
text = ''.join(jieba.cut(text))
print(text[:100])

# 生成對象
mask = np.array(Image.open(path+"source//black_mask.png"))
wc = WordCloud(mask=mask,font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text)

# 顯示詞雲
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.show()

# 保存到文件
wc.to_file(path+"create_images//wordcloud4.png")

 

(4)從蒙版中抽取顏色

# _*_ coding:utf-8 _*_
# 詞雲的顏色從蒙版中抽取

from wordcloud import  WordCloud,ImageColorGenerator
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba

path = 'D://BaiduNetdiskDownload//深度有趣人工智能//實戰一 詞雲的使用//'

# 打開文本
text = open(path+'source//xyj.txt',encoding='utf-8').read()

# 中文分詞
text = ''.join(jieba.cut(text))
print(text[:100])

# 生成對象
mask = np.array(Image.open(path+"source//color_mask.png"))
wc = WordCloud(mask=mask,font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text)

# 從圖片中生成顏色
image_colors = ImageColorGenerator(mask)
wc.recolor(color_func=image_colors)

# 顯示詞雲
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.show()

# 保存到文件
wc.to_file(path+"create_images//wordcloud5.png")

6.實戰一:手把手教你中英文詞雲

項目鏈接:鏈接: https://pan.baidu.com/s/1p-QFD3WchxrvIlCnGuexKQ 提取碼: zhcf 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章