感情分析のチュートリアル

オーディエンス

このチュートリアルは、Google Cloud Natural Language API を使用するアプリケーションの調査と開発をすぐに開始できるように作られています。基本的なプログラミングについて理解されている方を対象としていますが、プログラミングの深い知識がなくても、チュートリアルに沿って学習できるようになっています。このチュートリアルを終了すると、リファレンス ドキュメントを使用して独自の基本的なアプリケーションを作成できるようになります。

このチュートリアルでは、Python コードを使用した Natural Language API アプリケーションを使用します。ここでの目的は、Python クライアント ライブラリについて説明することではなく、Natural Language API を呼び出す方法を説明することです。Java や Node.js のアプリケーションも基本的にはこれと同様です。その他の言語のサンプル(チュートリアル内で使用するこのサンプルを含む)については、Natural Language API のサンプルをご覧ください。

前提条件

このチュートリアルでは次の事前準備が必要です。

ドキュメントの感情分析

このチュートリアルでは、analyzeSentiment リクエストを使用してテキストの感情分析を実行する基本的な Natural Language API アプリケーションについて説明します。感情分析は、全体的な態度(ポジティブかネガティブか)を特定する分析で、分析の結果は scoremagnitude の数値で表されます(これらの概念の詳細については、Natural Language API の基本をご覧ください)。

まずコード全体を示します(このコードのコメントのほとんどは削除されています。これは、コードそのものは単純であることを示すためです。コードについて説明していく中で、コメントを追加で示します)。

Google Cloud Natural Language の Python 用クライアント ライブラリのインストールと使用についての詳細は、Natural Language API クライアント ライブラリをご覧ください。
"""Demonstrates how to make a simple call to the Natural Language API."""

import argparse

from google.cloud import language_v1



def print_result(annotations):
    score = annotations.document_sentiment.score
    magnitude = annotations.document_sentiment.magnitude

    for index, sentence in enumerate(annotations.sentences):
        sentence_sentiment = sentence.sentiment.score
        print(f"Sentence {index} has a sentiment score of {sentence_sentiment}")

    print(f"Overall Sentiment: score of {score} with magnitude of {magnitude}")
    return 0




def analyze(movie_review_filename):
    """Run a sentiment analysis request on text within a passed filename."""
    client = language_v1.LanguageServiceClient()

    with open(movie_review_filename) as review_file:
        # Instantiates a plain text document.
        content = review_file.read()

    document = language_v1.Document(
        content=content, type_=language_v1.Document.Type.PLAIN_TEXT
    )
    annotations = client.analyze_sentiment(request={"document": document})

    # Print the results
    print_result(annotations)




if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
    )
    parser.add_argument(
        "movie_review_filename",
        help="The filename of the movie review you'd like to analyze.",
    )
    args = parser.parse_args()

    analyze(args.movie_review_filename)

これは、次のタスクを実行する簡単なアプリケーションです。

  • アプリケーションの実行に必要なライブラリをインポートする
  • テキスト ファイルを受け取って main() 関数に渡す
  • テキスト ファイルを読み取り、サービスへのリクエストを作成する
  • サービスからのレスポンスを解析してユーザーに表示する

これらのステップについて、以下で詳しく説明します。

ライブラリのインポート

Google Cloud Natural Language の Python 用クライアント ライブラリのインストールと使用についての詳細は、Natural Language API クライアント ライブラリをご覧ください。
import argparse

from google.cloud import language_v1

標準ライブラリの argparse をインポートして、アプリケーションが入力ファイル名を引数として受け取れるようにします。

Cloud Natural Language API を使用するために、google-cloud-language ライブラリから language モジュールをインポートする必要もあります。types モジュールには、リクエストの作成に必要なクラスが含まれています。

アプリケーションの実行

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
    )
    parser.add_argument(
        "movie_review_filename",
        help="The filename of the movie review you'd like to analyze.",
    )
    args = parser.parse_args()

    analyze