#前回まで
WordCloudを軽くいじくった。書式もいじくって見やすくした。
しかし、日本語出力する時はデフォルトだと文字化けしてしまうので、今回は日本語を対応させていく。
参考にさせていただいたサイト↓
[WordCloud(ワードクラウド)を日本語で作成する【Python】] (https://self-development.info/wordcloud%ef%bc%88%e3%83%af%e3%83%bc%e3%83%89%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%ef%bc%89%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%a7%e4%bd%9c%e6%88%90%e3%81%99%e3%82%8b%e3%80%90python%e3%80%91/)
ほぼまるパクり
#日本語フォント
フォントを指定する際、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の方は、フォントの指定以外は前回と変わらない。
しっかりと日本語になっている。おじいさんよりおばあさんが多いのはなんでだろう。
#まとめ
今回は、WordCloudを日本語対応させた。できたのはいいが、第1回と2回で勉強したやつ使ってなくね?調べても今回のようなコードだったので、もしかしたらただjanomeを遊んだだけの人だったのかもしれない。
思いつく限りのことはしたが、そもそも、コード同士を繋げたことがないので分からない。
できるなら勉強したコードを使いたかったけど、できたので結果オーライ!
(もしできる方法があり、わかる方がいたら教えてください...)