1
1

More than 1 year has passed since last update.

python初心者はWordCloudで遊んでみたい4

Last updated at Posted at 2021-09-22

前回まで

WordCloudを軽くいじくった。書式もいじくって見やすくした。
しかし、日本語出力する時はデフォルトだと文字化けしてしまうので、今回は日本語を対応させていく。

参考にさせていただいたサイト↓
WordCloud(ワードクラウド)を日本語で作成する【Python】
ほぼまるパクり

日本語フォント

フォントを指定する際、PC内のフォントを使っている方が大半ですが、今回はサイトからインストールしたフォントを使用します。
今回使用したフォントはこちら↓
https://fontfree.me/2994

ダウンロードしたらフォントをGoogleDriveに入れ、パスを指定すれば使えます。

とりあえずやってみる

from janome.tokenizer import Tokenizer
from wordcloud import WordCloud
import re

f = open("sample.txt", "r", encoding="UTF-8")
text = f.read()

FONT_PATH = '/content/drive/MyDrive/Togalite-Regular.otf'

ここは毎度同じ。必要なライブラリをimportしてテキストファイル開いてフォントパスを指定する。

def get_word_str(text):

    t = Tokenizer()
    token = t.tokenize(text)
    word_list = []

    for line in token:
        tmp = re.split('\t|,', str(line))
        if tmp[1] in ["名詞"]:
          word_list.append(tmp[0])

    return " " . join(word_list)

# 文字列取得
word_str = get_word_str(text)

wordcloud = WordCloud(font_path=FONT_PATH,
                      background_color="white",
                      colormap="summer",
                      collocations=False)
wordcloud.generate(word_str)
wordcloud.to_file("wc3.png")

参考にさせていただいたサイトとほぼ同じ。
def get_word_str(text)で形態素解析。
re.split()で文字列を分割。
if tmp[1] in ["名詞"]で名詞のみを指定。

wordcloudの方は、フォントの指定以外は前回と変わらない。

実行結果

wc3.png

しっかりと日本語になっている。おじいさんよりおばあさんが多いのはなんでだろう。

まとめ

今回は、WordCloudを日本語対応させた。できたのはいいが、第1回と2回で勉強したやつ使ってなくね?調べても今回のようなコードだったので、もしかしたらただjanomeを遊んだだけの人だったのかもしれない。
思いつく限りのことはしたが、そもそも、コード同士を繋げたことがないので分からない。
できるなら勉強したコードを使いたかったけど、できたので結果オーライ!

(もしできる方法があり、わかる方がいたら教えてください...)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1