新しい Workflows 処理機能を使用した Twitter の感情分析
Google Cloud Japan Team
※この投稿は米国時間 2021 年 10 月 9 日に、Google Cloud blog に投稿されたものの抄訳です。
Workflows チームは反復処理の構文とコネクタの一般提供を先日発表しました。
反復処理の構文により、多くのアイテムを処理するワークフローの作成が容易になり、読みやすさが向上します。for ループを使用して、リストやマップ内のデータのコレクションを反復処理し、現在のインデックスを追跡できます。反復処理する特定の数値範囲がある場合は、範囲ベースの反復処理も使用できます。
コネクタは 1 月からプレビュー版がリリースされています。他のサービスを使用するには、Workflows 用のクライアント ライブラリなどのコネクタをご検討ください。これらは認証やリクエスト形式、再試行回数に加え、長時間実行オペレーションの完了までの待機を処理します。コネクタの詳細については、以前のブログ投稿をご確認ください。1 月以降、使用可能なコネクタの数が 5 から 20 に増えました。
反復処理の構文とコネクタを組み合わせると、堅牢なバッチ処理のユースケースを実装できます。具体例を見てみましょう。この例では、Twitter ハンドルの最新ツイートの感情を分析するワークフローを作成します。Cloud Natural Language API コネクタと反復処理構文を使用します。
Twitter の感情分析のための API
このワークフローでは Twitter API と Natural Language API を使用します。それでは詳しく見ていきましょう。
Twitter API
Twitter API を使用するには、デベロッパー アカウントが必要です。デベロッパー アカウントを設定したら、アプリを作成し、API 呼び出しで使う署名なしトークンを取得する必要があります。Twitter にはツイートを検索するための API が用意されています。
Twitter 検索 API を使用して @GoogleCloudTech ハンドルから 100 件のツイートを取得する例を次に示します。
Natural Language API
Natural Language API は、機械学習を使用してテキストの構造や意味を明らかにします。感情分析、エンティティ分析、構文解析などのメソッドが揃っています。以下の例では、感情分析を使用します。感情分析は指定されたテキストを調べ、そのテキストの背景にある感情的傾向を特定します。具体的には、執筆者の考え方がポジティブか、ネガティブか、ニュートラルかを判定します。
感情分析のレスポンスの例はこちらでご覧になれます。documentSentiment の score を使用して、各投稿の感情を特定します。スコアは -1.0(ネガティブ)~1.0(ポジティブ)で表され、テキストの全体的な感情の傾向に相当します。また、処理された全ツイートの感情スコアの平均値と最小値も計算します。
ワークフローの定義
workflow.yaml ファイルでワークフローの構築を始めましょう。
init ステップでは、ランタイム引数として署名なしトークン、Twitter ハンドル、Twitter API の最大結果を読み取ります。また、感情分析に関連した変数をいくつか初期化します。
searchTweets ステップでは、Twitter API を使用してツイートをフェッチします。
processPosts ステップでは、各ツイートを分析して感情スコアを追跡します。各ツイートは、現在の index にアクセスできる新しい for-in 反復処理構文を使用して分析されます。
processPosts ステップには、複数のサブステップがあります。analyzeSentiment ステップでは、Language API コネクタを使用してツイートのテキストを分析し、次の 2 つのステップで合計感情を計算し、最小感情スコアとインデックスを追跡します。
processPosts ステップから出たら、平均感情スコアを計算し、結果をログに記録して返します。
ワークフローのデプロイと実行
ワークフローを試すには、デプロイして実行しましょう。
ワークフローをデプロイします。
ワークフローを実行します(独自の署名なしトークンを渡すことを忘れないでください)。
1 分ほど経過すると、感情スコアとともに結果が表示されます。
次のステップ
反復処理の構文とコネクタにより、コードなしで直感的かつ堅牢なワークフローでツイートを読み取って分析することができました。ご質問やフィードバックについては、@meteatamel や @krisabraun までお問い合わせください。
- デベロッパー アドボケイト Mete Atamel