Kevin's Data Analytics Blog

データサイエンティスト、AIエンジニアを目指す方に向けて情報発信していきます。

【テキストデータの分析】頻出単語の抽出・可視化 Word Cloudの作成|コピペで使えるコード付き

こんにちは。今回は、テキストデータの分析をする際によく用いられるWord Cloudについて紹介します。

f:id:dskevin:20210120225750p:plain
Word Cloudのイメージ

Word Cloudは、文章の中に出現した単語を、その出現回数に比例した大きさにして並べたものです。文章データに含まれる情報を抽出し、直感的にわかりやすく可視化することができます。
今回の記事では、Pythonを使ったWord Cloudの作成方法について紹介していきます。
なお、上の図のWord Cloudは、あるPyrhonの参考書のショッピングサイトにおけるレビューコメントを元に生成したものです。

想定環境

Windows8または、Windows10で実行することを想定して、記事を書いています。

0.事前準備

Pythonのセットアップ

Word Cloudを作成するには、Pythonを使います。もし、Pythonをまだインストールしていない方は、別の記事にしていますので、参考にしてみてください。
dskevin.hatenablog.com

ライブラリのインストール

2つのライブラリをインストールします。

・jannome
janomeを使うと、文章を解析して単語の区切りや品詞を判定して、形態素という細かい単語単位に分割することができます。この分割処理のことを、形態素解析といいます。
例:今日 / は / いい / 天気 / です
  名詞 / 助詞 / 形容詞 / 助動詞

・wordcloud
名前のとおり、Word Cloudを描くためのライブラリです。

これらのライブラリは、本記事の執筆時点ではAnacondaで標準インストールされないため、追加インストールが必要になります。コマンドプロンプトを開いて、以下のコマンドを実行するとインストールできます。

pip install janome
pip install wordcloud

分析対象ファイルの用意

今回は、より多くの方に使えるようにするため、テキスト形式(.txt)のファイルに書かれた文章を対象に、Word Cloudを描画する方法を紹介します。そのため、例えば、Excelファイル内のテキストを対象にしたい場合は、内容をメモ帳などにコピーして、テキスト形式のファイルに保存します。その際、改行や空行が残っていても、Word Cloudの結果には影響ありませんが、絵文字などの環境依存文字が含まれている場合は、念のため取り除くことをオススメします。

これで事前の準備は完了です。

1. Jupyter Notebookの起動

Pythonの実行環境を起動します。ここでは、Jupyter Notebookを使用します。他のPython実行環境でも問題ありません。

コマンドプロンプトから、以下のコマンドを実行します。

jupyter notebook

すると、ブラウザが立ち上がり、Jupyter Notebookが起動します。
Jupyter Notebookの使い方についても、別の記事にしていますので、参考にしてみてください。
dskevin.hatenablog.com

2. Word Cloudの作成

Pythonを実行してWord Couldを作成します。基本的には、コピー&ペーストすれば動くように、プログラムを書いています。
まず、ライブラリをインポートします。

from janome.tokenizer import Tokenizer
from wordcloud import WordCloud
import matplotlib.pyplot as plt

次に、変数を設定します。この部分は、ご自身の環境に合わせて、書き換えが必要です。

# 対象のテキストファイル
target_file = 'review.txt'

# 対象ファイルの文字コード ※'shift_jis'または、'utf-8'とします
file_encode = 'utf-8'

# 日本語文字フォントファイルのパス(MSゴシック以外に変えてもOK)
font_file_path = r"C:/WINDOWS/Fonts/msgothic.ttc"

target_fileの部分には、対象のファイルの場所を相対パス絶対パスで記述することも可能です。パスの記述方法についてあまり詳しくない場合は、プログラムファイルと同じフォルダに対象のテキストファイルを置いて、上記の例のように、ファイル名をシングルクォーテーション(’)で囲んで記述すれば大丈夫です。

では、いよいよ、Word Couldを作成します。実行コードは以下のとおりです。

# ファイル読み込み
f = open(target_file, 'r', encoding=file_encode)
target_texts = f.readlines()
f.close()

