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

基于python生成詞云圖的代碼示例

 更新時間:2023年11月16日 08:32:07   作者:顏醬  
這篇文章主要個介紹了如何基于python生成詞云圖的代碼示例,文中有詳細的代碼示例喝圖文講解,對大家的學習或工作有一定的幫助,需要的朋友可以參考下

類似生成各種形狀的云圖,我也會啦!

其實也就是針對新手吧,我估計老手分分鐘,哈哈哈,我怕我忘了,隨手記錄下~

四個步驟吧:

  • 讀文件
  • 分詞
  • 生成詞云圖
  • 顯示詞云圖

1. 讀文件

使用了下 codecs 庫,讀取內容更方便。

import codecs
def get_file_content(filePath):
  with codecs.open(filePath, 'r', 'utf-8') as f:
      txt = f.read()
  return txt

2. 分詞

jieba是一個分詞庫,可以將一段文本分割成詞語。cut 是將文本精確切分開,不存在冗余詞語。比如顏醬是一個厲害的廚師,會變成['顏醬', '厲害', '廚師']。 Counter是一個計數(shù)器,可以統(tǒng)計詞語出現(xiàn)的次數(shù),most_common 是取出最常用的詞語。

import jieba
from collections import Counter
def get_words(txt):
    # 先分詞,得到詞語數(shù)組
    seg_list = jieba.cut(txt)
    # 開始計數(shù)
    c = Counter()
    for x in seg_list:
        if len(x)>1 and x != '\r\n':
            c[x] += 1
    word_list = []
    print('常用詞頻度統(tǒng)計結果')
     # 統(tǒng)計前99個詞
    for (k,v) in c.most_common(99):
        word_list.append(str(k))
    # 將詞語生成文本文件
    file = open("./dist/out_words.txt", 'w').close()
    with open("./dist/out_words.txt",'a+',encoding='utf-8') as writeFile:
        for (k,v) in c.most_common(99):    # 統(tǒng)計前99個詞
            writeFile.write(str(k))
            writeFile.write(str(v))
            writeFile.write('\n')
    print(word_list)
    # ['發(fā)展','平安']
    return word_list

3. 生成云圖

wordcloud 是一個詞云庫,可以將詞語生成詞云圖片。

import wordcloud;
def generate_cloud_image(file_path, shape_image_path):
  word_list = get_words(get_file_content(file_path))
  string = ' '.join(word_list)
  # 讀取詞云形狀圖片
  image = imageio.v2.imread(shape_image_path)
  # 先實例化一個詞云對象
  wc = wordcloud.WordCloud(width=image.shape[0],     # 詞云圖寬度同原圖片寬度
                          height=image.shape[1],
                          background_color='white',  # 背景顏色白色
                          font_path='Arial Unicode.ttf',    # 指定字體路徑,微軟雅黑,可從自帶的字體庫中找
                          mask=image,   # mask 指定詞云形狀圖片,默認為矩形
                          scale=3)      # 默認為1,越大越清晰
  # 生成詞云
  wc.generate(string)
  # 保存成文件,output_wordcloud.png,詞云圖
  wc.to_file('dist/output_wordcloud.png')
  # 彈出圖片顯示
  alert_image('dist/output_wordcloud.png')

4. 顯示詞云圖

matplotlib是一個繪圖庫,可以將圖片顯示出來,plt 用于顯示圖片,mpimg 用于讀取圖片。

#
# plt用于顯示圖片
import matplotlib.pyplot as plt
# mpimg 用于讀取圖片
import matplotlib.image as mpimg
def alert_image(image_path):
  # 這里是讓詞云圖彈出來顯示
  lena = mpimg.imread(image_path) # 讀取和代碼處于同一目錄下的 lena.png
  # 此時 lena 就已經是一個 np.array 了,可以對它進行任意處理
  lena.shape #(512, 512, 3)
  plt.imshow(lena) # 顯示圖片
  plt.axis('off') # 不顯示坐標軸
  plt.show()

這就可以了!

其他文件

準備好文件實驗:

input.txt

input.txt

cloud.jpg

generate_cloud_image.py

generate_cloud_image.py:

import codecs
import jieba
import imageio
import wordcloud
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from collections import Counter
# def get_words(txt):...
# def get_file_content:...
# def alert_image(image_path):...
# def generate_cloud_image(file_path, shape_image_path):...
generate_cloud_image('input.txt', 'cloud.jpg')

完整版:

import codecs
import jieba
import imageio
import wordcloud
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from collections import Counter
#  get_words函數(shù)用于統(tǒng)計詞頻,生成out.txt,展示詞語和詞頻 如發(fā)展218 堅持170
def get_words(txt):
    seg_list = jieba.cut(txt)
    c = Counter()
    for x in seg_list:
        if len(x)>1 and x != '\r\n':
            c[x] += 1
    word_list = []
    print('常用詞頻度統(tǒng)計結果')
     # 統(tǒng)計前99個詞
    for (k,v) in c.most_common(99):
        word_list.append(str(k))

    file = open("./out_words.txt", 'w').close()
    with open("./out_words.txt",'a+',encoding='utf-8') as writeFile:
        for (k,v) in c.most_common(99):    # 統(tǒng)計前99個詞
            writeFile.write(str(k))
            writeFile.write(str(v))
            writeFile.write('\n')
    print(word_list)
    # ['發(fā)展','平安']
    return word_list

