基於python的wordcloud庫生成中文詞云

2021-08-28 13:21:32 字數 3049 閱讀 3527

python的wordcloud庫生成詞云包功能強大,還可以自定義.

官網:

github:

pip install wordcloud -i

wordcloud中主要有三個類:

wordcloud([font_path, width, height, …])

生成和繪圖的詞云物件

imagecolorgenerator(image[, default_color])

基於彩色影象的顏色生成器

random_color_func([word, font_size, …])

隨機色調顏色生成

第乙個類:

class wordcloud.wordcloud(font_path=none, width=400, height=200, margin=2, 

ranks_only=none, prefer_horizontal=0.9, mask=none, scale=1, color_func=none,

max_words=200, min_font_size=4, stopwords=none, random_state=none,

background_color='black', max_font_size=none, font_step=1, mode='rgb',

relative_scaling='auto', regexp=none, collocations=true, colormap=none,

normalize_plurals=true, contour_width=0, contour_color='black', repeat=false)

主要引數:

fit_words(frequencies)

根據單詞的頻率生成詞云

generate(text)

根據文字生成詞云

generate_from_frequencies(frequencies[, …])

根據單詞的頻率生成詞云

generate_from_text(text)

根據文字生成詞云

process_text(text)

將長文字分詞並去除遮蔽詞

recolor([random_state, color_func, colormap])

改變現有布局的顏色

to_array()

轉化為 numpy array.

to_file(filename)

輸出為image檔案

第二個類:

classwordcloud.imagecolorgenerator(image, default_color=none)
基於rgb影象生成顏色。將使用彩色影象中包圍矩形的平均顏色對單詞進行著色。構造之後,該物件充當可呼叫物件,可以作為color_func傳遞給單詞雲建構函式或recolor方法。

image:用於生成單詞顏色的影象

例子:

import jieba

import wordcloud

import matplotlib.pyplot as plt

class jiujie(object):

"""將九界天君**做成詞云

"""def __init__(self):

self.my_txt = ''

self.words =

def cut_words(self):

"""函式說明:對九界天君的內容進行分詞

"""# 讀取文字內容

with open('九界天君.txt', 'r', encoding='utf-8') as f:

self.my_txt = f.read()

# 用jieba分詞

words_list = jieba.lcut(self.my_txt, cut_all=false)

self.words = [word for word in words_list if len(word) > 1]

self.generate_wordcloud()

def generate_wordcloud(self):

"""函式說明:對分詞生成詞云

"""fig, axes = plt.subplots(1, 2)

# 讀取image

# 生成wordcloud 物件

word_cloud = wordcloud.wordcloud(background_color='white', mask=background_img,scale=2 )

# 將self.words單詞 生成詞云words_img

words_img = word_cloud.generate(' '.join(self.words))

# 直接顯示(顏色隨機分配)

axes[0].imshow(words_img)

# 基於background_img生成顏色

img_color = wordcloud.imagecolorgenerator(background_img)

# 對words_img 進行顏色重構(單詞顏色為背景顏色)

axes[1].imshow(words_img.recolor(color_func=img_color))

# 去掉座標軸

for ax in axes:

ax.set_axis_off()

# 顯示詞云

plt.show()

if __name__ == '__main__':

w = jiujie()

w.cut_words()

原:

生成結果:

基於python的爬蟲

本次初學,參考的資料見 功能主要是抓取韓寒的部落格內容,以及儲存 到 hanhan的資料夾中,執行環境實在linux下的。見 具體 如何 usr bin env python coding utf 8 import urllib import time url 60 con urllib.urlop...

基於python的opencv教程

第一次寫部落格,學習是要有輸入與輸出的,所謂教學相長。所以我想試著自己寫乙份教程,算是對自己的學習總結吧,部落格的排版比較直男,請湊合看吧。首先建議的ide是pycharm,opencv的庫直接pip安裝就好,最好大家有一定的python基礎。第一部分是關於圖象讀取和儲存。import cv2imp...

基於python的基本函式

什麼是函式?函式就是將一段 寫在一起,如果需要使用,直接呼叫即可 就是封裝一段功能 的 塊,這段 可以被多次使用 def define 定義 函式名稱命名規範 單詞全部小寫,多個單詞之間用 連線,函式名要和實現 的功能有關係,做到見名知意 def 函式名 引數列表 函式功能 def eat prin...