# 文章を分解
t = Tokenizer()
words = []
for s in target_texts:
    for token in t.tokenize(s):
        s_token = token.part_of_speech.split(',')
        # 一般名詞、自立動詞(「し」等の1文字の動詞は除く)、自立形容詞を抽出
        if (s_token[0] == '名詞' and s_token[1] == '一般') \
        or (s_token[0] == '動詞' and s_token[1] == '自立' and len(token.surface) >= 2) \
        or (s_token[0] == '形容詞' and s_token[1] == '自立'):
            words.append(token.surface)

# Word Cloudの作成
words_space = ' '.join(map(str, words))
wc = WordCloud(background_color="white", font_path=font_file_path, width=500, height=300)
wc.generate(words_space)
plt.figure(figsize=(15, 9))
plt.tick_params(labelbottom=False, labelleft=False, labelright=False, labeltop=False, length=0)
plt.imshow(wc)

これでWord Cloudが表示されると思います。
なお、Word Cloudは、同じデータを対象に実行しても、毎回、配置や配色が異なった結果が表示されます。そのため、気に入った配置・配色のものが表示されたら、画像を保存するようにしましょう。

また、最後に、それぞれの単語の出現回数を確認する方法についても紹介します。Pandasはデータ分析でよく使うライブラリですので、Pandasを使った例としています。ここでは、出現回数上位の15個の単語を表示しています。

import pandas as pd
pd.DataFrame([words]).T[0].value_counts().head(15)
f:id:dskevin:20210121101005p:plain
単語の出現回数の結果例

詳細な分析や報告をする際には、このような実際の数値も必要になると思いますので、こちらもご活用ください。

Word Cloudの活用

  • 大量のテキストデータの要約

Word Coludは、ユーザーレビュー・アンケート・問い合わせ等のテキストデータから、自社の商品やサービスに対するユーザの声を要約する、といったシーンで活用できます。データ量が膨大で、すべての文章に目を通すのが難しい場合にWord Cloudを作成して、多くのユーザに共通するワードや傾向を見つけ出す、といった使い方ができます。

  • プレゼンテーションの見栄え

Word Cloudは視覚的に訴えかけることができるため、見栄えの良いプレゼンテーション資料を作る、という使い方もできます。分析結果を報告する際のプレゼンテーション資料にWord Cloudの結果を入れることで、聴講者の注目を集めるという効果が期待できます。

f:id:dskevin:20210211100646p:plain
表よりもWord Cloudの方が見栄えが良い

まとめ

Word Cloudを使って、テキストデータを可視化する方法について紹介しました。Word CloudはPythonを使うことで簡単に作成でき、分析作業やプレゼン資料に活用することができます。そのため、テキストデータを扱う際の手法として、自身の引き出しの1つの加えておいて損はないと思います。今回の記事が、少しでも皆様のお役に立てれば幸いです。

ちなみに、今回、以下の参考書のレビューコメントを元にWord Cloudを作成しました。

こちらは、私がデータサイエンティストになりたての頃に初版が出版された本です。当時はPythonのデータ分析に関する本がまだあまり存在しなかったこともあり、こちらを購入してよく参考にしていました。主にデータの処理(加工、整形、集計)についての実践的なテクニックが載っています。文量が多いので最初に一通りざっと眺めて、「Pyrhonでこんなことも出来るんだ」と、頭に入れた上で、後で実際に作業する時に辞書のように使っていました。こちらも参考になれば幸いです。

★追伸★
本記事を投稿後、実際に本記事を見ながら、コードをコピー&ペーストしてWord Cloudを作成する様子を、動画にしてアップロードしています。必要に応じて、こちらもご参照ください。
youtu.be

最後まで読んでいただき、ありがとうございました。

Jupyter Notebook:データサイエンティストを目指す方にオススメのPython実行環境

こんにちは。今回は、多くのデータサイエンティストが実務で使用している、Jupyter Notebookについて紹介します。

Jupyter Notebookとは

