Cloud Natural Language API とは
GCP の テキスト分析用 API です。
使い方(導入)
公式ドキュメント が全てですが、一部ハマったところを書いておきます。
1. 認証用の JSON ファイルの取得
認証用の JSON ファイル(秘密鍵込み)は、GCP の「IAM と管理」メニューから「サービスアカウント」を選択して作成します。「オプション」として設定できる内容はスキップしても大丈夫です。
この JSON ファイルは再度ダウンロードすることができないので、大切に取り扱います。
2. Ruby 2.7 では 'google-protobuf' gem のバージョンを 3.11.1 にする必要がある
Ruby 2.7 の場合は 'google-cloud-language' gem の依存で入ってくる 'google-protobuf' gem のバージョンを明示的に 3.11.1 に指定する必要があります。理由は次のとおりです。
3. 認証用の JSON ファイルの指定はコード内でも可能
認証用の JSON ファイルを指定する方法は、公式ドキュメントには以下のように書かれています。
環境変数 GOOGLE_APPLICATION_CREDENTIALS を、サービス アカウント キーが含まれる JSON ファイルのファイルパスに設定します。
この方法とは別に、Ruby のコードから場所を指定することもできます*1。具体的には gem のドキュメント に書かれている通りで、以下のようにします。
Google::Cloud::Language.configure do |config| config.credentials = '/path/to' end
4. 公式ドキュメントにある 'language.analyze_sentiment' 以外の情報を取得する方法
公式ドキュメントではレスポンスの対象として analyze_sentiment
を指定してます。Cloud Natural Language API には他のレスポンスもあり(公式サイト参照)、それぞれのレスポンスを取得するためのメソッドは gem のドキュメントに記載があります。
雑感
GCP のアカウントやプロジェクトの設定、API の有効化 などは一般的な方法で OK です。
*1:環境変数にもファイルの場所を設定できるので、柔軟に隠避できます