ターゲット感情 - Amazon Comprehend

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ターゲット感情

ターゲット感情を使用すると、入力ドキュメント内で特定のエンティティ (ブランドや製品など) に関連付けられた感情を詳細に把握できます。

ターゲット感情と 「感情」 の違いは、出力データの粒度のレベルです。感情分析は、各入力ドキュメントの主要な感情を決定しますが、詳細な分析のためのデータは提供しません。ターゲット感情分析では、各入力ドキュメント内の特定のエンティティのエンティティレベルの感情を判断します。出力データを分析して、肯定的または否定的なフィードバックを得た特定の製品やサービスを判断できます。

たとえば、あるレストランのレビューの中で、顧客が「タコスはおいしかったし、スタッフもフレンドリーだった」というレビューを投稿したとします。このレビューを分析すると、次の結果になります。

  • 感情分析は、各レストランレビューの全体的な感情が肯定的、否定的、中間、または混合のいずれであるかを判断します。この例では、全体的な感情は肯定的です。

  • ターゲット感情分析は、顧客がレビューで言及したレストランのエンティティと属性に対する感情を判断します。この例では、顧客は「タコス」と「スタッフ」について肯定的なコメントをしています。

ターゲット感情では、分析ジョブごとに次の出力が得られます。

  • ドキュメントで言及されているエンティティの識別。

  • 各エンティティメンションに対するエンティティタイプの分類。

  • 言及された各エンティティの感情と感情スコア。

  • 単一エンティティに対応する参照グループ (共通参照グループ)。

コンソールまたは API を使用して、ターゲット感情分析を実行できます。コンソールと API は、ターゲット感情のリアルタイム分析と非同期分析の両方をサポートします。

Amazon Comprehend は、英語ドキュメントのターゲット感情に対応しています。

チュートリアルを含むターゲット感情の詳細については、AWS 機械学習ブログの 「Amazon Comprehend ターゲット感情を使ってテキスト内の詳細な感情を抽出する」 を参照してください。

エンティティタイプ

ターゲット感情は、次のエンティティタイプを識別します。エンティティが他のどのカテゴリにも属さない場合は、エンティティタイプ「OTHER」(その他) を割り当てます。出力ファイル内の各エンティティには、"Type": "PERSON" などのエンティティタイプが含まれます。

エンティティタイプの定義
エンティティタイプ 定義
PERSON 例としては、個人、グループ、ニックネーム、架空の人物、動物の名前などがあります。
LOCATION 国、都市、州、住所、地形、水域、自然史跡、天文学的位置などの地理的位置。
ORGANIZATION 例としては、政府、企業、スポーツチーム、宗教などがあります。
FACILITY 建物、空港、高速道路、橋、その他の恒久的な人工構造物および不動産の改良。
BRAND 特定の商品または製品ラインの組織、グループ、または生産者。
COMMERCIAL_ITEM 購入または取得可能な非ジェネリック品目(車両、および 1 つの品目しか生産されていない大型製品を含む)。
MOVIE 映画またはテレビ番組。考えられるエンティティには、フルネーム、ニックネーム、またはサブタイトルがあります。
MUSIC 曲 (全体または一部)。また、アルバムやアンソロジーなど、個々の音楽作品のコレクションもあります。
BOOK 職業的に、または自費出版された本。
SOFTWARE 正式にリリースされたソフトウェア製品。
GAME ビデオゲーム、ボードゲーム、一般的なゲーム、スポーツなどのゲーム。
PERSONAL_TITLE 学長、博士、博士などの正式な肩書きと敬称。
EVENT 例としては、フェスティバル、コンサート、選挙、戦争、会議、プロモーションイベントなどがあります。
DATE 具体的、一般的、絶対的、相対的であるかを問わず、日付や時刻に関するあらゆる言及。
QUANTITY すべての測定値とその単位 (通貨、パーセント、数値、バイトなど)。
ATTRIBUTE 製品の「品質」、電話の「価格」、CPU の「速度」など、エンティティの属性、特性、または特質。
OTHER 他のカテゴリに属さないエンティティ。

共参照グループ

ターゲット感情は、各入力ドキュメントの共参照グループを識別します。共参照グループとは、現実世界の 1 つのエンティティに対応するドキュメント内の感情グループです。

以下のカスタマーレビューの例では、「spa」はエンティティーであり、そのエンティティータイプは FACILITY です。このエンティティには、代名詞 (「it」) としてさらに 2 つの追加言及があります。

ターゲット感情の共参照関係グループ。

出力ファイルの構成

ターゲットの感情分析ジョブは JSON テキスト出力ファイルを作成します。このファイルには、入力ドキュメントごとに 1 つの JSON オブジェクトが含まれます。各 JSON オブジェクトには、以下のフィールドが含まれています。

  • エンティティ — ドキュメント内にあるエンティティの配列。

  • ファイル — 入力ドキュメントのファイル名。

  • – 入力ファイルが 1 行につき 1 つのドキュメントである場合、[エンティティ]にはファイル内のドキュメントの行番号が含まれます。

注記

ターゲット感情が入力テキスト中のエンティティを認識していない場合、エンティティの結果として空の配列を返します。

