1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Natural Language APIを触ってみる【GCP】

Last updated at Posted at 2022-01-02

やりたいこと

GCPのNaturalLanguageAPIをローカルから実行して触ってみる。

実行環境

  • macOS Catalina 10.15.5
  • Python 3.7.4

環境構築

APIを有効にする

「Natural Language API」で検索すると、MARKETPLACEの欄に「Cloud Natural Language API」が出てきます。
image.png

「有効にする」を押します。
image.png

サービスアカウントの設定

NaturalLanguageAPI用のサービスアカウントを作成します。

image.png

「IAMと管理」→「サービスアカウント」→「サービスアカウント作成」から、以下のようなサービスアカウントを作成します。

項目 内容
サービスアカウント名 natural-language-api-test
サービスアカウントの説明 NaturalLanguageAPIテスト用
このサービスアカウントにプロジェクトのアクセスを許可する 設定しない
ユーザーにこのサービスアカウントへのアクセスを許可 設定しない

作成したサービスアカウントの編集画面から「キー」→「鍵を追加」→「新しい鍵を作成」を選びます。
image.png
形式をJSONにして鍵を作成し、ローカルにダウンロードします。

ローカルの設定

先程ダウンロードしたJSONファイルのパスを通します。

# Macの場合
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/hoge.json"

クライアントライブラリをインストールします。

pip install --upgrade google-cloud-language

感情分析

Natural Language APIでできる分析のうち、今回は感情分析を行ってみます。
以下のようなPythonスクリプトを作成し、実行します。

sample.py
from google.cloud import language_v1
client = language_v1.LanguageServiceClient()

document = {"content": "今日はいい天気だ。だが、寒くて震えそうだ。", "type_": "PLAIN_TEXT"}
response = client.analyze_sentiment(request = {"document": document})
print(response)

こちらの結果は以下のようになりました。

document_sentiment {
  magnitude: 1.100000023841858
  score: 0.10000000149011612
}
language: "ja"
sentences {
  text {
    content: "\344\273\212\346\227\245\343\201\257\343\201\204\343\201\204\345\244\251\346\260\227\343\201\240\343\200\202"
    begin_offset: -1
  }
  sentiment {
    magnitude: 0.699999988079071
    score: 0.699999988079071
  }
}
sentences {
  text {
    content: "\343\201\240\343\201\214\343\200\201\345\257\222\343\201\217\343\201\246\351\234\207\343\201\210\343\201\235\343\201\206\343\201\240\343\200\202"
    begin_offset: -1
  }
  sentiment {
    magnitude: 0.4000000059604645
    score: -0.4000000059604645
  }
}
  • document_sentiment
    • magnitude: 1.1
    • score: 0.1
  • language: "ja"
  • sentences
    • text
      • content: 省略
      • bigin_offset: -1
    • sentiment
      • magnitude: 0.7
      • score: 0.7
  • sentences
    • text
      • content: 省略
      • bigin_offset: -1
    • sentiment
      • magnitude: 0.4
      • score: -0.4

「document_sentiment」は、すべての文章を通しての感情分析で、2つの「sentences」は、それぞれ「。」で区切られた2つの文章の感情分析となっています。
「magnitude」は感情の強さ、「score」は感情のポジティブ・ネガティブ(ポジティブが正)を表しています。

参考にした記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?