Pythonはどのように語群を生成するか(詳細分析)

3905 ワード

前言
今日はwrodcloudモジュールで語雲を生成することを教えています.小説を読んで語雲を生成しました.まず効果図を見てみましょう.
効果図1:
効果図2:
効果図による分析は正確で、小説の主人公は「程理」なので、出現回数が最も多い.図には2つのモードがあります.1つはデフォルトのモードで、もう1つは自分で画像を背景に追加します.次に、私はみんなを連れて、どのように語雲を生成するかを勉強します.
wordcloudのインストール
新人にとってwordcloudモジュールのインストールは大きな関門であり、PycharmまたはPIPでインストールするのが一般的ですが、wordcloudをインストールするとエラーが表示されます.以下のようにします.
私の解決方法は直接下のウェブサイトにアクセスして、あなたのコンピュータとpyバージョンによって対応するwhlファイルをダウンロードします
https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
ダウンロードが完了したら、whlファイルをpipパスの下に置いて、次のコードを入力して、コードのwhlファイル名がきっとあなたに似合うファイル名であることを覚えて、私はただ例を挙げます:

pip install wordcloud-1.4.1-cp36-cp36m-win32.whl


実行後にインストールに成功したと表示されます
wordcloudの簡単な使い方
wordcloudの基本的な方法は、ソースコードを見ると以下の通りです.
各パラメータは一目でわかるはずですが、wordcloudにはfit_のような他の方法がいくつかあります.words,generate(text),to_file(filename)などはとても分かりやすいです.
wordcloud生成語群
効果図1のコード:

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

path_txt='C://Users/Administrator/Desktop/all.txt'
f = open(path_txt,'r',encoding='UTF-8').read()

#     ,     ,wordcloud             
cut_text = " ".join(jieba.cut(f))

wordcloud = WordCloud(
   #    ,         ,               ,      
   font_path="C:/Windows/Fonts/simfang.ttf",
   #     ,  
   background_color="white",width=1000,height=880).generate(cut_text)

plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()


実行後:
効果図2、語群に画像の背景を加えて、コードは以下の通りです.

from PIL import Image
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy as np
import  jieba
def GetWordCloud():
   path_txt = 'C://Users/Administrator/Desktop/all.txt'
   path_img = "C://Users/Administrator/Desktop/timg.jpg"
   f = open(path_txt, 'r', encoding='UTF-8').read()
   background_image = np.array(Image.open(path_img))
   #     ,     ,       ,             ,            ,       
   #Python join()                             。
   cut_text = " ".join(jieba.cut(f))

   wordcloud = WordCloud(
       #     ,         ,               ,      
       font_path="C:/Windows/Fonts/simfang.ttf",
       background_color="white",
       # mask  =    ,     ,   mask           
       mask=background_image).generate(cut_text)
   #      
   image_colors = ImageColorGenerator(background_image)
   #           
   plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
   plt.axis("off")
   plt.show()

if __name__ == '__main__':
   GetWordCloud()


実行後:
みんなに役に立つことを望みます!
みんなは私の微信の公衆番号に注目することができます:“秦子帥”の1つの品質があって、態度の公衆番号があります!