(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【AWS/Comprehend】日本語文章に対してawsコマンドからポジネガ判定を行う

スポンサーリンク

はじめに

AWSの機械学習系サービスである「Amazon Comprehend」を利用するとドキュメント内のテキストから価値あるインサイトを導き出し、理解することが可能です。同サービスにはいくつかの機能がありますが、その中で「感情の検出」を担うdetect-sentimentを日本語文章に対して実施してみました。

環境情報
 aws --version
aws-cli/1.19.112 Python/2.7.18 Linux/4.14.322-244.536.amzn2.x86_64 botocore/1.20.112

ポジネガ判定の流れ

以下のコマンドでポジネガ判定が行えます。

$ aws comprehend detect-sentiment --text "<任意の文字列>""--language-code ja                                                                                                                 

尚、textに指定できる文字列は以下の制約がある点は注意が必要です。

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

中立な文章

$ aws comprehend detect-sentiment --text "オペレーティングシステムは自動車のエンジンのようなものと考えることができます。エ ンジンは単独でも稼働できますが、トランスミッション、車軸、車輪に接続すれば自動車として機能します。エンジンが正常に動作しなければ、車は動きません。" --language-code ja                                                                                                                 
{
    "SentimentScore": {
        "Mixed": 0.05334478244185448, 
        "Positive": 0.030994029715657234, 
        "Neutral": 0.8764435648918152, 
        "Negative": 0.03921765834093094
    }, 
    "Sentiment": "NEUTRAL"
}

ポジティブな文章

$ aws comprehend detect-sentiment --text "Linuxは無料でありながらも膨大な種類のソフトウェアを使うことができ、動作が早いため、使わなくなった古いWindowsやMacOSなどのPCにもLinuxをインストールすれば簡単なファイルサーバとして利用することができます。" --language-code ja
{
    "SentimentScore": {
        "Mixed": 0.00010000911424867809, 
        "Positive": 0.6262733936309814, 
        "Neutral": 0.37314528226852417, 
        "Negative": 0.00048127726768143475
    }, 
    "Sentiment": "POSITIVE"
}

ネガティブな文章

$ aws comprehend detect-sentiment --text "Linuxは有償で提供されているWindowsと異なり、無償で提供されているオープンソースではありますが、メーカーからのカスタマーサービスのようなサポートは基本的にありません。分からないことやトラブルが発生した場合には、自分自身で調べる必要があります。" --language-code ja                                                                                                                
{
    "SentimentScore": {
        "Mixed": 4.139653538004495e-05, 
        "Positive": 0.0004456033930182457, 
        "Neutral": 0.4524456858634949, 
        "Negative": 0.5470673441886902
    }, 
    "Sentiment": "NEGATIVE"
}

終わりに

実際に文章の判定をかけると想定通りの結果が取得できました。textとして与える引数は変数でも利用ができるため、自動的なテキストの分類などにも利用が可能です。

以上、ご参考になれば幸いです。