LoginSignup
2
0

【言語処理100本ノック 第5章】Google Colab上でGraphvizの日本語が文字化けした時の対処法

Last updated at Posted at 2023-11-20

はじめに

言語処理100本ノック 第5章: 係り受け解析にて、Graphvizを用いてデータの木構造を可視化する問題がある(44問)。

この際、普通にGoogle Colab上で日本語を可視化しようとすると文字化けが起こる。

pltの文字化けなどはググれば一瞬で出てくるが、GraphvizなおかつGoogle Colab上だと解決策がなかなかヒットしなかったのでメモ。

結論としてはPythonのコードをいじるのではなく、ランタイムが乗っているOSに直接フォントを入れることで解決した。

実行環境

Google Colab ランタイム(2023年10月25日時点)

コード

まずは手を加えず生のcolabで実行。

google colab
from graphviz import Digraph
from IPython.display import Image, display

!mkdir images

# 計算グラフの構造を定義
g = Digraph(f'G_test', directory='./images',format='png',)

# ノードの追加
g.node('node1', 'japanize_matplotlibだと')
g.node('node2', '文字化けが')
g.node('node3', '治らない \\\(^o^)/')

# エッジの追加
g.edge('node1', 'node2', label='')
g.edge('node2', 'node3', label='')

# 計算グラフを画像として出力
display(Image(g.render()))

結果:
image.png

英語や記号は表示できるが、日本語がお豆腐になってしまう…。

matplotlibに慣れていると、コード内でフォントを指定しようとしたり、とりあえずjapanize_matplotlibを入れるなどしがちだが、これだと治らない。

解決方法

解決方法は簡単で、Colabのランタイムが乗っているUbuntuの方に日本語フォントを入れればOK。

!apt install fonts-ipafont

結果:
image.png

参考文献

2
0
2

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
2
0