ブログ

最新情報をお届けします。

TwitterとMicrosoft Azureを使ったAPIによる感情分析

データ分析 2019.9.17

著者:Craig Cullum

原文:https://www.knime.com/blog/will-they-blend-today-twitter-and-azure-sentiment-analysis-via-api

 

TwitterやFacebookは、顧客との主要なコミュニケーション手段になりつつありますが、
すべてのツイートや投稿を追跡するにはどうすればいいでしょうか。
最も重大な問題を認識し、問題を抱えている顧客に確実にアプローチするためにはどうすればよいでしょうか。

 

KNIMEのTwitter関連ノード

 企業はネガティブなメッセージに対処できるよう、メンションとメッセージを監視することに必死になっています。

 このプロセスを自動化する一つの方法は、機械学習で各ツイートの感情分析を行い、最も重要なツイートの優先順位付けに役立てることです。ただし、これらのモデルの構築とトレーニングには時間がかかり、困難な場合があります。
 MicrosoftやGoogle、Amazonといったクラウドプラットフォームのベンダーから機械学習関連のサービスが次々にリリースされています。
 これらのAPIはどれも素晴らしいものですが、PythonやJavaなどの言語でアプリケーションを作成する必要があります。
 KNIMEワークフローでは「REST Web Servies」ノードを利用することでAPIを利用することができます。
 当記事では、Twitter のツイートデータを Microsoft Azure Cognitive Services (Text Analytics API) で感情分析を行う方法を探ります。

トピック
 Twitter で Microsoft Azure Cognitive Services を使用します。
チャレンジ
 Twitter と Microsoft Azure Cognitive Services を組み合わせ、ツイートに対する感情分析を行います。
 最もネガティブなつぶやきをランク付けし、ソーシャルメディアとPRチームが対話できるインタラクティブなテーブルを提供します。
アクセスモード/統合ツール
 TwitterとMicrosoft Azure Cognitive Services

実験

この実験に外部サービスを利用しているので、以下が必要になります。

 Twitter APIアカウントノードで使用するには、Twitter開発者アカウントのAPIキー、シークレット、アクセストークン、およびアクセストークンシークレットが必要です。Azure Cognitive Servicesのサブスクリプションキーも必要です。

 

Azure Cognitive Servicesアカウントを作成する

 Azureポータルにログインしたとき。Cognitive Servicesに移動して、KNIME用の新しいサービスを作成します。
  1. [Add] をクリックし、テキスト分析サービスを検索します。
  2. [Create] をクリックし、サービスに名前、場所、およびリソースグループを指定してプロビジョニングします。これが最初のAzureサービスである場合は、新しいリソースグループを作成する必要があります。

図1:[Create] をクリックし、サービスに名前、場所、およびリソースグループを割り当てます。

  3. 作成したら、[Resource Management]の下の[Quick Start]セクションに移動して、Web APIキーとAPIエンドポイントを見つけることができます。ワークフローで必要に応じて保存してください。

 

図2:Web APIキーとAPIエンドポイントを見つけることができるリソース管理のクイックスタートセクション

 

ツイートを抽出してAzure Cognitive Servicesに渡す

 このワークフローの展開は信じられないほど簡単で、実際にはわずか15ノードで実行できます。
 ワークフローには、次のタスクを処理する3つの部分があります。

  1. Twitterからデータを抽出し、それらをCognitive Services APIと互換性のあるJSON形式にラップする。
  2. その要求をCognitive Servicesに送信する。
  3. 出力JSON形式を取り、それをレポート用の構造化表に変換する。感情のランク付けと色の適用。

 

図3:Twitterノードを使用してTwitter検索を実行し、POSTリクエストノードを介してこれをAzure Cognitive Services APIに送信するワークフロー

 

 Azureは次のJSON形式を想定しています。


{
“documents”: [
{
“id”: “1”,
“text”: “I loved the meal”
},
{
“id”: “2”,
“text”: “I left hungry and unhappy”
},
{
“id”: “3”,
“text”: “The service was excellent”
}
]
}

 「KNIME Analytics Platform」には優れたTwitter関連のノードが含まれており、KNIME Extensionsからインストールして利用することができます。これらのノードはすばやく簡単にTwitterに接続し、検索語に基づいてツイートをダウンロードすることができます。
 Twitterからの出力を上記のフォーマットのJSONリクエストに変換して送信することができます。定数値列ノードとJSON行結合ノードは、期待どおりにTwitter出力をドキュメント要素でまとめます。
 POSTリクエストノードを使用すると、REST APIサービスとのやりとりが非常に簡単になり、POSTリクエストを簡単に送信できます。
 ご利用になる地域用のURLを確認する必要があります、オーストラリアでは下記です。

  https://australiaeast.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment

 リクエストヘッダーをいくつか追加するので、認証を空白のままにしておくことができます。

 Header Keyを追加する必要があります。
  Content-Type
 Header Value
  application/json
 そして、別のHeader Key
  Ocp-Apim-Subscription-Key

 Subscription KeyのHeader Valueは、作成したAzure Cognitive Servicesの一部として提供されるキーになります。

 

図4:Subscription KeyのHeader Valueは、作成したAzure Cognitive Servicesの一部として提供されているキーです。

 

 KNIMEワークフローでは、Twitter APIキー、APIシークレット、アクセストークン、およびアクセストークンシークレットを使用して「Twitter API Connector」ノードを必ず更新してください。

 

図5:Twitterの[API key]、[API secret]、[Access token]、[Access token secret]で「Twitter API Connector」を更新してください。

 

 Azureからのレスポンスを取得し、グループ化を解除し、ユーザー名やフォロワー数などの追加Twitterデータとこれらのデータを結合して、この人がどの程度影響力を持っているかを理解できるようになりました。影響力が大きいほど、優先順位が高くなる可能性があります。

 

データを報告する

 作成後は、「Table View」ノードを使用し、感情のスコア値でソートされた対話型表に情報を表示できます。これをPRチームやソーシャルメディアチームに配布し、顧客サービスを改善することができます。
 このKNIMEワークフローを効果的に運用するには「KNIME Server」上の「WebPortal」でソーシャル・メディア・チーム用のオンラインサービスを作成し、レポートの更新、独自Twitterクエリーの送信、アラート送信を実行することで、チーム全体で問題を共有できるようにします。

blog│KNIME

図6:結果を表示した 「WebPortal」 の画面

 

KNIMEワークフローでTwitterとAzureを統合することができましたか?

このワークフローは一般公開されています。「KNIME Hub」
Twitterデータ分析ワークフロー。「KNIME Hub」


Craig Cullum
オーストラリアのパースに本拠を置くForest Grove Technologyの製品戦略および分析担当ディレクター。
さまざまな業界や国で分析ソリューションを提供してきた12年以上の経験を持つ彼は、現在、データ愛好家の熱心なチームを率いて、今日のビジネス上の問題に対する革新的なソリューションを見つけています。Forest Grove Technologyは、KNIMEの信頼できるパートナーです。

KNIME は無料でダウンロードが可能です。
ぜひお試しください。

このサイトでは、クッキー (cookie)などの技術を使用して取得したアクセス情報等のユーザ情報を取得しております。
この表示を閉じる場合、プライバシーポリシーに同意いただきますよう、お願いいたします。