GCP Natural Language APIで構文解析、感情分析を簡単実行
Natural Language APIの基本
https://cloud.google.com/natural-language/docs/basics
Example
前半は入門ガイドの例をそのまま。
後半は、文章を構文解析、トークン毎に感情分析実行。
事前準備
サービスアカウントを生成、ダウンロードして、環境変数に設定して下さい。
GOOGLE_APPLICATION_CREDENTIALS="★ファイルパス★"
Gradle
compile 'com.google.cloud:google-cloud-language:1.99.0'
Java Code
import com.google.cloud.language.v1.Document; import com.google.cloud.language.v1.Document.Type; import com.google.cloud.language.v1.LanguageServiceClient; import com.google.cloud.language.v1.Sentiment; import com.google.cloud.language.v1.Token; import java.util.List; public class Main { public static void main(String[] args) { try(LanguageServiceClient language = LanguageServiceClient.create()) { String text = "素晴らしい天気だ。今日はどこかへ出かけよう。"; Document doc = Document.newBuilder().setContent(text).setType(Type.PLAIN_TEXT).setLanguage("ja").build(); Sentiment sentiment = language.analyzeSentiment(doc).getDocumentSentiment(); System.out.printf("Text: %s%n", text); System.out.printf("Sentiment: %s, %s%n", sentiment.getScore(), sentiment.getMagnitude()); List<Token> tokenList = language.analyzeSyntax(doc).getTokensList(); tokenList.forEach(token -> { System.out.println(token.getText().getContent()); Document tokenText = Document.newBuilder().setContent(token.getText().getContent()).setType(Type.PLAIN_TEXT).setLanguage("ja").build(); Sentiment tokenSentiment = language.analyzeSentiment(tokenText).getDocumentSentiment(); System.out.println(tokenSentiment); }); } catch(Exception e) { } } }
memo
- 「素晴らしい」
score:0.8
magnitude:0.8 - 「今日」
感情解析されない
感情分析の値の解釈は「Natural Language APIの基本」に記載されています。