欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python(wordcloud)如何根據(jù)文本數(shù)據(jù)(.txt文件)繪制詞云圖

 更新時間:2024年05月23日 11:51:06   作者:十八只兔  
這篇文章主要給大家介紹了關(guān)于Python(wordcloud)如何根據(jù)文本數(shù)據(jù)(.txt文件)繪制詞云圖的相關(guān)資料,詞云Wordcloud是文本數(shù)據(jù)的一種可視化表示方式,它通過設(shè)置不同的字體大小或顏色來表現(xiàn)每個術(shù)語的重要性,需要的朋友可以參考下

一、前言

本文將介紹如何利用python來根據(jù)文本數(shù)據(jù)(.txt文件)繪制詞云圖,除了繪制常規(guī)形狀的詞云圖(比如長方形),還可以指定詞云圖的形狀。

二、相關(guān)庫的介紹

1、安裝相關(guān)的庫

pip install jieba
pip install matplotlib
pip install wordcloud
pip install numpy
pip install Image 

2、 導(dǎo)入相關(guān)的庫

import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np
from PIL import Image # 圖像處理

3、 相關(guān)庫的介紹

  • jieba:
    結(jié)巴分詞庫,一個中文分詞庫。由于中文文本的每個漢字都是連續(xù)書寫的,因此需要對文本進(jìn)行分詞來獲得中文文本的每個詞組,即分詞。

  • matplotlib.pyplot
    圖像展示庫。用來創(chuàng)建畫布以及相關(guān)的圖像展示。在繪圖前,需要創(chuàng)建一個figure對象,即需要一張畫板才能開始繪圖。

  • wordcloud :
    詞云展示庫,可以根據(jù)文本的詞頻,對內(nèi)容進(jìn)行詞云圖的可視化。

  • numpy
    numpy是Python的一個開源的數(shù)值計算擴(kuò)展庫,主要用于處理大型多維數(shù)組和矩陣,以及進(jìn)行高效的數(shù)學(xué)運(yùn)算,廣泛應(yīng)用于數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、信號處理等領(lǐng)域。

  • Image
    Image模塊是一個強(qiáng)大的圖像處理工具,提供了對圖像文件的讀寫和處理的功能。也提供了各種功能和方法來處理和操作圖像,包括加載、保存、調(diào)整大小、旋轉(zhuǎn)、裁剪、應(yīng)用濾鏡等。

三、數(shù)據(jù)處理

1、中文分詞

  • 中文分詞可以將中文語句切割成單獨(dú)的詞組;
  • 中文分詞的工具有很多,比如 python 的第三方庫 jieba;
  • jieba 支持三種分詞模式:全模式、精確模式、搜索引擎模式。結(jié)巴分詞最主
    要的方法是 cut 方法

(1)精確模式

  • 試圖將句子最精確地切開,適合文本分析
  • 結(jié)巴分詞默認(rèn)為該模式
jieba.cut("文本內(nèi)容",cut_all=False)

(2)全模式

  • 把句子中所有可以成詞的詞語都掃描出來,速度很快,但是不能解決歧義
jieba.cut("文本內(nèi)容",cut_all=True)

(3)搜索引擎模式

  • 在精確模式的基礎(chǔ)上,對長詞再次切分,提高召回率

2、去除停用詞

  • 對中文來說,包括像“的”、“和”、“在”、“是”等副詞、量詞、介詞、嘆詞、數(shù)詞都是停用詞。這些詞匯幾乎在所有中文文本都會出現(xiàn),不具有特殊性,沒有區(qū)分度,所以通常會把這些詞從文本中去除;
  • 去除停用詞需要一個停詞表stopword.txt,將分詞后的文本中每個詞與停詞字典中的條目進(jìn)行匹配。如果匹配成功,該詞將被刪除;
  • 直接百度搜索停詞表并下載就好了
    (由于本文用到的數(shù)據(jù)集的文本內(nèi)容比較簡單,因此沒有執(zhí)行去除停用詞這一步的操作)

四、實現(xiàn)

1、繪制基本詞云圖

(1)核心

在以下代碼中,根據(jù)實際更改文件的讀取路徑以及保存路徑即可:

(2)WordCloud 參數(shù)解釋

  • 參數(shù)解釋
參數(shù)解釋
width詞云圖的寬度(默認(rèn)400像素)
height詞云圖的高度(默認(rèn)200像素)
max_font_size詞云圖字體的最大字號(根據(jù)圖片高度自動調(diào)節(jié))
min_font_size詞云圖字體的最小字號(默認(rèn)為4號字體)
max_words詞云圖顯示的最大單詞數(shù)(默認(rèn)200)
stop_words不顯示的詞語、單詞
mask指定詞云圖的形狀(默認(rèn)為長方形)
background_color詞云圖的背景顏色(默認(rèn)為黑色)
font_path字體文件的路徑
  • 如果文本是中文的,需要設(shè)置字體,否則會亂碼
font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc"

(3)完整代碼:

import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud

