python生成詞雲時的簡單介紹

本文目錄一覽:

python製作詞雲的時候怎麼使文字密集一點

選用的詞越多(max_words),樣本越大(文本的長度),就越接近正態分布。

在正態分布的情況下,低頻詞就相對多(長尾定率)。

然後就是調整max_font_size與min_font_size以及relative_scaling了,這三個參數的取值對錶觀上的密集程度有影響。

如果max_words小,長尾不明顯,詞雲中小字就少,很多地方沒有詞去填補空白,就顯示得不密集。

如果max_font_size與min_font_size沒拉開,低頻詞(長尾部分)就沒有小到足夠在高頻詞的空白中填入,字中空白就讓整個雲顯得不密集。

最後調整relative_scaling使交叉方向的比例合適,一些詞的空白處就能填入一些較短的低頻詞進一步減少空白。

python如何生成詞雲圖

from wordcloud import WordCloud

import jieba

import numpy

import PIL.Image as Image

#1.將字元串切分

def chinese_jieba(text):

wordlist_jieba=jieba.cut(text)

space_wordlist=” “.join(wordlist_jieba)

return space_wordlist

with open(“test.txt” ,encoding=”utf-8″)as file:

text=file.read()

text=chinese_jieba(text)

#2.圖片遮罩層

mask_pic=numpy.array(Image.open(“china.jpg”))

#3.將參數mask設值為:mask_pic

wordcloud = WordCloud(font_path=”C:/Windows/Fonts/simfang.ttf”,mask=mask_pic).generate(text)

image=wordcloud.to_image()

image.show()

如圖所示

Python 畫好看的雲詞圖

詞雲圖是數據分析中比較常見的一種可視化手段。詞雲圖,也叫文字雲,是對文本中出現頻率較高的 關鍵詞 予以視覺化的展現,出現越多的詞,在詞雲圖中展示越顯眼。詞雲圖過濾掉大量低頻低質的文本信息,因此只要一眼掃過文本就可 領略文章主旨 。

例如?上面這張圖,看一眼就知道肯定是新華網的新聞。

那生成一張詞雲圖的主要步驟有哪些?這裡使用 Python 來實現,主要分三步:

首先是「結巴」中文分詞 jieba 的安裝。

對於英文文本,word_cloud 可以直接對文本源生成詞雲圖。但是對中文的支持沒有那麼給力,所以需要先使用 jieba 對中文文本進行分詞,把文章變成詞語,然後再生成詞雲圖。例如:

jieba.cut 分詞:方法接受三個輸入參數,sentence 需要分詞的字元串;cut_all 用來控制是否採用全模式;HMM 用來控制是否使用 HMM 模型。

jieba.cut_for_search 分詞:方法接受兩個參數,sentence 需要分詞的字元串;是否使用 HMM 模型。該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細。

jieba.analyse.textrank 使用 TextRank 演算法從句子中提取關鍵詞。

然後安裝 wordcloud 詞雲圖庫。

如果執行上面命令後,顯示 success,那麼恭喜你,安裝成功了。

我就遇到了 Failed building wheel for wordcloud 的錯誤。於是先安裝 xcode-select, 再安裝 wordcloud 即可(無需安裝 Xcode)。

wordcloud 庫把詞雲當作一個 WordCloud 對象,wordcloud.WordCloud() 代表一個文本對應的詞雲,可以根據文本中詞語出現的頻率等參數繪製詞雲,繪製詞雲的形狀、尺寸和顏色。

1、首先導入文本數據並進行簡單的文本處理

2、分詞

3、設置遮罩

注意:

1、默認字體不支持中文,如果需要顯示中文,需要設置中文字體,否則會亂碼。

2、設置遮罩時,會自動將圖片非白色部分填充,且圖片越清晰,運行速度越快

其中 WordCloud 是雲詞圖最重要的對象,其主要參數描述如下:

效果如下圖:

上小結是將文章中所有內容進行分詞,輸出了所有詞,但很多時候,我們有進一步的需求。例如:

1、只需要前 100 個關鍵詞就夠了。

2、不需要五顏六色的詞語,應與遮罩圖片顏色一致。

100個關鍵詞,我們在分詞時使用 TextRank 演算法從句子中提取關鍵詞。

遮罩顏色可通過設置 WordCloud 的 color_func 屬性。

最終效果如下:

如何用Python做詞雲

推薦使用jieba模塊來實現分詞,WordCloud來繪製詞雲。

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

from PIL import Image

import numpy as np

import matplotlib.pyplot as plt

import jieba