Jupyter Notebookは、ブラウザ上で動作するPythonの実行環境です。下のイメージのように、見やすいデザインの画面にPythonプログラムを記述して、実行することができます。

f:id:dskevin:20210115084724p:plain
Jupyter Notebookイメージ

Pythonの開発ツールは他にもいくつかありますが、Jupyter Notebookが、Python初心者の方やデータサイエンティストを目指す方にオススメです。主な理由として、3つあります。

1. プログラムをセル単位で実行できる
プログラムを少しずつ書いて、実行した結果を確認しながら進められるため、Python初心者の方にも易しい設計になっています。

2. 表やグラフをその場に表示できる
プログラムの実行結果がその場に出るため、データを表やグラフに出力しながら作業することが多い、データ分析者に向いています。

3. プログラムの説明文をセルの外側に書ける
初心者の方が、学習した内容をメモすることに使ったり、データ分析者が、分析作業のプロセスを残すという使い方ができます。

想定環境

以下の環境を想定して、記事を書いています。

なお、Anacondaのインストール方法については、前回の記事でまとめていますので、よければこちらもご参照ください。
dskevin.hatenablog.com

起動方法

コマンドプロンプトから、以下のコマンドを実行します。

jupyter notebook

すると、ブラウザ上にJupyter Notebookのホーム画面が表示されます。

f:id:dskevin:20210122084735p:plain
Jupyter Notebookのホーム画面

これで起動できました。

Python実行用の作業フォルダ作成

Jupyter Notebookのホーム画面からは、「Desktop」、「Documents」などのフォルダが見えています。これらは、PC内に実際に存在するフォルダを表しており、Jupyter Notebookから、PC内のデータを参照することができます。

f:id:dskevin:20210122222531p:plain
ホーム画面と実際のフォルダ

Anadondaをインストールすると、ドキュメントフォルダの下に、「Python Scripts」という空のフォルダが作成されていますので、特にこだわりがなければ、ここに作業フォルダを作成します。
オススメのフォルダ構成は、以下のとおりです。

案件名   →案件ごとにフォルダを作成
├─ data   →データを入れる
├─ output  →出力結果を入れる
└─ src   →Pythonのプログラムを入れる

フォルダを作成すると、Jupyter Notebookの画面にも反映されます。

f:id:dskevin:20210122222735p:plain
オススメのフォルダ構成

ノートブックの作成

Jupyter Notebookでは、Pythonプログラムをノートブックという形式で、ファイルに保存できます。同じバージョンのPythonがインストールされた別のPCに、ノートブックのファイルをコピーして、プログラムを実行することもできます。
先ほど作成した作業フォルダに、ノートブックを作成してみましょう。
Jupyter Notebookの画面から、srcフォルダに移動します。右上の「New」ボタンをクリックし、リストの中から「Python 3」を選択します。

f:id:dskevin:20210122223659p:plain
ノートブックの作成

すると、新しいタブが開いて、以下のようなノートブックの画面が表示されます。

f:id:dskevin:20210122224120p:plain
ノートブック画面

これで、ノートブックが作成できました。
なお、左上の「Untiltled」はノートブックの名前で、クリックすると名前を変えることができます。あとで、ノートブックを見つけやすいように、プログラムの内容を表す名前を付けるようにしましょう。

f:id:dskevin:20210122224829p:plain
ノートブックのファイル

ノートブックは、ファイル名に「.ipynb」という拡張子が自動で付いて保存されます。ファイル名の拡張子が「.ipynb」なのは、以前、Jupyter Notebookは、IPython Notebookと呼ばれていた名残です。

プログラムの実行

実際にノートブックにプログラムを書いて実行してみましょう。
Jupyter Notebookでは、In[ ]:と表示されているセルにプログラムを記述することができ、セルの単位でプログラムを実行することができます。全体として長いプログラムを書く場合にも、例えば、'ファイルの読み込み'と'グラフの描画'を別々のセルを分けて書くことで、途中の結果にエラーや誤りがないことを確認しながら進めることができるため便利です。
プログラムを実行する時には、上にある[Run]ボタンを押します。または、キーボード操作で、[Shift]+[Enter]キーを押しても実行できます。慣れれば、[Shift]+[Enter]キーの方が速いです。
以下は、「print('Hello world!')」と書いて実行したイメージです。

