楽屋

WordCloudで単語頻度図を作る

本技術ブログの目的

 こんにちは。DATUM STUDIOの岩城です。本技術ブログでは、テキスト中の単語頻度を可視化するためにWordCloundを用いた単語頻度図の作成を行います。WordCloudはテキストデータを頻度の高い単語ほど大きな文字で表示した単語頻度図を生成するライブラリです。自然言語処理において対象とするテキスト中の単語頻度を調べることは極めて重要で、WordCloudによる単語頻度図はそれらの直感的な理解に役立ちます。
 今回は馴染み深い(?)「日本国憲法」を題材にPythonからWordCloudの単語頻度図の描画を目指します。

 

描画までの流れ

 描画までの流れは下記の通りです。

(1) テキストデータの準備
(2) MeCabによるテキストのわかちがき
(3) WordCloudによる描画

 上記に示す様に、テキストデータをWordCloudに投入するだけでは単語頻度図が得られません。WordCloudでテキストの単語頻度図を作成するには、テキストの「わかちがき」(2)をする必要があります。「わかちがき」とは文章を単語単位で分割することで、MeCab, Kuromoji などの形態素解析ツールがよく利用されます。例えば「今日私は学校へ行きます。」という文章があるとすると、形態素解析ツールは「今日/私/は/学校/へ/行き/ます/。」の様に単語レベルで文章を「わかちがき」します。単語ごとに空白で区切られる英語などの言語と違って日本語は文章中における単語の切れ目が明確でないため、テキストから単語を抽出するには「わかちがき」の工程が欠かせません。
 「わかちがき」された単語をそのまま用いても良いですが、助詞や句読点などの記号は文章の意味に寄与しないため、重要な品詞のみが選択される場合も多いです。また、名詞でも「こと」の様に文意に影響しない単語を stopword として除外する処理もしばしば行われます。ここでは名詞、動詞、形容詞の品詞選択と任意のstopword の処理を実行しました。

 

Pythonスクリプト例

 「描画までの流れ」の処理を実際に行ったPythonスクリプト例は下記の通りです。まずは既成モジュールをインポートします。

 次に計算に必要なクラスや関数の定義です。「わかちがき」は Wakatiという自作クラスで処理されます。選択する品詞リストやストップワードもここで設定しています。

 最後にテキストから「わかちがき」を通じてWordCloudの単語頻度図を作成する部分です。描画条件は引数で変更が可能で、今回は外形を弊社ロゴの一部にアレンジしてみました(mask=datum_mask の部分)。

 

作図結果

 「日本国憲法」を対象としたWordCloudによる単語頻度図は下図の様になりました。

 

まとめ

 題材が「日本国憲法」だけあって「国民」、「国会」、「内閣」、「法律」、「憲法」などの単語
が大きく目立ちます。それ以外に関しても中学の公民で習った聞き覚えのあるワードが埋め込まれて
いる様に見られます。なかなか「日本国憲法」を文章として目を通す機会はないかもしれませんが、
本技術ブログの様にWordCloudの単語頻度図にすれば、少なくとも何について書かれていてるか
直感的に捉える助けとなったでしょう。テキスト内容の可視化にWordCloudによる単語頻度図の作成
はオススメです。

[参考文献]


(1) http://www.shugiin.go.jp/internet/itdb_annai.nsf/html/statics/shiryo/dl-constitution.htm
(2) https://amueller.github.io/word_cloud/generated/wordcloud.WordCloud.html