次の例は、3 行入力されている入力ファイルのエンティティを示しています。入力フォーマットは ONE_DOC_PER_LINE であるため、入力の各行は 1 つのドキュメントになります。

{ "Entities":[ {entityA}, {entityB}, {entityC} ], "File": "TargetSentimentInputDocs.txt", "Line": 0 } { "Entities": [ {entityD}, {entityE} ], "File": "TargetSentimentInputDocs.txt", "Line": 1 } { "Entities": [ {entityF}, {entityG} ], "File": "TargetSentimentInputDocs.txt", "Line": 2 }

エンティティ配列のエンティティは、文書内で検出されたエンティティ参照の論理グループ(共参照グループと呼ばれる)を含みます。各エンティティの全体構造は以下のとおりです。

{"DescriptiveMentionIndex": [0], "Mentions": [ {mentionD}, {mentionE} ] }

エンティティには以下のフィールドが含まれます。

  • メンション — ドキュメント内のエンティティに関するメンションの配列。配列は共参照グループを表します。例については、「共参照グループ」を参照してください。メンション配列内のメンション順序は、ドキュメント内での位置 (オフセット) の順序です。各メンションには、そのメンションの感情スコアとグループスコアが含まれます。グループスコアは、これらのメンションが同じエンティティに属していることの確実性レベルを示します。

  • DescriptiveMentionIndex — エンティティグループの最適な名前を提供する「メンション」配列への 1 つ以上のインデックス。たとえば、あるエンティティにテキスト値が「ABC Hotel」、「ABC Hotel」、「it」の 3 つのメンションがあるとします。最適な名前は「ABCTAK」で、 DescriptiveMentionIndex 値は [0,1] です。

各メンションには、次のフィールドが含まれます。

  • BeginOffset - 言及が始まるドキュメントテキストのオフセット。

  • EndOffset – 言及が終了するドキュメントテキストのオフセット。

  • GroupScore - グループに記載されているすべてのエンティティが同じエンティティに関連する信頼度。

  • テキスト — エンティティを識別するドキュメント内のテキストです。

  • タイプ – エンティティのタイプ。Amazon Comprehend は、さまざまなエンティティタイプをサポートしています。

  • スコア — エンティティの関連性についてのモデルの信頼性です。値の範囲は 0 ~ 1 で、1 が最も高い信頼度です。

  • MentionSentiment - 言及の感情と感情スコアが含まれます。

  • Sentiment — メンションの感情。値には、「肯定的」、「中間」、「否定的」、「混合」が含まれます。

  • SentimentScore - 考えられる各感情のモデル信頼度を提供します。値の範囲は 0 ~ 1 で、1 が最も高い信頼度です。

Sentiment 値には以下の意味があります。

  • 肯定的 — エンティティメンションは肯定的な感情を表します。

  • 否定的 — エンティティメンションは否定的な感情を表します。

  • 混合 – 肯定的感情と否定的感情を表すエンティティメンション。

  • 中間 – 肯定的感情または否定的感情のいずれも表さないエンティティメンション。

次の例では、エンティティは入力ドキュメントに 1 つのメンションしか記述していないため、 DescriptiveMentionIndexはゼロです (メンション配列の最初のメンション)。識別されるエンティティは「I」という名前の PERSON です。感情スコアは中間です。

{"Entities":[ { "DescriptiveMentionIndex": [0], "Mentions": [ { "BeginOffset": 0, "EndOffset": 1, "Score": 0.999997, "GroupScore": 1, "Text": "I", "Type": "PERSON", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 1, "Positive": 0 } } } ] } ], "File": "Input.txt", "Line": 0 }

コンソールを使用したリアルタイム分析

Amazon Comprehend コンソールを使用すると、ターゲット感情 をリアルタイムで実行できます。サンプルテキストを使用するか、入力テキストボックスに独自のテキストを貼り付けて、 [分析]を選択します。

[インサイト] パネルでは、コンソールにターゲット感情分析の 3 つのビューが表示されます。

  • テキスト解析 — テキスト解析を表示し、各エンティティに下線を引きます。下線の色は、分析によってエンティティに割り当てられた感情値 (肯定的、中間、否定的、または混合のいずれか) を表します。コンソールでは、テキスト解析ボックスの右上隅にカラーマッピングが表示されます。エンティティの上にカーソルを置くと、そのエンティティの分析値 (エンティティタイプ、感情スコア) を含むポップアップパネルがコンソールに表示されます。

  • 結果 — テキスト内で識別された各エンティティが参照する行を含むテーブルを表示します。各エンティティについて、この表にはエンティティとエンティティスコアが表示されます。この行には、主な感情と各感情値のスコアも含まれています。同じエンティティに 「共参照グループ」 と呼ばれる複数の参照がある場合、この表には、マスターエンティティに関連付けられた折りたたみ可能な行のセットとしてこれらの参照が表示されます。

    結果 テーブルのエンティティ行にカーソルを合わせると、コンソールは [テキスト解析)]パネル内のエンティティメンションを強調表示します。

  • アプリケーション統合 — API リクエストのパラメータ値と API レスポンスで返された JSON オブジェクトの構造を表示します。JSON オブジェクトのフィールドの説明については、「出力ファイルの構成」 を参照してください。