f:id:dskevin:20210122230301p:plain
プログラムの実行例

Hello world!」という文字列が、実行結果として表示されています。このように、Jupyter Notebookでは、文字列・表・グラフなど、プログラムを実行した結果として表示するものがある場合は、実行したセルの下に表示されます。

その他の基本操作

プログラムを実行するボタンの他にも、いくつかのボタンが用意されています。それらのボタンを押すことで、Jupyter Notebookにおける基本的な操作を行うことができます。それぞれのボタンと対応する操作は、以下のとおりです。

f:id:dskevin:20210124090632p:plain
Jupyter Notebookの操作ボタン

①ノートブックを保存する
②セルを追加する
③選択したセルを切り取る/削除する
④選択したセルをコピーする
⑤切り取りまたはコピーしたセルを貼り付ける
⑥選択したセルを上方向に移動する
⑦選択したセルを下方向に移動する
⑧選択したセルを実行する
⑨実行中のプログラムを停止する
⑩ノートブックを再起動する
⑪ノートブックを再起動して、全体を上から順に実行する
⑫入力モードを変更する

特に知っておくと役に立つ機能として、③~⑦の操作は、実行結果の部分も含めてコピーや並べ替えができます。そのため、分析作業の試行錯誤をした後で、プロセスを整理する際にとても便利です。

f:id:dskevin:20210123102609p:plain
セルのコピー例

また、⑫の入力モードについては、次のセクションで紹介します。

説明文の記述

Jupyter Notebookでは、プログラムの説明文をMarkdownで記述することができます。ここでは、その方法を紹介します。
それぞれのセルは、デフォルトではCodeモードになっていて、プログラムを実行できる状態になっています。これをツールバーの右上にあるプルダウンメニュー(前セクションの図の⑫)から、「Markdown」を選択することで、Markdownモードに変更して、テキストを入力できる状態になります。説明文は、Markdownモードにして記述します。なお、キーボード操作で、[Esc]+[M]キーを押してもMarkdownモードに切り替えられます。

f:id:dskevin:20210123105558p:plain
Markdownモードへの切り替え

Markdownは、文章を見栄えの良いスタイルで記述するための記法(マークアップ言語)の1つです。Markdownを使って文章を書くと、見出しや強調などの文字装飾が簡単にできます。Markdownの文法はたくさんありますが、Jupyter Notebookでデータ分析の作業を整理する用途で使用する場合、まずは、見出しが使えれば十分だと思います。本記事の冒頭に貼ったイメージのように、見出しを使ってそのプログラムが何をやっているか説明する文章を入れると、あとから見返したときに理解しやすいです。

f:id:dskevin:20210123114017p:plain
Markdown記法での見出し

