見出し画像

【初心者向け】ツイートを感情分析して自社サービスのクレーム収集→Slackにアラート投稿する


今回は、Twitterでクレームが上がっている自社サービスのクレームを自動で検知できるようになるPythonプログラムを紹介します👏

クレーム情報ってお問い合わせフォームから送信されて発覚することもあるけど、お問い合わせまではされないけどヤバそうな機能バグ・不具合は発見が遅れてしまって、問題が深刻化してから対応することになりがち。

「不具合見つけたぞ!」という時に、Twitterでその不具合をツイートする方が結構多いんですよね。とはいえ、いつもTwitterを監視しているわけにもいかないし、全てのツイートをSlackとかに流すようにすると情報が氾濫して大事な情報を見落としてしまう...。

今回は、そんな問題を解決するプログラミングチュートリアルです( ´ v ` )ノ


****** 注意 ******
この記事は公開後1日間は無料で、その後有料記事となります。
他のプログラミングチュートリアル記事も公開後1日間は無料になるので、無料で読みたい方は、noteのフォローをオススメします( ・v・)b

フォローはこちらから → https://note.mu/virtual_surfer


# 1. はじめに

こんにちは。仮想サーファー(@virtual_techX)です!

さぼりエンジニアがお届けする今回のチュートリアルコンテンツは、
「【初心者向け】Twitterを感情分析して自社に関するクレーム収集→Slackにアラート投稿する」です!




まず最初に、今回のチュートリアルでできるようになることを簡単にまとめておきますね。



できるものはどんなもの?

自社サービスに関してのツイートを収集し、感情分析してクレーム可能性の高いツイートをSlackでアラート投稿してくれるプログラムを開発します。

持たせる機能は以下。

・特定の単語でツイート検索する
・Google Natural Language APIでツイートの感情分析する
・感情分析結果クレーム可能性ありツイートをSlackにアラート投稿する

最終的には、以上をすべて自動で定期実行するようにします( ・v・)b



どんな人に読んでもらいたい?

こちらのnoteは、「プログラミング初心者だけどプログラミングをもっと学習したい!」「非エンジニアだけど自社のサービスのクレーム検知を自動化したい!」という方向けのコンテンツになっています。

・Progateをある程度やってみて、プログラミングの本を読んだりもしたけど、もっと実践的なプログラミングをしたい!
・エンジニアではないけど、普段自社サービスのエゴサしている作業をプログラムで自動化したい!

上のいずれかに該当する方に読んでもらいたいと思っています!

プログラミングをしたくない方や、感情分析してクレーム検知したいサービス・対象物がない方は、これ以上読み進めない方がいいです。このチュートリアルを読み進めても確実に苦戦するし無駄になってしまうので...。



このチュートリアルで具体的に何が学べるの?

このチュートリアルを通して学べるプログラミング技術は以下です!

① Pythonの基本的なプログラミング
② Twitter APIへのアクセス(Twitter上のデータ取得)
③ Google Natural Language APIの利用(文章の感情分析)
④ プログラムでSlackへの自動投稿
⑤ Herokuへアプリケーションのデプロイ(自動で②~④が動くようにする)

チュートリアルの最後⑤まで進めることで、Twitter上でのクレーム検知の仕組みを自動化することができます。Slackに自動投稿されるので、普段業務でSlackを使っている方はクレームが投稿されたらすぐにクレーム対応することができます( ・v・)b

④までは、プログラミング経験があまりない方だと5~6時間程度、プログラミング経験がある方だと2~3時間程度で進められる想定です。



読む前に必要な準備はある?

・MacのPC
・インターネットに接続できる環境(このnoteが普通に読めていればOK)
・ツイッターのアカウント
・Googleのアカウント(Gmailとか使っているアカウントがあればOK)

上に書いているもの以外、事前の準備は必要ありません。
すべてチュートリアル内の情報だけで完結できるように設計しています。

ただし、最低限のプログラミングの知識がないと読み進めていくのが辛いと思うので、ProgateでGit・Command Line・Pythonの基礎的な内容は理解できているとチュートリアルの内容をより理解できます。

(画像:Progateのコース選択画面



何の役に立つの?

Twitterでの自社サービスのエゴサーチ、自分のアカウント名に関してのクレーム検知などを自動化できます。

以下、今回のチュートリアルをすることでできるようになることの例。

①自社サービスのクレーム検知
②自分の記事・ツイートが炎上していることの検知

Twitter上で特定の単語でポジティブに反応されているか、ネガティブに反応されているか判定できるので、他にもいろいろ応用できそうですね( ´ v ` )ノ



