みなさんこんにちは!
イザナギです!
import json, config #標準のjsonモジュールとconfig.pyの読み込み
import requests
# gcp感情分析
def emotion(text_emotion):
#APIキーの取得
key = config.gcp_api_key
url = 'https://language.googleapis.com/v1/documents:analyzeSentiment?key=' + key
header = {'Content-Type': 'application/json'}
body = {
"document": {
"type": "PLAIN_TEXT",
"language": "JA", #テキストの種類(ENにすれば英語を解読できる)
"content": text_emotion #ここに感情分析するテキストを挿入
},
"encodingType": "UTF8"
}
#json形式で結果を受け取る。
response = requests.post(url, headers=header, json=body).json()
#magnitudeとscoreを返す
return [response["documentSentiment"]["magnitude"],response["documentSentiment"]["score"]]
これで感情分析ができるようになります。
テキストをTwitterから取得して、実行したやつをファイルにしてみました。(テキストは複数入れてます。)
総合スコアというものが、感情を表していています。
総合マイグレーションは感情の強さです。
直近50件ほどツイートを取得して、「score」をグラフにしてみました。
この人の場合だと、感情の振れ幅が大きいですよね。
他の人も検証してみましたけど、みなさんこんな感じでした。
基本的に振り幅が高くなるのでしょうか?(私の選んだ人が悪かったのかな?)
まとめ
今回は「Google Cloud natural Language」で感情分析してみました。
個人的な感想なのですが、分析したテキストを見る限りあってると思うものもあれば、ないと感じるものもありました。
さらに検証していく必要がありそうですね。
また何かありましたら、記事にしていきたいと思います。
それでは、今回はここで筆を置かせていただきます。
最後まで記事をご覧いただきありがとうございました!
参考
PythonでGoogle Natural Language APIを叩いて感情分析 | AVILEN AI Trend wrap a-wrap cf
Natural Language API の基本 | Google Cloud