from wordcloud import WordCloud, STOPWORDS

# Read the whole text.

text = open(‘內容.txt’, ‘r’).read()

text = ” “.join(jieba.cut(text, cut_all=False))

# 愛心.png表示你繪圖模板,就是最後圖片的形狀

alice_mask = np.array(Image.open(‘愛心.png’))

# 中文需要設置字體,songti.ttf代表宋體

wc = WordCloud(font_path=’songti.ttf’, background_color=”white”, mask=alice_mask,

               max_words=2000)

# generate word cloud

wc.generate(text)

# store to file

wc.to_file(‘result.png’)

# show

plt.imshow(wc)

plt.axis(“off”)

# plt.figure()

# plt.imshow(alice_mask, cmap=plt.cm.gray)

# plt.axis(“off”)

plt.show()

python中對已經排好序的詞語怎麼做詞雲

期末複習比較忙過段時間來專門寫scrapy框架使用,今天介紹如何用python生成詞雲,雖然網上有很多詞雲生成工具,不過自己用python來寫是不是更有成就感。

今天要生成的是勵志歌曲的詞雲,百度文庫裡面找了20來首,如《倔強》,海闊天空是,什麼的大家熟悉的。

所要用到的python庫有 jieba(一個中文分詞庫)、wordcould 、matplotlib、PIL、numpy。

首先我們要做的是讀取歌詞。我將歌詞存在了文件目錄下勵志歌曲文本中。

現在來讀取他

12345

#encoding=gbklyric= ”f=open(‘./勵志歌曲歌詞.txt’,’r’)for i in f:  lyric+=f.read()

加入#encoding=gbk是為了防止後面操作報錯SyntaxError: Non-UTF-8 code starting with ‘\xc0’

然後我們用jieba分詞來對歌曲做分詞提取出詞頻高的詞

123456

import jieba.analyseresult=jieba.analyse.textrank(lyric,topK=50,withWeight=True)keywords = dict()for i in result:  keywords[i[0]]=i[1]print(keywords)

得到結果:

然後我們就可以通過wrodcloud等庫來生成詞雲了

首先先自己找一張圖片來作為生成詞雲的形狀的圖

12345678910111213

from PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGeneratorimage= Image.open(‘./tim.jpg’)graph = np.array(image)wc = WordCloud(font_path=’./fonts/simhei.ttf’,background_color=’White’,max_words=50,mask=graph)wc.generate_from_frequencies(keywords)image_color = ImageColorGenerator(graph)plt.imshow(wc)plt.imshow(wc.recolor(color_func=image_color))plt.axis(“off”)plt.show()

保存生成圖片

1

wc.to_file(‘dream.png’)

完整代碼:

1234567891011121314151617181920212223242526272829

#encoding=gbkimport jieba.analysefrom PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGeneratorlyric= ”f=open(‘./勵志歌曲歌詞.txt’,’r’)for i in f:  lyric+=f.read()  result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)keywords = dict()for i in result:  keywords[i[0]]=i[1]print(keywords)  image= Image.open(‘./tim.jpg’)graph = np.array(image)wc = WordCloud(font_path=’./fonts/simhei.ttf’,background_color=’White’,max_words=50,mask=graph)wc.generate_from_frequencies(keywords)image_color = ImageColorGenerator(graph)plt.imshow(wc)plt.imshow(wc.recolor(color_func=image_color))plt.axis(“off”)plt.show()wc.to_file(‘dream.png’)

以上這篇python生成詞雲的實現方法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

python如何自定義詞雲

推薦使用jieba模塊來實現分詞,WordCloud來繪製詞雲。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

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

from PIL import Image

import numpy as np

import matplotlib.pyplot as plt

import jieba

from wordcloud import WordCloud, STOPWORDS

# Read the whole text.

text = open(‘內容.txt’, ‘r’).read()

text = ” “.join(jieba.cut(text, cut_all=False))

# 愛心.png表示你繪圖模板,就是最後圖片的形狀

alice_mask = np.array(Image.open(‘愛心.png’))

# 中文需要設置字體,songti.ttf代表宋體

wc = WordCloud(font_path=’songti.ttf’, background_color=”white”, mask=alice_mask,

max_words=2000)

# generate word cloud

wc.generate(text)

# store to file

wc.to_file(‘result.png’)

# show

plt.imshow(wc)

plt.axis(“off”)

# plt.figure()

# plt.imshow(alice_mask, cmap=plt.cm.gray)

# plt.axis(“off”)

plt.show()

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/152259.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-12 00:56
下一篇 2024-11-12 00:56

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論