2016-12-31 5 views
3

今日、)私のコードはセンチメント分析、私はGoogleのクラウドライブラリを通じて感情分析を実施しています

string text = "Feeling Not Well"; 
var client = LanguageServiceClient.Create(); 

var response = client.AnalyzeSentiment(new Document() 
{ 
    Content = text, 
    Type = Document.Types.Type.PlainText 
}); 

var sentiment = response.DocumentSentiment; 
var Score = sentiment.Score; 
var magnitude = sentiment.Magnitude; 

ですが、それは VARクライアント= LanguageServiceClient.Create(上のエラーが発生します;. エラーは

です。アプリケーションのデフォルトの資格情報は利用できません。 Google Compute Engineで実行している場合に利用できます。 それ以外の場合は、環境変数GOOGLE_APPLICATION_CREDENTIALS を定義して、資格情報を定義するファイルを指定する必要があります。 詳細については、https://developers.google.com/accounts/docs/application-default-credentialsを参照してください。

私にあなたが(あなたがCloud SDKがインストールされていると仮定して)、コマンドラインから

gcloud auth application-default login 

を使用するか、または生成してダウンロードしservice account JSON fileをし、その後にGOOGLE_APPLICATION_CREDENTIALS環境変数を設定することができますいずれかの解決策

+0

あなたは今までこの作業を取得しましたか? –

答えて

3

を与えてくださいそのファイルをポイントします。

Createメソッド呼び出しは、最初に環境変数をチェックし、環境変数が設定されていない場合は、アプリケーションのデフォルトの資格情報をgcloudから探します。

は基本的には、資格のオプションは以下のとおりです。

  • は明示的に、例えば、サービスアカウントのファイルから作成しますGoogleCredential.FromStream(stream)FAQ
  • コールで説明したように、Createに渡すことができますChannelを作成するためにそれを使用は、その場合には、引数なしで作成します(またはnullを渡す):
    • あなたがGOOGLE_APPLICATION_CREDENTIALSを設定した場合環境変数、あなたが例えばCompute EngineのかAppEngineの(あなたがGoogleのクラウドプラットフォーム上で実行している場合、これらの資格情報は、そうでない場合
    • に使用されますgcloud auth application-default loginを実行した場合は、サービスアカウントのJSONファイルが、そうでなければ
    • ここでそれだと想定されますフレキシブル)あなたはdefaulを取得しますプロジェクト
    • のt資格情報そうでない場合、呼び出しはまた、あなたのコードを簡素化するためにDocument.FromPlainTextコールを使用することができます

を失敗します。

string text = "Feeling Not Well"; 
var client = LanguageServiceClient.Create(); 

var response = client.AnalyzeSentiment(Document.FromPlainText(text)); 
var sentiment = response.DocumentSentiment; 
var Score = sentiment.Score; 
var magnitude = sentiment.Magnitude; 
+0

gcloud authアプリケーションのデフォルトのログインは良い方法ではありません。すべてのマシンにクラウドSDKが必要です。クラウドSDKがインストールされていない状態でも動作します。 – John

+0

@John:2つのオプションがあります。 'gcloud'を使うことは開発者のマシン上では便利ですが、展開には理想的ではありません。 Google Cloud Platformのマシンで実行している場合は、これを行う必要はありません。プロジェクトに所属していると検出され、既に正常に動作しているはずです。それ以外の場合は、サービスアカウントの資格情報を使用できます。たとえば、私のNoda Time WebサイトはAzure Key VaultにサービスアカウントJSONを保存し、必要に応じてそこから取得します。 *コード*はまったく変更する必要はないことに注意してください。これらのオプションはすべて自動的にチェックされます。 –

+0

あなたはコーディングを通して私に例を挙げることができますか? – John

関連する問題