🎉
【Azure】Cognitive Service for Languageを使って感情分析をやってみた
Azure Cognitive Service for Languageを使って、自然言語処理/感情分析をやってみたので、備忘も兼ねて記録します。
以下のMicrosoftの公式ドキュメント(英語)を参考にしています。
前提
Cognitive Serviceのリソースを作成したうえで、APIキー1とエンドポイントを取得しておく必要があります。
パッケージのインストール
pip install azure-ai-textanalytics --pre
準備
# ライブラリんインポート
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient
# APIキーとエンドポイントの指定
credential = AzureKeyCredential("こちらにkey1をコピペします")
endpoint="こちらにエンドポイントをコピペします"
# インスタンス化
text_analytics_client = TextAnalyticsClient(endpoint, credential)
感情分析の実行
documents = [
"「あぁ、しあわせ。」一番搾りを飲んだ方たちから、続々とうれしいの声があふれてきています",
"東京都は18日、新型コロナウイルスの感染者を都内で新たに1万2696人確認したと発表した。",
"インドが世界経済の先導役になると期待される一方、中国は人口減少が国力衰退に直結しかねない。"]
response = text_analytics_client.analyze_sentiment(documents, language="ja")
result = [doc for doc in response if not doc.is_error]
for doc in result:
print(f"Overall sentiment: {doc.sentiment}")
print(
f"Scores: positive={doc.confidence_scores.positive}; "
f"neutral={doc.confidence_scores.neutral}; "
f"negative={doc.confidence_scores.negative}\n"
)
出力結果
ちゃんと感情分析できているようです。
おまけ キーフレーズの抽出
入力テキストを決定づけるキーフレーズの抽出も簡単に実装できます。
さきほどと同じ文章で実行してみます。
documents = [
"「あぁ、しあわせ。」一番搾りを飲んだ方たちから、続々とうれしいの声があふれてきています",
"東京都は18日、新型コロナウイルスの感染者を都内で新たに1万2696人確認したと発表した。",
"インドが世界経済の先導役になると期待される一方、中国は人口減少が国力衰退に直結しかねない。",
]
response = text_analytics_client.extract_key_phrases(documents, language="ja")
result = [doc for doc in response if not doc.is_error]
for doc in result:
print(doc.key_phrases)
出力結果
最初の文章はイマイチですが、それ以外はちゃんとできているようです。
さいごに
Azureには自然言語処理をUI(ノーコード)でできるLanguage Studioというサービスもあって、こちらでも同じように試してみたのですが、結果はイマイチでした。
API形式で実装するのが良さそうです。
Discussion