Natural Language APIを使って若者言葉を感情分析してみた

TwitterなどのSNS上には、新しすぎて「これなに?」というワードもちらほら・・・

凄まじい勢いで進化をしている若者言葉を知らないと、おじさんおばさん認定されるそうです。こわっ

今回は、過去に若者たちの間で流行した「ぴえん」や「しか勝たん」といったネガティブなのかポジティブなのか判断が難しい言葉を、Natural Language API を使って数値化できるか検証してみました。

Natural Language API (NLP)とは?

Natural Language APIは、Googleが提供する自然言語処理のAPIです。

Google Cloud でトレーニング済みの機械学習モデルを使って、感情分析、エンティティ分析、エンティティ感情分析、コンテンツ分類、構文解析などの機能を利用することができます。

▶︎ Natural Language API のデモはこちら

感情分析のサンプルプログラム(Python) 

※ 事前にGCPでプロジェクト作成、認証キーの取得が必要です。

import requests

key = ‘取得したキー’
url = f'https://language.googleapis.com/v1/documents:analyzeSentiment?key={key}'

text = '温かいお茶が美味しい'  ## ここに分析したいテキストを入力

header = {'Content-Type': 'application/json'}
body = {
    "document": {
        "type": "PLAIN_TEXT",
        "language": "JA",
        "content": text
    }
}
res = requests.post(url, headers=header, json=body)
result = res.json()

【 実行結果 】

まずは、若者言葉を含んでいない「 温かいお茶が美味しい 」の感情分析をした結果です。

{'documentSentiment': {'magnitude': 0.9, 'score': 0.9},
 'language': 'ja',
 'sentences': [{'text': {'content': '温かいお茶が美味しい', 'beginOffset': -1},
 'sentiment': {'magnitude': 0.9, 'score': 0.9}}]}

documentSentiment は、ドキュメントの全体的な感情を数値化したものです。

magnitudeは「感情の強さ」を表し、socreは「感情の点数」を表します。

socreは「 -1.0 〜 1.0 」の範囲で表示され、マイナスの値がネガティブな感情、プラスの値がポジティブな感情になります。

この「score」と「magnitude」の2つの値を利用して文章が「ポジティブ」なのか「ネガティブ」なのか「ニュートラル」なのかを判断します。

「 温かいお茶が美味しい の score は、「0.9」と1にかなり近い数値なので、ポジティブと判定されました。

Natural Language APIの実力は?

それでは、Natural Language API を使って、「ぴえん」や「◯◯しか勝たん」などの若者言葉を含むツイートを分析してみます。

※ 今回分析する言葉はTwitter上で取得したツイートを使っています。

まずは、ぴえん🥺

全体評価をみると、score が -0.2 とネガティブな評価ですが、

「ぴえん」を含む content② の score は、0.3 とプラスの数値なので、ポジティブ と判定されました。

ちなみに、絵文字なしの「ぴえん」だけを分析すると、score は 0.4でした。絵文字なしで若干ポジティブになりました。

次は、○○しか勝たん

こちらも、全体評価をみると score は 0.4 とポジティブな評価になりました。

「しか勝たん」を含む content② の score は、-0.1 とマイナスの数値なので、NLPでは「しか勝たん」は ネガティブ寄りの判定になりました。

続いては、エモい

score は 0.9 と、かなり1に近いので、ポジティブと判定されました。

ちなみに、「エモい」だけを分析すると、score は 0.3でした。ポジティブですね。

最後に、きゅんです。

score は、0.9 でした。かなり 1に近いので、ポジティブと判定されました。

ちなみに、「きゅんです」だけを分析すると、scoreは、0.3とポジティブ判定でした。

「きゅんです♡」のように、最後に♡をつけると、scoreは、0.9 とよりポジティブになりました!

まとめ

Natural Language API は、最近流行した「ぴえん」や「しか勝たん」などの若者言葉もそれなりに数値化してくれることがわかりました。

つまり、Natural Language API は、おじさんおばさんではなかったです。

Natural Language API を使うと感情分析がサクッとできるのでとても便利ですね。