# 2. チュートリアル実践

それでは、実際にチュートリアルに入っていきましょう!


Pythonの実行環境の準備

今回はPythonというプログラミング言語でプログラミングをしていくので、まずは、Pythonを実行することができる環境を準備していきます。

* 注意 *
すでにPythonを実行できる環境がある方は、「Twitterのデータにアクセスできるようになる」の箇所まで読み飛ばしてください。


①Terminalの用意

Finder > Applications > Terminalと遷移し、Macに標準で搭載されているアプリケーションTerminalを開きます。

Terminalって何?という方は、命令文を打ち込むことでパソコンを操作できる便利ツールだと捉えるとよいです。

上の画像のように黒い画面(Terminal)に命令文を打ち込んでいくことで、プログラムやPCに操作をさせることができます。


試しに、$マークの後ろに「$ echo Pythonのチュートリアルなう!」と打ち込んで、(Enterボタンを押して)命令文を実行してみてください。

「Pythonのチュートリアルなう!」という文章が表示されたはずです。「echo」という命令文は、「その後に続く文章をTerminalに表示する」という命令文を意味するので、このように文章を表示することができました。


②Homebrewのインストール

Terminalを使う準備ができたら、次にPythonを使用できるように準備していきましょう。まずは、PythonをTerminalで簡単にインストールできるように、Homebrewというものをインストールします。

先ほどと同じように、Terminalの$マーク以降の場所に次の命令文を入力します。「$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"」
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


「Press RETURN to continue or any other key to abort」と表示されたら、Enterボタンを押してください。また、「Password:」と表示されたら、いつもパソコンにログインする時に使っているパスワードを入力してください。

これによって、Homebrewがインストールされます。

Homebrewのインストールが成功したかどうかは、「$ brew -v」というHomebrewのバージョンを確認する命令文を打ち込むことで確認できます。


試しに「$ brew -v」と打ち込んでみましょう。
$ brew -v

上の画像のように、「$ brew -v」と打ち込んで、「Homebrew 1.7.6」のようにバージョン番号が表示されればインストール成功しています(バージョン番号は異なる場合があります)。


③Pythonのインストール

最後に、Pythonを使えるようにインストールしていきます。

pythonのバージョンは、3のもの(2018年12月現在で最新版)をインストールします。


これまでと同じように、「$ brew install python3」と打ち込みます。

ぼくはすでにPythonをインストールしているのでErrorとなっていますが、初めてPythonを利用する場合はインストールが成功したような表示がされるはずです。


これで自分のPC環境にPythonがインストールされたはずです。 このPythonを簡単に使えるようにするため、パスの設定をしておきましょう。

Terminalに「$ open ~/.bash_profile」と打ち込みます。

上記の命令文を打ち込むと、「.bash_profile」という名前のファイルが開かれます。

開いたファイルに、「export PATH=/usr/local/bin:$PATH」という文章をコピペして、ファイルの変更を保存します(「command」ボタンと「S」ボタン同時押しで保存するショートカットおすすめです)。

「command + S」は、Macでファイルの保存をしたい時によく使うショートカットキーです。


ファイルの保存ができたら、ファイルを閉じ、再びTerminalに戻り「$ source ~/.bash_profile」という命令文を打ち込みます。

以上によって、Terminalで「$ python3」と打ち込むことで、Pythonを動かせるようになりました。


入力できる場所が「>>> 」という表示になっていれば、Pythonが起動できています。


試しに、「>>> 1 + 1」と入力して、Enterを押してみてください。

上の画像のように「2」と表示されていればOKです!


ここまでで、Pythonを動かせる準備は終了です!



Twitterのデータにアクセスできるようになる

Pythonを実行できる環境も整ったので、早速TwitterへアクセスしてTwitterのデータを取得していきます!