# 讀取文本文件
text = open(r"C:\Users\abc\Desktop\詞云圖數(shù)據(jù)\grape.txt", encoding="utf-8").read()
# 對文本進(jìn)行分詞,默認(rèn)精確模式
text1=jieba.cut(text)
# 以空格作為分隔符,將分詞后的所有字符串合并成一個新的字符串
text = ' '.join(text1)
# 根據(jù)分詞結(jié)果產(chǎn)生詞云
wc = WordCloud(font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc",width=500, height=400, mode="RGBA", background_color=None).generate(text)
# 以圖片的形式顯示詞云
plt.imshow(wc, interpolation="bilinear")
# 不顯示圖像坐標(biāo)系
plt.axis("off")
# 顯示圖像
plt.show()
#保存詞云圖
wc.to_file(r"\Users\abc\Desktop\res.png")
  • 以陳奕迅《葡萄成熟時》的歌詞作為文本數(shù)據(jù),詞云圖的結(jié)果如下:

2、繪制指定形狀的詞云圖

  • 有時候需要指定詞云圖的形狀,我們可以通過導(dǎo)入背景圖片作為詞云圖的底圖來實現(xiàn)
  • 注意:背景圖片的背景一定要是白色的,不可以是其他顏色或者透明
  • 以下面的葡萄圖片作為背景圖片:

(1)核心代碼

需要使用numpy庫以及Image庫來對背景圖片進(jìn)行圖像處理

  • 詞云圖的結(jié)果如下:

(2)詞云圖優(yōu)化

  • 我們可以給背景圖的輪廓進(jìn)行清晰化,比如給輪廓添加粗度和顏色

  • 優(yōu)化后的詞云圖如下:

(3)完整代碼:

import wordcloud
import jieba
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image # 圖像處理

#打開背景圖片
pic = Image.open("grape.jpg")
# 提取圖片的輪廓
shape = np.array(pic)
# mask為圖片背景,font_path為字體,若不設(shè)置可能亂碼
wc = wordcloud.WordCloud(mask=shape, font_path="simkai.ttf", background_color="white", contour_color='purple',contour_width=3,
max_font_size=100)
#讀取要分詞的文本文件
text = open(r'C:\Users\abc\Desktop\詞云圖數(shù)據(jù)\grape.txt', "r", encoding='UTF-8').read()
#結(jié)巴分詞
cut_text = jieba.cut(text)
result = " ".join(cut_text)
#生成詞云圖
wc.generate(result)
#保存詞云圖
wc.to_file("cloud.jpg")
# 以圖片的形式顯示詞云
plt.imshow(wc, interpolation="bilinear")
# 不顯示圖像坐標(biāo)系
plt.axis("off")
# 顯示圖像
plt.show()

總結(jié) 

到此這篇關(guān)于Python(wordcloud)如何根據(jù)文本數(shù)據(jù)(.txt文件)繪制詞云圖的文章就介紹到這了,更多相關(guān)Python根據(jù)文本繪制詞云圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Python模擬登錄pastebin.com的實現(xiàn)方法

    利用Python模擬登錄pastebin.com的實現(xiàn)方法

    這篇文章主要介紹了利用Python模擬登錄pastebin.com的實現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • 解決PyTorch與CUDA版本不匹配的問題

    解決PyTorch與CUDA版本不匹配的問題

    這篇文章主要介紹了解決PyTorch與CUDA版本不匹配的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 利用Python編寫一個簡單的聊天機(jī)器人

    利用Python編寫一個簡單的聊天機(jī)器人

    這篇文章主要為大家詳細(xì)介紹了如何利用Python編寫一個簡單的聊天機(jī)器人,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • python創(chuàng)造虛擬環(huán)境方法總結(jié)

    python創(chuàng)造虛擬環(huán)境方法總結(jié)

    在本篇內(nèi)容里我們給大家整理了關(guān)于python創(chuàng)造虛擬環(huán)境的詳細(xì)方法和步驟,需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • IntelliJ IDEA安裝運(yùn)行python插件方法

    IntelliJ IDEA安裝運(yùn)行python插件方法

    在本篇文章里我們給大家分享關(guān)于IntelliJ IDEA安裝運(yùn)行python插件方法,對此有需求的讀者們可以跟著步驟學(xué)習(xí)下
    2018-12-12
  • 編寫Python腳本批量下載DesktopNexus壁紙的教程

    編寫Python腳本批量下載DesktopNexus壁紙的教程

    這篇文章主要介紹了編寫Python腳本批量下載DesktopNexus壁紙的教程,相較于普通的爬蟲抓取,本文的下載壁紙教程還包括了設(shè)置所要下載的分辨率等功能的實現(xiàn),需要的朋友可以參考下
    2015-05-05
  • Python中字典和集合學(xué)習(xí)小結(jié)

    Python中字典和集合學(xué)習(xí)小結(jié)

    本文通過實例給大家介紹了python中字典和集合的知識小結(jié),非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-07-07
  • python中使用多線程改進(jìn)flask案例

    python中使用多線程改進(jìn)flask案例

    這篇文章主要介紹了使用多線程改進(jìn)flask案例,線程是指進(jìn)程內(nèi)的一個執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實體.線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高,更多具體內(nèi)容,需要的小伙伴可以參考下面文章相關(guān)資料,希望對你有所幫助
    2022-03-03
  • python繪制直方圖和密度圖的實例

    python繪制直方圖和密度圖的實例

    今天小編就為大家分享一篇python繪制直方圖和密度圖的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • pandas Dataframe行列讀取的實例

    pandas Dataframe行列讀取的實例

    今天小編就為大家分享一篇pandas Dataframe行列讀取的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論