こんにちわ。
GCPの使い手、日本代表コロまるです。
今回は自然言語処理をしたい
cotoha さんもいいけど、高いよね
https://api.ce-cotoha.com/contents/index.html
ということで、Laravel で GCPを使ってみます。
[ 重要 ]
GCPの設定画面は横長にして最大化しておきましょう。
でないと、APIとサービスの有効化などのメニューが出ないので注意。
インスコ
composer require google/cloud-core
composer require google/cloud-language
APIとサービスより、Cloud Natural Language API の有効化
サービスアカウントを作成
プロジェクトを選択
サービスアカウントの詳細
サービスアカウントを作成
ロールとかは何も入力しなくて良い
サービスアカウントができるので、
操作、鍵を作成で鍵をダウンロード
これで鍵ファイルが自動でダウンロードされる
この json を config フォルダにアップしましょう。
//HogeController.php の冒頭に
use Google\Cloud\Language\LanguageClient;
# Your Google Cloud Platform project ID
$projectId = 'hoge2';
# Instantiates a client
$language = new LanguageClient([
'projectId' => $projectId,
'keyFile' => json_decode(file_get_contents(config_path('hogehoge.json')), true)
]);
# The text to analyze
$text = 'やりました!いけましたよ。よろしくおねがいします。';
# Detects the sentiment of the text
$annotation = $language->analyzeSentiment($text);
$sentiment = $annotation->sentiment();
echo 'Text: ' . $text . '
Sentiment: ' . $sentiment['score'] . ', ' . $sentiment['magnitude'];
結果
Text: やりました!いけましたよ。よろしくおねがいします。 Sentiment: 0.6, 1.8
さらに詳しく解析
感情やら芸能人やら色々解析できるたみたいだが、
今回は文章の感情に絞って解析。
・感情
analyzeSentiment
documentSentiment には、次のフィールドで構成されるドキュメントの全体的な感情が含まれます。
score: -1.0(ネガティブ)~1.0(ポジティブ)のスコアで感情が表されます。これは、テキストの全体的な感情の傾向に相当します。
magnitude は、そのドキュメントに感情的な内容がどのくらい含まれているか
明らかにポジティブ* "score": 0.8, "magnitude": 3.0
明らかにネガティブ* "score": -0.6, "magnitude": 4.0
ニュートラル "score": 0.1, "magnitude": 0.0
混合 "score": 0.0, "magnitude": 4.0
#解析結果サンプル
いい感じですね
$text = 'ラーメン食べた、美味しかったよ';//[magnitude] => 0.9 [score] => 0.9
$text = 'ラーメン食べたら下痢になった';//[magnitude] => 0.1 [score] => -0.1
$text = '台風で体しんどいけど、頑張るね!';//[magnitude] => 0 [score] => 0
$text = '台風で体しんどいから何もできなかった!';//[magnitude] => 0.6 [score] => -0.6
料金は?
最低 1ユニット。
1,000文字を超える場合は 1,000文字 で 1ユニット。
たとえば、Natural Language に送信する 3 件のリクエストに、それぞれ 800 文字、1,500 文字、600 文字が含まれている場合、1 番目のリクエスト(800)が 1 ユニット、2 番目のリクエスト(1,500)が 2 ユニット、3 番目のリクエスト(600)が 1 ユニット、合計 4 ユニットとして課金されます。
Natural Language の使用料は、使用された API の機能とその機能を使用して評価されたユニットの数に基づいて、月単位で計算されます。次の表に、請求月に分析されたユニットの総数に基づく 1,000 ユニットあたりの料金を示します。
単純に、
感情分析を 10,000回やった場合、
最初の 5,000回 は無料。
オーバーした分は
$1.00 x 5 (1000回) で日本円にして約600円で利用できるってわけね。