* 注意 *
Twitter APIにアクセスしたことがある or アクセスできる状態の方は、「Twitter APIでツイート検索してみる」の箇所まで読み飛ばしてください。


Twitterにアクセスするためには、以下のような手順が必要です。

①Twitterへアクセスするためのアクセストークンを取得する
②Twitterにアクセスするプログラムを書く
③書いたプログラムを実行する

順を追ってチュートリアルを進めていきましょう。


①Twitterへアクセスするためのアクセストークンを取得する

まずはTwitterへプログラムでアクセスするために、アクセストークンを取得していきます。

ツイッターにログインした状態で、以下のリンク先をクリックして、ツイッターのアプリケーション管理画面に移動します。


移動すると、下の画像のような画面になっているはずです。

「Apply for a developer account」というボタンを押します。

新規アプリケーションを作成するために開発者登録をしていきます。


「Continue」をクリックします。


個人利用にチェックをいれ、情報入力して「Continue」をクリック。


次の画面でTwitter APIの利用用途を聞かれるのですが、300文字も入力するのが辛いので以下の文章も参考に進めてみてください。

(英語がおかしい箇所はお許しください。)

I'm using Twitter APIs to analyze some data for my web service development. I think Twitter data is precious and I can know many things. It helps me to know what people's insight by using Twitter API. It's going to be limited to personal use. I'm not using tweet some text or update some data with Twitter API.


最後まで進むとメール認証画面になるので、ツイッターに登録しているメールアドレスの受信メールを確認してメール認証をしましょう。


「Confirm your email」をクリック

上の画像のようなメールを受信しているので、「Confirm your email」をクリックします。


メールの認証をすると、上の画像のように「審査するからちょっと待ってね」と言われます。

半年前に初めてTwitterAPIの登録をした時は承認なしですぐ使えたのですが、徐々に制限が厳しくなっているようです。まだTwitter API登録したことない方は、早めに登録した方が良さそう。


登録したものが承認されると、Appsに表示されています。

Appsの右端の「Details」というボタンをクリック。


Keys and tokensというタブに、「API Key」・「API Secret Key」・「Access Token」・「Access Token Secret」の値が表示されています。

Twitter社はこれらの値を使ってTwitterにアクセスしてきているユーザーを識別しています。これら4つの値は後ほど使うので控えておきましょう。他人に漏れてしまうと悪用できてしまうので注意しましょう。


