30facebook0twittertはてぶ2こんにちは。先日の参議院選挙では自民党が改選議席の過半数を獲得し、勝利しました。昨今ではネットを活用した選挙活動も活発に行われています。そこで今回はElasticsearchを活用して参議院選挙を振り返ってみましょう。はじめにまずは分析のデータソースが必要です。Sparkを使用しています。以下は簡単なシステム構成図です。Elasticsearchに取り込んだツイートはKibanaで簡単に見ることができます。以下はKibanaでPublicストリームのツイートを表示した例です。Twitterで「選挙」が含まれるツイートを検索するでは保存したツイートを活用していろいろな情報を探してみましょう。簡単に"選挙"が含まれるツイートを探してみます。Kibanaの検索欄に以下のようにタイプすると、ツイート本文に"選挙"が含まれるツイートの一覧を抽出することができます。"選挙"以下が検索結果です。・・・なんか妙に少ないですね。Kibana画面右上の検索範囲を調整することで検索範囲を広げることができます。days」まで広げて再度検索してみます。ヒットするようになりました。Kibana画面上には日時ごとにどの程度のヒットがあるかを視覚的に表示しています。検索にヒットした件数(ツイート数)は約140,000件です。見ると、6月18日と、7月10日に多くのツイートが行われているようです。7月10日は投票日でしたのでツイートが多いのは合点がいきますが、6月18日には何があったのでしょうか。棒グラフをクリックすると、その日時のデータをさらに抽出します。選挙は選挙でも「AKB48総選挙」がヒットしていました。これは今回の趣旨とは異なりますのでフィルタしましょう。以下のような検索条件で、再度ツイートを抽出してみます。"総選挙"だいぶ意図通りの結果が出るようになりました。過去60日で選挙に関するツイートを抽出してみます。ヒット数は全体で約100,000ツイートでした。streamなのでツイートのすべてが取得できているわけではありませんが、Twitter全体の中での傾向もおおよそ似たようなものになっているかと思います。投票日当日のツイート数が最も多く、次いで6月22日ごろからじわじわとツイート数が増えています。6月22日は公示日でしたので、選挙戦の始まりとともにツイートが増えていることがわかります。投票日翌日のツイートも多いですね。これは選挙の結果についてツイートしているのでしょう。その後3日ほどで選挙に関するツイート数は6月22日以前の状況に戻っています。今回の選挙は投票率が低く、あまり関心は高くなかったそうなので、みなさんの関心はすぐに他に移ってしまったのかもしれません。当選議員数とツイート数の関係つづけて各政党についてツイートされた数と、実際の結果を比較してみましょう。読売新聞のページ(http://www.yomiuri.co.jp/election/sangiin/2016/?from=ycnav3)によると、今回の参議院選挙における当選数は以下のようになっています。101,889件)にさらに政党名でフィルタをかけてみましょう。以下のようなクエリを実行します。"自民")以下は各政党でフィルタした際のツイート数の一覧です。割合の母数は、政党名に言及しているツイート数の合計(25,345件)です。5.9%グラフにしてみると以下のような感じになっています。驚くべきことに、政党の当選議員数と政党名に言及したツイートの割合には相関が見られます。細かく見ると以下のようなことがわかります。共産党についてはツイート数と当選議員数との間に相関がないように思われる社民党、生活の党、おおさか維新の会についてはおおよそ同率のツイートがあったが、当選議員数には違いが出た。深く分析をすすめるには今回の例はTwitterのようなSNSでの意見表明が現実の世界にどのように関連しているかを示す一つの例です。深く分析をすすめるとしたら、以下のようなことに配慮してみるとよりよい結果を導くことができるかもしれません。ツイートの対象(今回の場合は政党)に対する感情分析を交えるとより分析の精度を上げることができるかもしれません。政党に言及したツイートであっても、実際にはその政党を批判したり、こき下ろしたりする内容であることもあるためです昨今では議員個人がTwitterアカウントを取得して情報発信をしています。どの議員に言及しているか。言及している人がどの政党や議員をフォローしているかを分析に加味すると、より興味深い結果を導くことができるかもしれませんさいごにElasticsearchとKibanaを組み合わせることで、強力なデータベースと、自然言語による検索を行うことができます。何かを分析する場合にとても強力なツールになるでしょう。Sparkを使用することでTwitterのようなストリームデータを継続的にElasticsearchに保存することができます。今回の例は非常に簡単なものですが、より活用をすすめることで面白い結果を出すことができるかもしれません。お気づきのことがありましたらお知らせいただければ幸いです。読んでいただくなかで何か新しい発見があったのであればとても嬉しいです。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。Tokyoに、弊社木内が登壇致します。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。