Markdownで見出しは半角シャープ(#)を使います。シャープの数によって、見出しの大きさを変えることができます。また、シャープと見出し文字の間には半角スペースを1つ入れる必要があります。
説明文を記述し終えたら、Markdownモードのセルを選択した状態で、実行ボタンを押す、または[Shift]+[Enter]キーを押します。すると、以下のように表示が切り替わります。

f:id:dskevin:20210123114221p:plain
Markdown表示例

Markdownモードで表示を切り替えた後は、セルの枠が消えます。プログラムのセルの外側に説明文が記述された状態になるため、視覚的に見やすく整理できることがJupyter Notebookの特徴です。

まとめ

Jupyter Notebookの使い方について紹介しました。他にも便利な機能がありますので、実際に使ってみて色々と試してみていただきたいと思います。Jupyter Notebookは、データサイエンティストにとって必須ともいえるツールですので、これからデータサイエンティストを目指す方にとって、この記事が少しでもお役に立てば幸いです。
また、本記事で紹介した内容を動画にして、アップロードしています。よければ、こちらも併せてご参照ください。
youtu.be

最後まで読んでいただき、ありがとうございました。

データサイエンティストを目指す方向け Pythonセットアップ方法(Windows版)

2021年は自分から発信をしていこうということで、ブログを始めることにしました。IT企業にて10年以上勤務してきた中で培った経験を基に、技術的なトピックについて共有していこうと思います。

第1回目は、Pythonのセットアップ方法を紹介します。Pythonは、近年、人気のプログラミング言語です。シンプルな文法でプログラムを書けることや、ビッグデータを処理するための便利な機能が豊富に用意されていることなどが、人気の理由として挙げられます。私自身、データサイエンティストとして働く中で、Pythonは欠かせない存在だと感じています。

今回の記事では、簡単ではありますがセットアップ方法をまとめました。これからデータサイエンティストを目指す方、Pythonを始める方の参考になれば幸いです。

1. Anacondaのダウンロード

Anacondaとは

Anacondaは、PythonディストリビューションPythonおよび、関連ソフトウェアの集まり)です。データ分析向けのライブラリやツールが多く含まれていて、それらをまとめてインストールすることができます。入手するにあたって、本記事の執筆時点では、会員登録等の手続も不要で、どなたでも無料で使うことができます。また、インストール手順も、とても簡単です。そのため、Pythonのインストール方法はいくつかありますが、今回紹介するAnacondaを使った方法がデータサイエンティストをこれから目指す方にオススメです。

 ダウンロード方法

 「python anaconda download」と検索して、「anaconda.com」という公式サイトのURLが付いたリンクを選択します。

「python anaconda download」の検索結果例

検索結果の例

もしくは、以下のリンクからも公式サイトに行けます。こちらは、URLが変わるかもしれないため、ご注意ください。

www.anaconda.com

ページの中からインストーラを探して、自身のマシン環境に適したインストーラを選択します。すると、ダウンロードが始まります。

f:id:dskevin:20210113084932p:plain

インストーラの選択画面

なお、ページのレイアウトは頻繁に変わりますので、こちらの画像は、あくまでも参考です。

2. Anacondaのインストール

 インストーラの起動

ダウンロード済のインストーラを起動します。ダウンロードフォルダなどに「Anaconda3-20XX.XX-Windows-x86_64.exe」があると思いますので、クリックまたはダブルクリックをして起動します。

f:id:dskevin:20210113085641p:plain

インストーラの起動

 

インストーラを起動すると以下のような画面が表示されます。

f:id:dskevin:20210113210347p:plain

Anacondaのインストーラ画面

インストール開始前の設定選択

インストールが始まる前に、いくつかの設定を選択します。基本的には、デフォルトの設定で「Next」を選んでいきますが、一か所だけ、デフォルトの設定からの変更した方が良い箇所があります。「Add Anaconda3 to my PATH environment variable」という項目に、デフォルトではチェックが入っていないと思いますが、チェックを入れることをオススメします。

f:id:dskevin:20210113211311p:plain

環境変数の設定

環境変数PATHについては、以降のセクションで紹介します。既にPythonの古いバージョンがインストールされていている場合に、この設定にチェックを入れると、既存のPythonの動作に影響が生じる可能性があります。Pythonを使ったシステム・サービスの動作に不具合が発生しないように、安全のため、デフォルトではチェックを外しているのだと思います。 

上記の画面で、「Install」をクリックするとインストールが始まります。

インストール完了後

「Completed」と表示されたら、インストールは完了です。

f:id:dskevin:20210114205516p:plain

インストール完了画面

「Next」をクリックします。次の画面も「Next」をクリックします。以下の画面が最後です。

f:id:dskevin:20210114205148p:plain

Finish画面

 インストーラを終了した後に、Anacondaのチュートリアルページにアクセスするかの確認です。不要の場合は、チェックを外します。ここで、「Finish」をクリックすると、インストール作業の完了です。

3. 環境変数の確認

環境変数とは

