最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)繪制自定義形狀的詞云示例

 更新時間:2024年04月30日 11:42:56   作者:早八起得來  
這篇文章主要介紹了Python實現(xiàn)繪制自定義形狀的詞云示例,通過將一段文本中出現(xiàn)頻率高的單詞按其出現(xiàn)頻率大小以及顏色深淺排列成一個詞云圖形,從而更好地展示文本中的信息,需要的朋友可以參考下

前言

本文為分總結(jié)構(gòu),有特定需求的可以查閱前部分分結(jié)構(gòu)的對應(yīng)板塊,最后的總結(jié)不懂的可以在分板塊查閱解釋。分板塊分別有引用的庫、閱讀文本、分詞并設(shè)置停用詞、設(shè)置png掩膜、字體設(shè)置、生成詞云圖,感謝您點開這篇分享,祝順利。

一、引用的庫

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
import numpy as np
import jieba.posseg as pseg
from collections import Counter
import PIL.Image as Image
from matplotlib import colors

確保已安裝以上的庫,不然運行會報錯

#安裝庫可以用清華的鏡像網(wǎng)站(可能會更新,可以上官網(wǎng)查詢地址)

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

二、閱讀文本(讓python閱讀)

# 閱讀文本(這里yourfile.txt,根據(jù)文本所在具體位置進行設(shè)置)
text = open("yourfile.txt", encoding="utf-8").read()  
words = pseg.cut(text)

這里"yourfile.txt",根據(jù)文本所在具體位置進行設(shè)置

三、分詞并設(shè)置停用詞

# 按指定長度和詞性提取詞
report_words = []
for word, flag in words:
    if (len(word) >= 2) and ('n' in flag): #這里設(shè)置統(tǒng)計的字?jǐn)?shù)
        report_words.append(word)
# 設(shè)置停用詞
stopwords = set(STOPWORDS)
stopwords.update(["的", "感謝", "我代表", "以上", "報告", "表示誠摯感謝","戰(zhàn)略"])
# 去除停用詞
report_words = [word for word in report_words if word not in stopwords]
# 統(tǒng)計高頻詞匯
result = Counter(report_words).most_common(200) #詞的個數(shù)
# 建立詞匯字典
content = dict(result)
#輸出詞頻統(tǒng)計結(jié)果
for i in range(50):
    word,flag=result[i]
    print("{0:<10}{1:>5}".format(word,flag))
 

len(word)設(shè)置的是詞長,想要提取兩個兩個字的就設(shè)置2,三個三個字的就設(shè)置3(以此類推)

result = Counter(report_words).most_common(200) 這里的200是指統(tǒng)計200個詞用于繪制,可以根據(jù)需求設(shè)置

四、設(shè)置png掩膜

#設(shè)置png掩膜(yourfile.png根據(jù)實際路徑進行替換)
background = Image.open("yourfile.png")
mask = np.array(background)

yourfile.png根據(jù)實際路徑進行替換

如果輸出結(jié)構(gòu)還是長方形(正方形),應(yīng)該是png圖片“有問題”,可以嘗試以下的處理

1.用p圖軟件把圖片改成純黑色(可能別的也可以,我沒試過)

2.用以下代碼把白色背景改為透明

# 如果當(dāng)前位深是32的話,可以不用寫轉(zhuǎn)RGBA模式的這一句,但是寫上也沒啥問題
# 從RGB(24位)模式轉(zhuǎn)成RGBA(32位)模式
img = Image.open("yourfile.png").convert('RGBA')
W, L = img.size
white_pixel = (0, 0, 0, 0)  # 白色
for h in range(W):
    for i in range(L):
        if img.getpixel((h, i)) == white_pixel:
            img.putpixel((h, i), (255, 255, 255, 0))  # 設(shè)置透明
img.save("yourfile_new.png")  # 自己設(shè)置保存地址

這里有兩個參數(shù)需要修改

yourfile.png根據(jù)實際路徑進行替換,yourfile_new.png(這是修改后圖片)根據(jù)實際路徑進行替換

五、字體設(shè)置

# 設(shè)置字體樣式路徑
font_path = r"C:\Windows\Fonts\STLITI.TTF"
# 設(shè)置字體大小
max_font_size =200
min_font_size =10
# 建立顏色數(shù)組,可更改顏色
color_list = ['#FF274B']
# 調(diào)用顏色數(shù)組
colormap = colors.ListedColormap(color_list)

字體樣式:一般都在這個路徑,可以自己根據(jù)需求修改或者下載想要的字體

字體大小:最大和最小根據(jù)需求更改

字體顏色:可以不要這行代碼(默認(rèn)設(shè)置),也可以根據(jù)需求設(shè)置一種或多種顏色(我這里只設(shè)置了一種)

六、生成詞云圖

# 生成詞云
wordcloud = WordCloud(scale=4,                         #輸出清晰度
                      font_path=font_path,             #輸出路徑
                      colormap=colormap,               #字體顏色
                      width=1600,                      #輸出圖片寬度
                      height=900,                      #輸出圖片高度
                      background_color='white',        #圖片背景顏色
                      stopwords=stopwords,             #停用詞
                      mask=mask,                       #掩膜
                      max_font_size=max_font_size,     #最大字體大小
                      min_font_size=min_font_size)     #最小字體大小
wordcloud.generate_from_frequencies(content)
# 使用 matplotlib 顯示詞云
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
# 保存詞云圖
wordcloud.to_file("wordcloud.png")

如果前面參數(shù)都是按著我的來設(shè)置的話,這里直接復(fù)制粘貼就好

