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ホームページ
https://cloud.google.com/natural-language/?hl=ja
0 件のコメント:
コメントを投稿