2018/02/13
2020/04/14
PythonでGoogle Natural Language APIを叩いて感情分析
当記事ではPythonでGoogle Cloud Natural Language APIを叩いて感情分析する方法をご紹介いたします。
Google Cloud Natural Language APIは、Googleが提供する自然言語処理のAPIであり、テキストの構造と意味を解析してくれるものです。今回はこちらのAPIの感情分析機能をPython3で呼び出します。Google Cloud Natural Language APIの具体的な機能についてはこちら
感情分析のサンプルプログラム
まずは以下にサンプルプログラムを示します。
import requests #APIキーを入力 key = "YourAPIkey" #感情分析したいテキスト text = "こんにちは、今日もいい天気ですね。明日も晴れるといいなあ。でも最近晴れてるのに寒いですよね。" #APIのURL url = 'https://language.googleapis.com/v1/documents:analyzeSentiment?key=' + key #基本情報の設定 JAをENにすれば英語のテキストを解析可能 header = {'Content-Type': 'application/json'} body = { "document": { "type": "PLAIN_TEXT", "language": "JA", "content": text }, "encodingType": "UTF8" } #json形式で結果を受け取る。 response = requests.post(url, headers=header, json=body).json() #分析の結果をコンソール画面で見やすく表示 print("総合magnitude:",response["documentSentiment"]["magnitude"]) print("総合score:",response["documentSentiment"]["score"]) for i in response["sentences"]: print(i["text"]["content"],"magnitude:",i["sentiment"]["magnitude"],", score:",i["sentiment"]["score"])
プログラムを使う際には、”YourAPIkey”の部分に自分で発行したAPIkeyを入力してください。
こちらのプログラムを実行するとコンソール画面で以下のように出力されます。
実行結果
総合magnitude: 2.1 総合score: 0.3 こんにちは、今日もいい天気ですね。 magnitude: 0.8 , score: 0.8 明日も晴れるといいなあ。 magnitude: 0.7 , score: 0.7 でも最近晴れてるのに寒いですよね。 magnitude: 0.5 , score: -0.5
magnitudeは、感情の強さであり、socreが感情の点数です。socreは-1.0~1.0の範囲で表示され、マイナスの値がネガティブな感情、プラスの値がポジティブな感情です。magnitudeの方は必ず0以上の値がつけられます。
今回の例でいうと最初の2文はポジティブな内容であると処理され、最後の1文はネガティブな内容と判定が下されました。そして3つの文全体を通じて、0.3というスコアがつけられています。個人的な意見なのですが、なかなか良い精度なのではないでしょうか。
また、今回の入力は
「こんにちは、今日もいい天気ですね。明日も晴れるといいなあ。でも最近晴れてるのに寒いですよね。」
という一文ですが、Google Cloud Natural Language APIが自動的に文章ごとに区切って計算してくれています。入力でわざわざ区切らなくても、自動で区切ってくれるというのは非常にありがたい。
Google Cloud Natural Language APIですが、使うには登録が必要です。無料分だけでもかなり使えるので、今回のプログラムを試して見たい方は是非登録して見てください!Google Cloud Natural Language APIホームページ
Recommended