安倍首相に関するTweetデータをテキストマイニングして可視化してみた (Part 1)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/f67b52f9-8fa7-553d-61cc-8711674331b1.png)

最近、日本の政界も色々騒ぎがありますが、それを受けてTwitterでは安倍首相に関してどんなことが話題になっているのか気になるところです。そこで今日は安倍首相に言及しているTweetデータを使ってテキスト分析してみようと思います。

ここで一つチャレンジなのは、日本語のテキスト分析になると、英語などの言語と違い、単語と単語の間にスペースがないので、単語化(トークナイズ)するのが難しいという点です。Exploratoryでは5.5.3というバージョンから日本語の単語化(トークナイズ)をMeCabなど外部のソフトウェアをインストールしなくてもできるようになりました。


# 安倍首相に言及しているTweetをTwitterからインポートする。

それではまず、安倍首相に言及しているTweetをTwitterからインポートしましょう。

## Tweetをインポート


プロジェクトを開き、画面左側のデータフレームの隣にあるプラスボタンをクリックして、クラウドアプリケーションデータを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/7102db3b-69a7-afd5-b33e-a71a79a691c4.png)

Twitter Searchをリストから選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/86038f7d-cb69-8bd0-82ba-e92b9d8af1de.png)

インポートのダイアログで以下のパラメーターを指定します。

* 言語：日本語
* 直近N日間：7
* リツイートを含む：いいえ
* センチメントを計算する：いいえ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/dd96d97c-a9f8-60bb-a24b-e7ab6a6ff35c.png)

**実行** ボタンをクリックします。無事Tweetが表示されたら、次に **保存** ボタンをクリックします。

安倍首相に関するTweetがインポートできました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/1cb342c9-415a-4682-8bdf-84ae84a4141d.png)


# テキスト分析をする
では早速Tweetデータを分析してみましょう。

## データ数を絞る

取得したTweet数が多い場合、処理が終わらないことがありますので、まずは10,000件に行数を絞ってみましょう。

画面右側の上にあるプラスボタンを押すと、メニューが出て来るので**サンプルを抽出**を選び、行の数を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/04ea1e88-3e71-7833-c83e-ad4f0f2efe5c.png)

サンプル・サイズを10000にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/6e45b91c-d1fd-a9f6-6872-911d5165b547.png)


## 単語化(トークナイズ)する

text列の列ヘッダーメニューより、テキストデータの加工(UI) -> 文章の単語化 (日本語) を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/09ba0449-5239-48fe-2cb3-2497f8969b87.png)

すると次のようなダイアログが開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/879c74c6-7e99-576e-7b78-5d74effbff3b.png)

###  ストップ・ワード(stopwords)を取り除く

単語化する際に、問題となるのは、あまりに一般的な「は」「の」「です」などのストップワードが含まれてしまうことです。このダイアログの右側にあるストップワードの言語で「日本語」を選択し、こうした日本語のストップワードを取り除いた形で単語化します。 **実行**ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/b44b9998-40da-1cbb-a3ce-208c53289a5d.png)

するとこのように、tweet毎に単語化されたデータがtokenという列に入っているのが分かります。

## さらに不要なデータを取り除く

**安倍**や**首相**と言った単語は自明すぎるので、フィルタを使って取り除きます。これには

**どれにも等しくない**というフィルタの条件が使えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/dc27a2cd-ef85-cd7f-3f6a-2290a58fc753.png)

すると次のようなフィルタのダイアログが表示されるので、安倍と首相を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/1fa7541a-2cf2-04d5-bdaf-6176d32d216d.png)

これで不要な単語を取り除くことができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/3ed170e2-fa90-d5f6-2d4f-62d6d65f4e2b.png)


# 頻出単語を調べる

それではまず、最もよく頻出している単語を見てみましょう。チャートのビューに行って、ピボットテーブルを作ります。行に**token**列を割り当てて、値に**count**列を割り当てます。count列をクリックして多い順にソートすると、**コロナ、新型、事態**などの単語が多く使われていることがわかります。(この記事は2020年3月11日時点のデータを使っています。)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/518a2a91-aa44-58ce-645c-78387a98c9f9.png)

バーチャートで同じく頻出順に上位20を並べると、次のようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/26f9b9a3-4c6e-2867-3015-290d2cee90be.png)

# ワードクラウド 

上記のような頻出単語のようなテキストをもっと見やすくするために使われる可視化の手法として、ワードクラウドというのがあります。Exploratoryではチャートの一つとしてサポートしております。新規にチャートを追加し、タイプに**ワード・クラウド**、単語に**token**列を指定し、色に分割に**count**を指定します。


出力結果は以下のようになります。コロナ、新型といった頻出回数の多い単語が大きめのフォントサイズで表示されていることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/d5af72fe-3e32-4191-e167-4fda127f5ef4.png)

色を変えたいときは、色で分割のメニューからカラーパレットを変えることもできます。

例えば、緑色の濃淡で表現したい場合は、以下のように設定します。濃い色をより頻度の高い単語に割り当てるには**カラーパレットを逆順にする**にチェックを入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/cbab9feb-4594-38c9-5f63-a79bf43383d5.png)

また、ある程度以上の頻度の単語を表示させたり、横向にしたい単語の割合を設定することもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/53a5ea84-f93d-9a70-20cb-eb28fcf88ab3.png)

すると、表示結果が以下のように変わります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90296/4af7e12f-34c3-28e9-f479-43f4b212900d.png)

長くなってきたのでは、Part 1はここまでにして、[Part 2](https://qiita.com/hidekoji/items/070bb4baa0bdf36a426f)ではトークンからNグラムを作成し、TF-IDF、クラスタリングとさらにテキスト分析をしてみます。

# まとめ

今日はTwitterから安倍首相に言及されたTweetをインポートし、日本語を単語化(トークナイズ)して、ストップ・ワード等を取り除き、頻出する単語が何かを確認するところまで見てきました。

まだExploratory Desktopをお持ちでない場合は、[こちら](https://exploratory.io/?utm_campaign=twitter_abe&utm_medium=blog&utm_source=exploratory)から30日間無料でお試しいただけます。

# データサイエンスを本格的に学んでみたいという方へ

Exploratory社がシリコンバレーで行っているトレーニングプログラムを日本向けにした、[データサイエンス・ブートキャンプ](https://exploratory.io/training-jp?utm_campaign=twitter_abe&utm_medium=blog&utm_source=exploratory)を定期的に東京で行っております。データサイエンスの手法を基礎から体系的に、プログラミングなしで学んでみたい方、そういった手法を日々のビジネスに活かしてみたい方はぜひこの機会に、参加を検討してみてください。