はてだBlog(仮称)

私的なブログど真ん中のつもりでしたが、気づけばWebサイト系のアプリケーション開発周りで感じたこと寄りの自分メモなどをつれづれ述べています。2020年6月現在、Elasticsearch、pandas、CMSなどに関する話題が多めです。...ですが、だんだんとより私的なプログラムのスニペット置き場になりつつあります。ブログで述べている内容は所属組織で販売している製品などに関するものではなく、また所属する組織の見解を代表するものではありません。

Python: wordcoludでタグクラウド画像生成

Pythonタグクラウド生成ライブラリで有名なword cloudを使って、まさにこんな感じの画像ファイルを出力します。

f:id:azotar:20200614010936p:plain

amueller.github.io

github.com

日本語の場合、本来は、タグクラウドの元になるテキストについて統計的な処理や分かち書きをするところをふくめて、タグクラウドかと思いますが、ここでは、wordcloudのビジュアル処理そのものに絞った最小例を示します。

wordcloudを使った日本語 タグクラウド画像出力 Python プログラム

import wordcloud
    
def WCFunc(splitted, filename):
    #from matplotlib import font_manager
    #font_manager.findSystemFonts() # お手元の環境で、これで得られるもののうち、日本語フォントを指定してください
    font_path = 'ヒラギノ丸ゴ ProN W4.ttc'
    wc = wordcloud.WordCloud(
        font_path=font_path,
        background_color='white',
        collocations=False,
        contour_width=2)
    wc.generate(splitted)
    wc.to_file(filename)

WCFunc("""
みかん みかん みかん みかん りんご りんご
バナナ キウイ ぶどう ぶどう
レモン レモン レモン りんご りんご りんご
すいか すいか パイナップル いちご
""" ,
"wordcloudでタグクラウド.png")

(英語のセンテンスにみせかけるように)改行か半角スペースで区切られた単語からなるテキストを渡してやれば、単語出現数に応じて表示制御されるようですね。

参考にさせていただいたサイト

qiita.com