コンソールのリアルタイム分析の例

この例では、以下のテキストを入力として使用します。これはコンソールが提供するデフォルトの入力テキストです。

Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card account 1111-0000-1111-0008 has a minimum payment of $24.53 that is due by July 31st. Based on your autopay settings, we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. Customer feedback for Sunshine Spa, 123 Main St, Anywhere. Send comments to Alice at sunspa@mail.com. I enjoyed visiting the spa. It was very comfortable but it was also very expensive. The amenities were ok but the service made the spa a great experience.

この例では、[分析済みテキスト] パネルには次の出力が表示されます。テキスト Zhang Wei の上にマウスカーソルを合わせると、このエンティティのポップアップパネルが表示されます。

ターゲット感情が分析されたテキスト。

[結果] テーブルには、エンティティスコア、主要感情、各感情のスコアなど、各エンティティに関する追加の詳細が表示されます。

ターゲット感情の結果テーブル。

この例では、ターゲット感情分析では、入力テキストで あなたのについて言及するたびに、人物エンティティ Zhang Wei への参照であることが認識されます。コンソールには、これらのメンションがメインエンティティに関連付けられた折りたたみ可能な行のセットとして表示されます。

ターゲット感情の結果テーブル。

アプリケーション統合パネルには、 DetectTargetedSentiment API が生成する JSON オブジェクトが表示されます。詳細な例については、次のセクションを参照してください。

ターゲット感情の出力例

次の例は、ターゲット感情分析ジョブの出力ファイルを示しています。入力ファイルは次の 3 つのシンプルなドキュメントで構成されています。

The burger was very flavorful and the burger bun was excellent. However, customer service was slow. My burger was good, and it was warm. The burger had plenty of toppings. The burger was cooked perfectly but it was cold. The service was OK.

この入力ファイルのターゲット感情分析では、次の出力が生成されます。

{"Entities":[ { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 4, "EndOffset": 10, "Score": 0.999991, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 0, "Positive": 1 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 38, "EndOffset": 44, "Score": 1, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0.000005, "Negative": 0.000005, "Neutral": 0.999591, "Positive": 0.000398 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 45, "EndOffset": 48, "Score": 0.961575, "GroupScore": 1, "Text": "bun", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.000327, "Negative": 0.000286, "Neutral": 0.050269, "Positive": 0.949118 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 73, "EndOffset": 89, "Score": 0.999988, "GroupScore": 1, "Text": "customer service", "Type": "ATTRIBUTE", "MentionSentiment": { "Sentiment": "NEGATIVE", "SentimentScore": { "Mixed": 0.000001, "Negative": 0.999976, "Neutral": 0.000017, "Positive": 0.000006 } } } ] } ], "File": "TargetSentimentInputDocs.txt", "Line": 0 } { "Entities": [ { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 0, "EndOffset": 2, "Score": 0.99995, "GroupScore": 1, "Text": "My", "Type": "PERSON", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 1, "Positive": 0 } } } ] }, { "DescriptiveMentionIndex": [ 0, 2 ], "Mentions": [ { "BeginOffset": 3, "EndOffset": 9, "Score": 0.999999, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.000002, "Negative": 0.000001, "Neutral": 0.000003, "Positive": 0.999994 } } }, { "BeginOffset": 24, "EndOffset": 26, "Score": 0.999756, "GroupScore": 0.999314, "Text": "it", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0, "Negative": 0.000003, "Neutral": 0.000006, "Positive": 0.999991 } } }, { "BeginOffset": 41, "EndOffset": 47, "Score": 1, "GroupScore": 0.531342, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.000215, "Negative": 0.000094, "Neutral": 0.00008, "Positive": 0.999611 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 52, "EndOffset": 58, "Score": 0.965462, "GroupScore": 1, "Text": "plenty", "Type": "QUANTITY", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 1, "Positive": 0 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 62, "EndOffset": 70, "Score": 0.998353, "GroupScore": 1, "Text": "toppings", "Type": "OTHER", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 0.999964, "Positive": 0.000036 } } } ] } ], "File": "TargetSentimentInputDocs.txt", "Line": 1 } { "Entities": [ { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 4, "EndOffset": 10, "Score": 1, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.001515, "Negative": 0.000822, "Neutral": 0.000243, "Positive": 0.99742 } } }, { "BeginOffset": 36, "EndOffset": 38, "Score": 0.999843, "GroupScore": 0.999661, "Text": "it", "Type": "OTHER", "MentionSentiment": { "Sentiment": "NEGATIVE", "SentimentScore": { "Mixed": 0, "Negative": 0.999996, "Neutral": 0.000004, "Positive": 0 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 53, "EndOffset": 60, "Score": 1, "GroupScore": 1, "Text": "service", "Type": "ATTRIBUTE", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0.000033, "Negative": 0.000089, "Neutral": 0.993325, "Positive": 0.006553 } } } ] } ], "File": "TargetSentimentInputDocs.txt", "Line": 2 } }