以上でプログラムでTwitterにアクセスする準備完了です!ひとまずお疲れ様でした( ´ v ` )ノ


ここからは、「②Twitterにアクセスするプログラムを書く」と「③書いたプログラムを実行する」を進めていきます!



Twitter APIでツイート検索してみる

ここからはTwitter APIを使って、プログラムでTwitterを操作していきます!

手始めに、先ほど用意したAPI Keyなどを利用して、特定の単語でツイートを検索してみましょう。

↑上の画像のように、Twitterで検索するとツイート一覧が出てきますが、これをプログラムで実行します。


まずは、tweepyというライブラリ(簡単にTwitterのデータにアクセスすることができる便利なツール)をインストールします。

$ pip3 install tweepy
Terminalで「$ pip3 install tweepy」と打ち込んで、実行する。


下のコマンドを実行してtweepyのバージョンが表示されれば、tweepyがインストールできています。

$ pip3 list | grep tweepy

tweepy                   3.6.0
「$ pip3 install tweepy」と打ち込んで、tweepyがインストールできているか確認する。


tweepyがインストールできていることが確認できたら、任意の名前のPythonファイル(ここでは、「test.py」というファイル名のファイルを用意します)を作成し、以下のようなコードを書いて実行してみましょう。

tweet_search.py

# coding=utf-8
import tweepy

# 以下4つ「xxxxx」を、先ほど控えた値で書き換える。
CONSUMER_KEY = 'xxxxx'
CONSUMER_SECRET = 'xxxxx'
ACCESS_TOKEN = 'xxxxx'
ACCESS_TOKEN_SECRET = 'xxxxx'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

# ツイート検索する文章(ここを書き換えれば、検索する単語変えられる)
search_text = 'PayPay'

# ツイートを検索する
search_results = api.search(q=search_text, count=100, lang='ja', result_type='mixed')

# ツイート検索結果を1件ずつ出力する
for status in search_results:
    print('---------------------------------------')
    user = status.user
    print('{}(@{}) フォロー数:{}, フォロワー数:{}\n\n{}\n\nいいね:{}, リツイート:{}'
          .format(user.name, user.screen_name, user.friends_count, user.followers_count, status.text,
                  status.favorite_count, status.retweet_count))

 「xxxxx」の4箇所は、先ほど控えておいたご自身の「API Key」・「API Secret Key」・「Access Token」・「Access Token Secret」の値で書き換えてください。

コードを簡単に説明しておきますね。

以下の箇所でTwitter APIを利用できるかどうかTwitterにチェックしてもらう認証情報(誰のアクセスか?)を用意しています。

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)


そして、以下の箇所でTwitter APIを利用して、textという変数に含まれた文字列をツイートする処理を行っています。

api.update_status(status=text)


それでは、「tweet_search.py」ファイルを実行してみましょう。

Terminalに「$ python3 tweet_search.py」と打ち込んで実行します。
$ python3 tweet_search.py

ファイルを実行して、下の画像のようにツイート情報がTerminalに出力されていればOKです。


以上で、Twitter APIでツイート検索をすることができるようになりました。



Google Natural Language APIでツイートの感情分析をしてみる


Google Natural Language APIとは?

Google Natural Language APIは、文章を解析してその文章がポジティブなのかネガティブなのか判定する感情分析をはじめ、様々なテキスト解析をしてくれるGoogleのサービスです。

(画像:Cloud Natural Language | Cloud Natural Language API
| Google Cloud


1,000 文字ごとに 1 件のテキストレコードとしてカウントされ、月間5000レコードまでは無料枠で使うことができるので、基本的には無料枠を超えることはないでしょう(2018年12月時点の料金形態)。



さっそくGoogle Natural Language APIを使ってみる

Google Natural Language APIを使って感情分析をするために必要なことは以下。

①Google Cloud PlatformでGoogle Natural Language APIを有効化する
②Google Natural Language APIのAPIキーを取得する
③Google Natural Language APIにアクセスして感情分析結果を取得する

使ってみるのが一番理解できるので、さっそくGoogle Natural Language APIを使ってみましょう!


①Google Cloud PlatformでGoogle Natural Language APIを有効化する

Google Cloud Platform(GoogleのAPIを利用できる環境)にアクセスする。

Google Cloud Platformにアクセスして、Google Natural Language APIを使えるように有効化していきます。


まだGoogle Cloud Platformに登録したことがない方は、まずはGoogle Cloud Platformに登録しましょう。

利用規約に同意できたらチェックを入れて「承認する」をクリックする。


無料トライアルに登録するため、画面右上の「有効化」をクリックする。

無料トライアルに登録すれば無料で利用できるようになるので、画面右上の「有効化」ボタンをクリックして無料登録していきます。


利用規約に同意したらチェックして、「同意して続行」をクリックする。


自分の名前・住所・クレジットカードの情報などを入力して「登録」をクリック。


画面上部の検索ボックスに「Cloud Natural Language API」と入力する。

無料トライアル登録が完了したら、画面上部の検索ボックスに「Cloud Natural Language API」と入力し、Cloud Natural Language APIの詳細ページに遷移します。


「有効にする」をクリックします。

「有効にする」をクリックして、Cloud Natural Language APIを使えるようにします。


②Google Natural Language APIのAPIキーを取得する

Google Natural Language APIの詳細ページに移動するので、画面左メニューの「認証情報」をクリックしてAPIキーを作成していきます。

「APIキー」をクリックします。

認証情報の設定をしなくてもAPIキーを取得するだけでAPIを利用することができるので、「APIキー」をクリックしてAPIキーを作成しましょう。


作成された「APIキー」をメモしておく。


以上で、Cloud Natural Language APIを使う準備は完了です。


③Google Natural Language APIにアクセスして感情分析結果を取得する

さっそく、文章の感情分析を試してみましょう。

「test_analyse_sentiment.py」というファイルを作成して、以下のようなプログラムを書きます。

test_analyse_sentiment.py

ここから先は

20,430字 / 30画像
この記事のみ ¥ 980

この記事が気に入ったらサポートをしてみませんか?