環境変数とは、OS(WindowsLinuxなど)側で保持している変数のことです。その中の1つに「PATH」という変数があります。通常、PATHには、ソフトウェアの起動ファイルの格納フォルダを設定します。これにより、PATHを設定済のソフトウェアは、その起動ファイルの場所を指定しなくても、システム側でPATHに設定されたフォルダ内を自動的に探してくれるようになります。そのため、ソフトウェアの起動が簡単になります。

ここでは、まず、環境変数が正しく設定されていることを確認します。

PATHの値を確認

「コントロールパネル」>「システムとセキュリティ」>「システム」>「システムの詳細設定」と進み、「環境変数」をクリックします。

f:id:dskevin:20210113212443p:plain

システムの詳細設定画面

PATHの行を選択して、「編集」をクリックして値を確認します。

f:id:dskevin:20210113213150p:plain

環境変数PATHの確認画面

Windows10環境では、PATHに設定されている値が一覧表示されますが、Windows8環境では、複数の値がセミコロン(;)で区切られています。

 

f:id:dskevin:20210113214447p:plain

環境変数PATHの値(Windows8

Windows8の場合は、コピーしてメモ帳に貼り付けると見やすいです。以下の5つの値が設定されていることを確認します。

  • C:[インストールフォルダ]\Anaconda3
  • C:[インストールフォルダ]\Anaconda3\Library\mingw-w64\bin
  • C:[インストールフォルダ]\Anaconda3\Library\usr\bin
  • C:[インストールフォルダ]\Anaconda3\Library\bin
  • C:[インストールフォルダ]\Anaconda3\Scripts

Aancondaでインストールした、Pythonおよび関連ツールの起動ファイルは、これらのいずれかのフォルダに格納されているため、環境変数PATHの機能によって、どこからでも、それらのソフトウェアを実行できます。

4. Pythonの起動・動作確認

python.exeの実行

Windows版のPythonは、「python.exe」というファイルを実行することで起動できます。環境変数PATHに、Anacondaのフォルダを設定済であれば、ファイルの場所を指定しなくても起動できます。そのことを確認するため、今回は、コマンドプロンプトを使ってPythonを起動します。

まず、コマンドプロンプトを開いて、「python --version」と実行します。以下の画面のように、バージョンが表示されれば、環境変数が正しく設定できています。

f:id:dskevin:20210113220129p:plain

Pythonのバージョン確認

ちなみに、ここで実行した「python」コマンドは、「python.exe」の「.exe」を省略したものです。もし、環境変数が設定されていない場合、「python.exe」のファイルの場所がみつけられないため、以下のようなエラーになります。

f:id:dskevin:20210113220750p:plain

Pythonコマンドのエラー画面

次に、実際にPythonを起動します。「python」とだけ入力して[Enter]キーを押します。起動すると、以下のような画面が表示されます。

f:id:dskevin:20210113221126p:plain

Pythonの起動画面

Pythonの動作確認

 最後に、「Hello world!」というメッセージを表示するプログラムを書いて、実行・動作確認してみます。なお、「Hello world!」の表示は、多くのプログラミング言語で、最初に勉強するプログラムです。Pythonでは、このプログラムが1行で記述できます。「print('Hello world!')」と入力して、[Enter]キーを押して実行すると、「Hello world!」と表示されます。

 

f:id:dskevin:20210114082157p:plain

Hello world!」の表示

このように、Pythonでは、プログラムを簡潔に書けることが特徴となっています。なお、Java言語で同様のプログラムを書くと、書き方の作法にもよりますが、3~5行になります。

public class HelloWorld{
   public static void main(String[] args){
     System.out.println("Hello World!!");
   }
}

まとめ

Pythonのセットアップ方法についてまとめました。わかりづらい点もあったかと思いますが、少しでもお役に立てば幸いです。

また、全ての画面遷移をスクリーンショットして貼り付けるのが大変だったので、本記事で紹介したPythonセットアップの様子を動画にして、アップロードしています。よければ、こちらも参考にしてみてください。

youtu.be

最後まで読んでいただき、ありがとうございました。