Python

jdepp+graphvizで日本語の係り受け解析を可視化する方法

2025年1月30日

はじめに

Python の jdepp で自然言語処理を行い、その結果を Graphviz を使って可視化する際に、
日本語が文字化けしてしまう問題に直面しました。

Graphviz は、グラフを描画するための強力なツールですが、
日本語のフォントが正しく設定されていないため、日本語が文字化けしてしまいます

文字化けしたグラフ

公開されている多くの記事では、jdepp と Graphviz を使って日本語を表示する方法が紹介されていますが、
環境のせいなのか、実際に試してみると文字化けが発生します。

この記事では、jdepp と Graphviz を使って日本語を表示する方法と、
文字化けを解消するための具体的な方法を紹介します。

 

動作環境

Python環境

Python v3.11.8
python-graphviz v0.20.3
jagger v0.1.20
jdepp v0.1.8
 インストール
$ pip install graphviz jagger jdepp

ホストOS環境

OS Windows11 Pro 24H2
Graphviz v12.2.1 (64bit) [URL]

モデル

kwdlc v0.1.0 [URL]
knbc-mecab v0.1.0 [URL]

 

解決方法

以下のコードは、Python の jdepp+Graphviz を使って、日本語を正しく表示することができます。

このコードでは、graphviz.Source オブジェクトを使用し、dot 言語のテキストに
日本語フォントを指定することで、文字化けを防いでいます。

 

コードの説明

  1. ライブラリのインポート
    プログラムの冒頭で、graphviz, jagger, jdepp をインポート
  2. 自然言語処理のモデル読込
    jaggerjdepp にモデルを読込み、日本語のテキストを解析
  3. dot 言語のテキストにフォントを追加 [★ポイント]
    jdepp.to_dot メソッドで生成された dot テキストに、日本語フォント (MS Gothic) を追加
    jdot に代入し、以降はこれを使用
  4. Graphviz でグラフを表示
    graphviz.Source を使用して、フォントが設定された dot テキストを表示

 

実行結果

紹介した Python コードで「吾輩はここで始めて人間というものを見た」という文章を入力に、
jdeppjager で自然言語処理して Graphviz で表示した結果です。

文字化しないブラフ

 

さいごに

この方法を使うことで、Python で Graphviz を使用して日本語を正しく表示できます。

特に、jdepp を使用して日本語の係り受け解析の結果を可視化する際に、
文字化けを防ぐことができます。

日本語の自然言語処理の結果を可視化する際に、ぜひ参考にしてみてください。

 

参考

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-Python
-, , , ,