※2023年2月現在TwitterAPIの有料化に伴い更新を止めています。

ソシャナビをリリースして2ヶ月経ちました。このタイミングで簡単ですがソシャナビで利用している技術をご紹介しようと思います。

目次

全体システム図

全体的なシステム構成図は以下です。

 

この中で最も重要であるのは解析システムです。

解析システムが各種ツィートを収集したり、各種APIにアクセスして感情分析の登録など解析作業を行います。

この図だと雑多な感じがするので次のページで実際の各種解析の動きを解説します。

ツィート収集

まずツィートの収集です。使うシステムは以下です。

 

管理ツールで集計したいテーマのキーワードを登録後、キーワードを元にしたツィートの収集をします。キーワードは一つのテーマにつき複数登録できるので、基本ヒットしそうなものを手当たり次第登録しています。

予算上の問題で、投稿抽出量はおおよそ100-1000です。解析したいものによりますがだいたいは200程度でおさえています。数に制限がある都合上、1日あたりの取得投稿を制限することでサンプリングしています。

ちなみに、基本UIからの指示による半自動抽出ですが、投稿数が200いかなかった場合は、毎週自動的にその週の新着投稿を抽出しています。

ここまでは準備段階でここからが解析になります。なお、後述する各種分析の関係でRTなどの重複投稿は排除するようにしています。

感情分析

まずご紹介する解析は感情分析です。利用するシステムは以下です。

 

投稿ごとに感情分析APIにアクセスしてポジネガの判定をもらいます。判定後、データベースに登録して平均点などを集計できるようにしています。

投稿分類

次が投稿分類です。利用するシステムは以下です。

 

投稿分類は一般個人のコメントか、広告コメントか、メディア系の投稿かを分類しています。また、記事としての解析対象に利用していませんがスパムや誹謗中傷投稿はこの分類作業で排除しています。

当初この作業は手作業で結構苦痛が伴うものでした。しかしながら、1万件ほど手動分類を行ったタイミングでAIを導入しました。

具体的には過去の分類結果を機械学習させて、AIに投稿の分類をさせるものです。精度としては83%ほどで、手動分類でも5投稿に1投稿くらいは広告にするかメディアにするか悩んだりするのでAIとしてはなかなかの精度であると思っています。

自動分類はかなり便利ではあるのですが、このAIで判定を行ったり、機械学習を行うとそれなりに費用がかかることと、より精度を高めるために判定チェックや学習データ増強も必要であることから引き続き手動分類も平行で行っています。

ワードクラウド作成

最後に行う解析がワードクラウド作成です。やることはシンプルで解析システムがツィートを収集してワードクラウドを作成するのみです。

 

当初は検索キーワードなどの典型キーワード以外はワードクラウドの除外ワード(StopWord)設定していませんでした。

それゆえに、例えば本をテーマに調査するとき、小説、漫画などキーワードを設定しても当たり前のようにAmazonやKindleが出てきて席巻してしまいます。

そのため、あまりにも頻出しすぎる関連定番ワードは除外した方がおもしろい発見がでてくることがだんだんわかってきたため、積極的に除外ワードを登録して編集を行うようにしています。

ちなみにWordCloud作成に関して、ポジティブコメントだけのもの、一般個人だけのものなどセグメント別に作るように設定しております。

要約

この他、ツィート全体の要約もソシャナビのシステムでは行っています。

要約は、作成結果によってはユーザーが投稿したツィートそのままのものが公開される可能性があります。

そのため、著作権やプライバシーのリスクがあることから内容の公開はせず、記事作成の参考までにとどめています。

代わりに、抽出に使った投稿についてサンプリングして公開するようにしています。

データ取得

データの解析は以上です。ここまで紹介したように、リアルタイムではなくバッチベースで解析しています。そのため、実際に記事としてデータを出すときは各種APIや作成した画像のパスを指定するのみで大きな処理はしていません。

下の図がデータ取得時のシステムの動きです。

 

上の図のようにやっていることはデータ取得というシンプルな操作しかしていません。

終わりに

以上です。まだまだ4種類の分析しか実質やっていませんが、こちらを駆使しつつ新しい記事を書ければと思います。

なお、具体的な自然言語処理技術の仕組みなどは以下を読んでみると理解が深まるかもしれません。読みやすくおすすめです。

また、新たな解析手法を思いつき開発できれば、追加できればと思います。

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