總結(jié)

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
import numpy as np
import jieba.posseg as pseg
from collections import Counter
import PIL.Image as Image
from matplotlib import colors
# 閱讀文本(這里yourfile.txt,根據(jù)文本所在具體位置進行設(shè)置)
text = open("yourfile.txt", encoding="utf-8").read()
words = pseg.cut(text)
# 按指定長度和詞性提取詞
report_words = []
for word, flag in words:
    if (len(word) >= 2) and ('n' in flag): #這里設(shè)置統(tǒng)計的字?jǐn)?shù)
        report_words.append(word)
# 統(tǒng)計高頻詞匯
result = Counter(report_words).most_common(200) #詞的個數(shù)
# 建立詞匯字典
content = dict(result)
#輸出詞頻統(tǒng)計結(jié)果
for i in range(50):
    word,flag=result[i]
    print("{0:<10}{1:>5}".format(word,flag))
# 設(shè)置停用詞
stopwords = set(STOPWORDS)
stopwords.update(["的", "感謝", "我代表", "以上", "報告", "表示誠摯感謝","戰(zhàn)略"])
#設(shè)置png掩膜(yourfile.png根據(jù)實際路徑進行替換)
background = Image.open("yourfile.png").convert('RGB')
mask = np.array(background)
'''
# 如果當(dāng)前位深是32的話,可以不用寫轉(zhuǎn)RGBA模式的這一句,但是寫上也沒啥問題
# 從RGB(24位)模式轉(zhuǎn)成RGBA(32位)模式
img = Image.open("yourfile.png").convert('RGBA')
W, L = img.size
white_pixel = (0, 0, 0, 0)  # 白色
for h in range(W):
    for i in range(L):
        if img.getpixel((h, i)) == white_pixel:
            img.putpixel((h, i), (255, 255, 255, 0))  # 設(shè)置透明
img.save("yourfile_new.png")  # 自己設(shè)置保存地址
'''
# 設(shè)置字體樣式路徑
font_path = r"C:\Windows\Fonts\STLITI.TTF"
# 設(shè)置字體大小
max_font_size =200
min_font_size =10
# 建立顏色數(shù)組,可更改顏色
color_list = ['#FF274B']
# 調(diào)用顏色數(shù)組
colormap = colors.ListedColormap(color_list)
# 生成詞云
wordcloud = WordCloud(scale=4,                         #輸出清晰度
                      font_path=font_path,             #輸出路徑
                      colormap=colormap,               #字體顏色
                      width=1600,                      #輸出圖片寬度
                      height=900,                      #輸出圖片高度
                      background_color='white',        #圖片背景顏色
                      stopwords=stopwords,             #停用詞
                      mask=mask,                       #掩膜
                      max_font_size=max_font_size,     #最大字體大小
                      min_font_size=min_font_size)     #最小字體大小
wordcloud.generate_from_frequencies(content)
# 使用 matplotlib 顯示詞云
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
# 保存詞云圖
wordcloud.to_file("wordcloud.png")

生成示例

到此這篇關(guān)于Python實現(xiàn)繪制自定義形狀的詞云示例的文章就介紹到這了,更多相關(guān)Python繪制詞云內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 通過pycharm使用git的步驟(圖文詳解)

    通過pycharm使用git的步驟(圖文詳解)

    這篇文章主要介紹了通過pycharm使用git的步驟(圖文詳解),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • minconda安裝pytorch的詳細(xì)方法

    minconda安裝pytorch的詳細(xì)方法

    這篇文章主要介紹了minconda安裝pytorch的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Python文件讀寫及常用文件的打開方式

    Python文件讀寫及常用文件的打開方式

    這篇文章主要介紹了Python文件讀寫及常用文件的打開方式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • python 字符串只保留漢字的方法

    python 字符串只保留漢字的方法

    今天小編就為大家分享一篇python 字符串只保留漢字的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python獲取標(biāo)準(zhǔn)北京時間的方法

    python獲取標(biāo)準(zhǔn)北京時間的方法

    這篇文章主要介紹了python獲取標(biāo)準(zhǔn)北京時間的方法,實例分析了Python通過www.beijing-time.org的官網(wǎng)獲取標(biāo)準(zhǔn)北京時間的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • python自動化測試selenium核心技術(shù)等待條件教程

    python自動化測試selenium核心技術(shù)等待條件教程

    這篇文章主要為大家介紹了python自動化測試selenium核心技術(shù)等待條件教程的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • Python實現(xiàn)購物車購物小程序

    Python實現(xiàn)購物車購物小程序

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)購物車購物小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 聊聊python中的循環(huán)遍歷

    聊聊python中的循環(huán)遍歷

    這篇文章主要介紹了python中的循環(huán)遍歷的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • python numpy 反轉(zhuǎn) reverse示例

    python numpy 反轉(zhuǎn) reverse示例

    今天小編就為大家分享一篇python numpy 反轉(zhuǎn) reverse示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • macOS M1(AppleSilicon) 安裝TensorFlow環(huán)境

    macOS M1(AppleSilicon) 安裝TensorFlow環(huán)境

    蘋果為M1芯片的Mac提供了TensorFlow的支持,本文主要介紹了如何給使用M1芯片的macOS安裝TensorFlow的環(huán)境,感興趣的可以了解一下
    2021-08-08

最新評論

柞水县| 舟曲县| 泸西县| 荃湾区| 青龙| 富川| 杭州市| 双牌县| 长沙市| 大城县| 阿合奇县| 和田市| 渝北区| 乌兰浩特市| 綦江县| 东海县| 衡阳县| 军事| 莎车县| 白沙| 丹江口市| 中卫市| 泊头市| 乡城县| 岑溪市| 新田县| 祁东县| 泸水县| 宿迁市| 聂拉木县| 大英县| 顺平县| 新安县| 威宁| 宿松县| 台东县| 广昌县| 玉山县| 镇赉县| 沽源县| 哈密市|