def get_file_content(filePath):
    with codecs.open(filePath, 'r', 'utf-8') as f:
        txt = f.read()
    return txt
def alert_image(image_path):
    # 這里是讓詞云圖彈出來顯示
    lena = mpimg.imread(image_path) # 讀取和代碼處于同一目錄下的 lena.png
    # 此時 lena 就已經是一個 np.array 了,可以對它進行任意處理
    lena.shape #(512, 512, 3)
    plt.imshow(lena) # 顯示圖片
    plt.axis('off') # 不顯示坐標軸
    plt.show()

# 根據(jù)文件生成詞云圖,file_path是文本文件路徑,shape_image_path是詞云圖的圖片途徑
def generate_cloud_image(file_path, shape_image_path):
    word_list = get_words(get_file_content(file_path))
    string = ' '.join(word_list)
    # 讀取詞云形狀圖片
    image = imageio.v2.imread(shape_image_path)
    # 生成詞云圖片,先實例化一個詞云對象
    wc = wordcloud.WordCloud(width=image.shape[0],     # 詞云圖寬度同原圖片寬度
                            height=image.shape[1],
                            background_color='white',  # 背景顏色白色
                            font_path='Arial Unicode.ttf',    # 指定字體路徑,微軟雅黑,可從win自帶的字體庫中找
                            mask=image,   # mask 指定詞云形狀圖片,默認為矩形
                            scale=3)      # 默認為1,越大越清晰
    # 再給詞云
    wc.generate(string)
    # 保存成文件,output_wordcloud.png,詞云圖
    wc.to_file('output_wordcloud.png')
    alert_image('output_wordcloud.png')

generate_cloud_image('input.txt', 'cloud.jpg')

運行

記得先pip3 install jieba imageio wordcloud matplotlib然后python3 generate_cloud_image.py??:文件在同一目錄,進到這個目錄下運行命令

以上就是基于python生成詞云圖的代碼示例的詳細內容,更多關于python生成詞云圖的資料請關注腳本之家其它相關文章!

相關文章

  • 使用python批量修改XML文件中圖像的depth值

    使用python批量修改XML文件中圖像的depth值

    這篇文章主要介紹了使用python批量修改XML文件中圖像的depth值,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Python自動化測試框架:unittest、pytest、Selenium、requests和Pytest-BDD

    Python自動化測試框架:unittest、pytest、Selenium、requests和Pytest-BDD

    本文介紹了Python中幾種常見的自動化測試框架,包括unittest、pytest、Selenium、requests和 Pytest-BDD,以及各自的優(yōu)缺點和適用場景,通過實戰(zhàn)案例幫助開發(fā)者編寫高質量的測試代碼,提高代碼質量
    2026-05-05
  • Python 將RGB圖像轉換為Pytho灰度圖像的實例

    Python 將RGB圖像轉換為Pytho灰度圖像的實例

    下面小編就為大家?guī)硪黄狿ython 將RGB圖像轉換為Pytho灰度圖像的實例。具有很好的參考價值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Python多線程URL性能優(yōu)化方法詳解

    Python多線程URL性能優(yōu)化方法詳解

    這篇文章主要介紹了Python多線程URL性能優(yōu)化方法,本文將通過一個實際案例,詳細介紹如何使用ThreadPoolExecutor實現(xiàn)多線程URL處理,并加入時間統(tǒng)計功能進行性能分析,需要的朋友可以參考下
    2025-04-04
  • OpenAI?Function?Calling特性示例詳解

    OpenAI?Function?Calling特性示例詳解

    這篇文章主要為大家介紹了OpenAI?Function?Calling特性作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • python 自動去除空行的實例

    python 自動去除空行的實例

    今天小編就為大家分享一篇python 自動去除空行的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python+numpy實現(xiàn)矩陣的行列擴展方式

    Python+numpy實現(xiàn)矩陣的行列擴展方式

    今天小編就為大家分享一篇Python+numpy實現(xiàn)矩陣的行列擴展方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 如何基于opencv實現(xiàn)簡單的數(shù)字識別

    如何基于opencv實現(xiàn)簡單的數(shù)字識別

    現(xiàn)在很多場景需要使用的數(shù)字識別,比如銀行卡識別,以及車牌識別等,在AI領域有很多圖像識別算法,大多是居于opencv 或者谷歌開源的tesseract 識別,下面這篇文章主要給大家介紹了關于如何基于opencv實現(xiàn)簡單的數(shù)字識別,需要的朋友可以參考下
    2021-09-09
  • 使用Django和Flask獲取訪問來源referrer

    使用Django和Flask獲取訪問來源referrer

    這篇文章主要介紹了使用Django和Flask獲取訪問來源referrer,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal

    Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal

    這篇文章主要介紹了Python動態(tài)參數(shù)/命名空間/函數(shù)嵌套/global和nonlocal,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05

最新評論

洞头县| 宁强县| 汽车| 宁阳县| 中山市| 广南县| 伊金霍洛旗| 威海市| 通城县| 沈丘县| 浑源县| 株洲县| 溆浦县| 磐石市| 阜新市| 定州市| 湟源县| 仁怀市| 齐河县| 富顺县| 兴国县| 滦南县| 离岛区| 崇阳县| 深泽县| 岳西县| 册亨县| 吉林省| 霍邱县| 南昌县| 湖南省| 西城区| 石城县| 大新县| 凤山县| 东至县| 富源县| 新乡县| 娱乐| 遂宁市| 视频|