1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS日記⑧ (Comprehend)

Last updated at Posted at 2020-05-31

はじめに

今回は Amazon Comprehend の「感情分析」を試します。

今回作成したAmazon Comprehend の感情分析機能を試すページ

準備

[Lambda , API Gatewayの準備をします。]
(https://qiita.com/tanaka_takurou/items/3f93295de6cff060ec09)

[Amazon Comprehendの資料]
Amazon Comprehend が日本語に対応しました
Amazon Comprehendが日本語対応したのでAlexaスキルで感情分析してみた
【初心者でも使える】AWSが提供する文書解析サービス「Amazon Comprehend」が日本語対応したので触ってみた!

WEBページ・API作成

GO言語のAWS Lambda関数ハンドラー aws-lambda-go を使用してHTMLやJSONを返す処理を作成します。
また、Comprehend を使用するため aws-sdk-go を利用します。

[参考資料]
AWS SDK for Go API Reference

感情分析するには DetectSentiment を使う。
main.go
func detectSentiment(message string)(string, error) {
        svc := comprehend.New(session.New(), &aws.Config{
                Region: aws.String("ap-northeast-1"),
        })

        input := &comprehend.DetectSentimentInput{
                LanguageCode: aws.String(languageCode),
                Text:  aws.String(message),
        }
        res, err := svc.DetectSentiment(input)
        if err != nil {
                return "", err
        }
        return aws.StringValue(res.Sentiment), nil
}

※ 6/14 追記

言語検出するには DetectDominantLanguage を使う。
main.go
func detectDominantLanguage(message string)(string, error) {
        svc := comprehend.New(session.New(), &aws.Config{
                Region: aws.String("ap-northeast-1"),
        })

        input := &comprehend.DetectDominantLanguageInput{
                Text:  aws.String(message),
        }
        res, err := svc.DetectDominantLanguage(input)
        if err != nil {
                return "", err
        }
        results, err2 := json.Marshal(res.Languages)
        if err2 != nil {
                return "", err2
        }
        return string(results), nil
}

※ 6/14 追記

エンティティ認識するには DetectEntities を使う。
main.go
func detectEntities(message string)(string, error) {
        svc := comprehend.New(session.New(), &aws.Config{
                Region: aws.String("ap-northeast-1"),
        })

        input := &comprehend.DetectEntitiesInput{
                LanguageCode: aws.String(languageCode),
                Text:  aws.String(message),
        }
        res, err := svc.DetectEntities(input)
        if err != nil {
                return "", err
        }
        results, err2 := json.Marshal(res.Entities)
        if err2 != nil {
                return "", err2
        }
        return string(results), nil
}

※ 6/14 追記

キーフレーズ抽出するには DetectKeyPhrases を使う。
main.go
func detectKeyPhrases(message string)(string, error) {
        svc := comprehend.New(session.New(), &aws.Config{
                Region: aws.String("ap-northeast-1"),
        })

        input := &comprehend.DetectKeyPhrasesInput{
                LanguageCode: aws.String(languageCode),
                Text:  aws.String(message),
        }
        res, err := svc.DetectKeyPhrases(input)
        if err != nil {
                return "", err
        }
        results, err2 := json.Marshal(res.KeyPhrases)
        if err2 != nil {
                return "", err2
        }
        return string(results), nil
}

※ 6/14 追記

構文解析するには DetectSyntax を使う。
main.go
func detectSyntax(message string)(string, error) {
        svc := comprehend.New(session.New(), &aws.Config{
                Region: aws.String("ap-northeast-1"),
        })

        input := &comprehend.DetectSyntaxInput{
                LanguageCode: aws.String(languageCodeEn),
                Text:  aws.String(message),
        }
        res, err := svc.DetectSyntax(input)
        if err != nil {
                return "", err
        }
        results, err2 := json.Marshal(res.SyntaxTokens)
        if err2 != nil {
                return "", err2
        }
        return string(results), nil
}

終わりに

今回はAmazon Comprehendの 感情分析の機能を試しました。
他にもComprehendの機能が利用できるため、今後試していきたいと思います。

※ 6/14 追記
テキストの言語検出・エンティティ認識・キーフレーズ抽出・構文解析する機能を試しました。
テキストの言語検出
テキストのエンティティ認識
テキストのキーフレーズ抽出
テキストの構文解析

※ 6/14時点で、テキストの構文解析は言語コードを日本語に設定するとエラーが発生したため、英語で試しました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?