Amazon Comprehend で分析できることに構文解析が追加されました

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2018/07/17 に開催された AWS Summit 2018 New York で Amazon Comporehend の新機能がリリースされました。

Amazon Comprehend

Amazon Comprehend は AWS の AI 系サービスの一つで自然言語処理のサービスです。今までは以下のような機能がありました。

  • 主要言語の検出
  • エンティティの検出
  • キーフレーズの検出
  • 感情の検出
  • Topic Modeling

今までの機能に関しては下記エントリにまとめていますのでご参照ください。

自然言語処理サービスの Amazon Comprehend についてまとめてみた #reinvent

今回追加されたのは構文解析です(というより形態素解析なのかな)

形態素解析とは

自然言語処理における形態素解析とは文章を意味のある単位で分け、それぞれの品詞を判別することを指します。

例えば、This is a pen. を形態素解析すると

This 代名詞
is 動詞
a 冠詞
pen 名詞

というように分けられ、品詞を関連付けられます。

Amazon Comprehend の構文解析でできること

現在、Amazon Comprehend の構文解析は英語の文章の単語 17種類の品詞を判別できます。

17種類の品詞はドキュメントに記載されています。

何に使うの?

AWS のドキュメントでは下記のような記載があります。

For example, you can look for the nouns in a document and then look for the verbs related to those nouns. In a sentence like "My grandmother moved her couch" you can see the nouns, "grandmother" and "couch," and the verb, "moved." You can use this information to build applications for analyzing text for word combinations that you are interested in.

Syntax

もう少し具体的なケースを考えると、Twitter で自社や、自社の製品を検索して、検索にヒットしたツイートはどういう共通の動詞・形容動詞があるのか(どういう印象なのか)、一緒にどういう名詞が使われているのかなど集計することでマーケティング的な要素で使えるのではないでしょうか。

試してみた

他の機能と違ってマネジメントコンソールからは利用できず、API ベースで利用できます。今回は aws-cli から試してみました。

前提

  • aws-cli のバージョンが 1.15.60 以上であること

構文解析してみる

先ほどの This is a pen. を構文解析しましょう。必要なパラメータは 2つです。

パラメータ 説明
```--text``` 構文解析する文章
```--language-code``` 文章の言語(現在は```en```(英語)のみ)
$ aws comprehend detect-syntax \
    --text "This is a pen." \
    --language-code "en" \
    --region us-east-1
{
    "SyntaxTokens": [
        {
            "Text": "This",
            "EndOffset": 4,
            "BeginOffset": 0,
            "PartOfSpeech": {
                "Tag": "PRON",
                "Score": 0.9998180270195007
            },
            "TokenId": 1
        },
        {
            "Text": "is",
            "EndOffset": 7,
            "BeginOffset": 5,
            "PartOfSpeech": {
                "Tag": "VERB",
                "Score": 0.9996470212936401
            },
            "TokenId": 2
        },
        {
            "Text": "a",
            "EndOffset": 9,
            "BeginOffset": 8,
            "PartOfSpeech": {
                "Tag": "DET",
                "Score": 0.9999902248382568
            },
            "TokenId": 3
        },
        {
            "Text": "pen",
            "EndOffset": 13,
            "BeginOffset": 10,
            "PartOfSpeech": {
                "Tag": "NOUN",
                "Score": 0.9989594221115112
            },
            "TokenId": 4
        },
        {
            "Text": ".",
            "EndOffset": 14,
            "BeginOffset": 13,
            "PartOfSpeech": {
                "Tag": "PUNCT",
                "Score": 0.9999984502792358
            },
            "TokenId": 5
        }
    ]
}

単語単位に分割され、それぞれの品詞、そのスコアが割り当てられました。

まとめ

いかがでしたでしょうか?
AWS アカウントを持っているだけで、非常に簡単に形態素解析できました。