ボットプラットフォームの自然言語処理(NLP)インタープリターは、ユーザーの発話の特定の単語やフレーズを解析し、意味、単語の配置、および追加された修飾子に基づいて平均トーンスコアを提供できます。スコアを使用してユーザー入力の評価を助け、ボットとユーザー間の会話の流れの方向をつかむことができます。たとえばトーンスコアがユーザーが怒っている、または悲しいことを示している場合、ボットの会話をライブエージェントに移行する必要があります。ダイアログタスクではContextオブジェクトからトーンスコアにアクセスするか、インテリジェンスセンチメント管理オプションからトリガーされるイベントを構成できます。

トーンタイプ

Kore.aiボットプラットフォームはユーザー入力を評価して、次の6つの考えられる感情を見つけます。

  • 怒り
  • 嫌悪感
  • 恐怖
  • 悲しみ
  • 喜び
  • ポジティブ―発話の一般的な前向きさを評価するために使用される特別なトーン。

ボットプラットフォームトーンアルゴリズムは感情を相互に排他的にしないことにより、ユーザーの発話トーンの微妙な概要を提供します。たとえば入力によっては、恐怖については高いスコアが出て、悲しみについては穏やかなスコアが出る可能性があります。別の入力は悲しみに対してネガティブなスコアを持ちながら、喜びに対して非常に高いスコアをもたらす可能性があります。v8.1以降プラットフォームはユーザーの発話の感情を識別し、それに応じてトーンを設定できます。

感情のトーンをスコアする

ボットプラットフォームは、-3から+3のスケール範囲でトーン感情をスコアリングします。ここで、正の値は前向きなトーンの感情を表し、負の値は抑制されたトーンの感情を表します。正の値の場合感情のトーンは明示的に伝達されますが、負の値は明示的に否定されます。たとえばユーザーの発話では、このニュースが嬉しい場合は喜びに対して正のトーンスコアを返しますが、このニュースが不満の場合は喜びに対して負のスコアを返します。次のスケールはスコアと感情のトーンのポジティブな表現、または感情のトーンのネガティブな抑制のレベルとの関係を示しています。

  • +3―ユーザーは確かに感情のトーンを表現しました。
  • +2―ユーザーは感情のトーンを表現しました。
  • +1―ユーザー多分感情のトーンを表現しました。
  • 0―ユーザートーンの感情は中立です。
  • -1―ユーザー多分感情のトーンを抑制しました。
  • -2―ユーザーは感情のトーンを抑制しました。
  • -3―ユーザーは確かに感情のトーンを抑制しました。

トーンスコアについて

全体的なトーンスコアはベーストーン値とトーン修飾子の関数として計算されます。修飾子は一般に、基本トーンスコアを増減するために、感情のトーンの単語を補足する副詞または形容詞です。たとえば非常に失望しているユーザーの発話は、ユーザーの発話が失望している場合よりも、怒りのトーンの感情に対して高いトーンスコアを返します。逆に、失望していないというユーザーの発話は、感情のトーンとトーンスコアを否定的にします。ベーストーンと修飾子の値は、各感情のトーンの最終的なトーンスコアを計算するために使用されます。トーンアナライザは感情のトーンタイプに基づいてすべてのベーストーンをコンパイルし、現在のダイアログタスクノードの各感情のトーンタイプの平均スコアと最後のリセット以降のトーン合計スコアを計算します。トーンの結果は、次のようにContextオブジェクト変数として返されます。

  • message_tone ―ダイアログタスクの現在のノードで認識された感情のトーンとスコアの配列。
  • dialog_tone ―ダイアログタスクセッション全体で認識された平均的な感情のトーンとスコアの配列。この値は、各ダイアログセッションの終了時にリセットされます。

各変数には認識された感情のトーンごとにキーと値のペアが入力されます。感情のトーンが検出されない場合、キーと値のペアは返されません。ただしトーンがニュートラルとして認識されると、NLPエンジンはトーンスコア0を返します。Contextオブジェクトのトーン変数にアクセスするときは、正、負、ゼロ、および未定義の結果を処理できる必要があります。

例:

message_tone
   0
      tone_name : positive
      level : 2
   1
      tone_name : disgust
      level : -2
   2
      tone_name : angry
      level : -2
dialog_tone
   0
      tone_name : angry
      level : -3
   1
      tone_name : sad
      level : -3
   2
      tone_name : positive
      level : 3
   3
      tone_name : joy
      level : 3

感情のトーンスコアが関連付けられたテスト文の例を次に示します。これは良い考えではないと思いますし、特にあなたの態度のせいで、それがどうして出てきたか納得していません。

dialog_tone
   0
      tone_name : joy
      count : 1
      level : 0.67
   1
      tone_name : sad
      count : 1
      level : 0.5
   2
      tone_name : angry
      count : 1
      level : 0.5

これは素晴らしいアイデアです!私はすでにとても興奮しています。

dialog_tone
   0
      tone_name : joy
      count : 1
      level : 3
   1
      tone_name : sad
      count : 1
      level : 2.8
   2
      tone_name : angry
      count : 1
      level : -3
}

これは面白くてさりげなくよく書かれた本で、よく読みました。しかし、それは物語を終わらせずに途中で放置されているので、少しイライラします。

dialog_tone
   0
      tone_name : joy
      count : 1
      level : 1.5
   1
      tone_name : sad
      count : 1
      level : -1.5
   2
      tone_name : angry
      count : 1
      level : -1

条件付き遷移ステートメントを使用してダイアログタスクのフローを促進するために、トーンスコアにアクセスして使用することができます。たとえば、

if context.message_tone.angry > 2.0
    then goTo liveAgent

詳細についてはコンテキストオブジェクトを参照してください。

봇 플랫폼 자연어 처리(NLP) 통역가는 특정 단어와 구문에 대한 사용자 발화를 구문 분석한 다음, 함축, 단어 위치, 모든 추가된 수식어에 따라 평균 어조 점수를 제공할 수 있습니다. 사용자 입력을 평가하고 봇과 사용자 사이의 대화 흐름을 지시하는 것을 지원하기 위해 점수를 사용할 수 있습니다. 예를 들어, 어조 점수가 사용자의 분노나 슬픔을 표시하는 경우, 라이브 에이전트로 봇 대화를 전환하고자 합니다. 대화 작업에서, 사용자는 Context 개체에서 어조 점수에 액세스할 수 있거나 인텔리전스정서 관리 옵션에서 트리거 될 이벤트를 설정할 수 있습니다.

어조 유형

Kore.ai 봇 플랫폼은 다음 여섯 가지 가능한 감정을 찾기 위해 사용자 입력을 평가합니다.

  • 분노
  • 혐오
  • 두려움
  • 슬픔
  • 즐거움
  • 긍정 – 발화의 전반적인 긍정성을 평가하는 데 사용되는 특별한 어조입니다.

봇 플랫폼 어조 알고리즘은 상호 배타적으로 감정을 생성하지 않음으로써 사용자 발화 어조의 뉘앙스 개요를 제공합니다. 예를 들어, 입력은 공포에 대해서는 높은 점수와 슬픔에 대해서는 낮은 점수를 산출할 수 있습니다. 다른 입력은 슬픔에 대해 부정적인 점수를 가지는 동안 즐거움에 대해 아주 높은 점수를 산출할 수 있습니다. v8.1 이후, 플랫폼은 사용자 발화에서 이모지를 식별할 수 있으며 이에 따라 어조를 설정합니다.

어조 감정 채점

봇 플랫폼은 긍정적 값은 발산된 어조 감성을 나타내고 부정적 값은 억눌린 어조 감정을 나타내는 -3~에서 +3의 범위에서 어조 감정을 채점합니다. 부정적 값이 분명하게 무효가 되는 반면, 긍정적 값의 경우, 어조 감정은 분명하게 전달됩니다. 예를 들어, 사용자 발화인 나는 이 소식이 기쁩니다는 기쁨에 대한 긍정적인 점수를 반환하는 반면, 나는 이 소식이 기쁘지 않습니다는 기쁨에 대한 부정적인 점수를 반환합니다. 다음 척도는 어조 감정의 긍정적인 표현 수준 또는 어조 감정의 부정적인 억누름 수준에 대한 점수의 관계를 보여줍니다.

  • +3 – 사용자가 어조 감정을 확실히 표현했습니다.
  • +2 – 사용자가 어조 감정을 표시했습니다.
  • +1 – 사용자가 어조 감정을 표현했을 가능성이 큽니다.
  • 0 – 사용자 어조 감정이 중립입니다.
  • -1 – 사용자가 어조 감정을 억눌렀을 가능성이 큽니다.
  • -2 – 사용자가 어조 감정을 억눌렀습니다.
  • -3 – 사용자가 어조 감정을 확실히 억눌렀습니다.

어조 점수 정보

전반적인 어조 점수는 기본 어조 값과 어조 수식어의 함수대로 계산됩니다. 수식어는 일반적으로 어조 감정 단어를 보충하는 부사 또는 형용사이며, 기본 어조 점수를 높이거나 낮춥니다. 예를 들어, 사용자 발화인 나는 매우 실망했습니다는 사용자 발화가 나는 실망했습니다인 경우보다 높은 어조 점수를 분노 어조 감정에 반환합니다. 반대로, 나는 실망하지 않았습니다는 어조 감정과 어조 점수를 무효로 합니다. 기본 어조 및 수식어의 값은 각 어조 감정에 대한 최종 어조 점수를 계산하기 위해 사용됩니다. 어조 분석기는 어조 감정 유형에 따라 모든 기본 어조를 컴파일한 다음 현재 대화 작업 노드의 개별 어조 감정 유형의 평균 점수와 마지막 리셋 이후 어조 총점수를 계산합니다. 어조 결과는 다음과 같이 Context 개체 변수로 반환됩니다.

  • message_tone – 대화 작업의 현재 노드에 대해 인식된 어조 감정 및 점수 배열입니다.
  • dialog_tone – 전체 대화 작업 세션에 대해 평균적인 인식된 어조 감정 및 점수의 배열입니다. 이 값은 각 대화 세션의 마지막에 리셋됩니다.

각 변수는 각각 인식된 어조 감정에 대한 키/값 쌍으로 채워집니다. 키/값 쌍은 어조가 감정을 감지하지 않으면 반환되지 않습니다. 하지만, NLP 엔진은 어조가 중립으로 인식되었을 때 어조 점수를 0으로 반환합니다. Context 개체의 어조 변수에 액세스하는 경우, 정의되지 않은 결과와 마찬가지로 긍정적, 부정적, 0을 다루는 것이 가능해야 합니다.

message_tone 0 tone_name : 긍정 수준 : 2 1 tone_name : 혐오 수준 : -2 2 tone_name : 분노 수준 : -2 dialog_tone 0 tone_name : 분노 수준 : -3 1 tone_name : 슬픔 수준 : -3 2 tone_name : 긍정 수준 : 3 3 tone_name : 즐거움 수준 : 3

다음은 관련 어조 감정 점수와 테스트 문장 예시입니다. 나는 이게 좋은 생각이라고 생각하지 않고 나온 방식도 좋지 않아, 특히 네 태도 때문에.

dialog_tone 0 tone_name : 즐거움 수치 : 수준 1 : 0.67 1 tone_name : 슬픔 수치 : 수준 1 : 0.5 2 tone_name : 분노 수치 : 수준 1 : 0.5

이건 정말 좋은 생각이야! 난 이미 매우 신났어.

dialog_tone 0 tone_name : 즐거움 수치 : 수준 1 : 3 1 tone_name : 슬픔 수치 : 수준 1 : 2.8 2 tone_name : 분노 수치 : 수준 1 : -3 }

이건 정말 재밌고 자연스럽게 잘 쓰인 책이야, 잘 읽었어. 하지만 완결을 내지 않고 이야기를 그만둬서 약간 실망스러워.

dialog_tone 0 tone_name : 즐거움 수치 : 수준 1 : 1.5 1 tone_name : 슬픔 수치 : 수준 1 : -1.5 2 tone_name : 분노 수치 : 수준 1 : -1

어조 점수에 액세스하고 사용하여 조건부 전이 문구를 사용하는 대화 작업의 흐름을 이끌 수 있습니다. 예를 들면,

context.message_tone.angry > 2.0 이면 goTo liveAgent입니다.

더 자세한 정보는 컨텍스트 개체를 참조하세요.

The bots platform Natural Language Processing (NLP) interpreter can parse user utterances for specific words and phrases, and then provide an average tone score based on the connotation, word placement, and any added modifiers. You can use the score to help assess the user input and direct the flow of the conversation between the bot and the user.

For example, if the tone score indicates a user is angry or sad, you want to transition the bot conversation to a live agent. In a dialog task, you can access the tone score from the Context object or you can configure events to be triggered, from the Sentiment Management option under Intelligence.

Tones Types

Kore.ai bots platform evaluates user inputs to find the following six possible emotions:

  • angry
  • disgust
  • fear
  • sad
  • joy
  • positive – A special tone used to evaluate the general positivity of an utterance.

The bots platform tone algorithm provides a nuanced overview of the user utterance tone by not making the emotions mutually exclusive. For example, an input could yield a high score for fear and a mild score for sadness. Another input could yield a very high score for joy while having a negative score for sadness.

Post v8.1, the platform can identify the emojis in user utterance and set the tone accordingly.

Score Tone Emotions

The bots platform scores a tone emotion on a scale range of -3 to +3 where positive values represent an expressed tone emotion and a negative value represents a suppressed tone emotion.

For positive values, the tone emotion is explicitly communicated, while negative values are explicitly negated.

For example, a user’s utterance, I am happy about this news, returns a positive tone score for joy, while I am not happy about this news returns a negative score for joy.

The following scale shows the relationship of the score to the level of positive expression of the tone emotion or negative suppression of the tone emotion.

  • +3 – The user definitely expressed the tone emotion.
  • +2 – The user expressed the tone emotion.
  • +1 – The user likely expressed the tone emotion.
  • 0 – The user tone emotion is neutral.
  • -1 – The user likely suppressed the tone emotion.
  • -2 – The user suppressed the tone emotion.
  • -3 – The user definitely suppressed the tone emotion.

About Tone Scores

The overall tone score is calculated as a function of the base tone value and any tone modifiers. Modifiers are generally adverbs or adjectives that supplement a tone emotion word, either to increase or decrease the base tone score.

For example, a user’s utterance, I am extremely disappointed, returns a higher tone score for the angry tone emotion than if the user utterance is I am disappointed. Conversely, a user utterance of I am not disappointed negates the tone emotion and the tone score.

The value of the base tone and modifiers are used to calculate the final tone score for each tone emotion. The tone analyzer compiles all base tones based on the tone emotion type and then calculates the average score of each tone emotion type in the current dialog task node and the tone total score since the last reset.

Tone results are returned as Context object variables as:

  • message_tone – An array of recognized tone emotions and scores for the current node in a dialog task.
  • dialog_tone – An array of average recognized tone emotions and scores for the entire dialog task session. This value is reset at the end of each dialog session.

Each variable is populated with key/value pairs for each recognized tone emotion. Key/value pairs are not returned if a tone is not detected for an emotion. However, the NLP engine returns a tone score of 0 when a tone is recognized as neutral. When you access tone variables in the Context object, you must be able to handle positive, negative, zero, as well as undefined results.

Examples

message_tone
   0
      tone_name : positive
      level : 2
   1
      tone_name : disgust
      level : -2
   2
      tone_name : angry
      level : -2
dialog_tone
   0
      tone_name : angry
      level : -3
   1
      tone_name : sad
      level : -3
   2
      tone_name : positive
      level : 3
   3
      tone_name : joy
      level : 3

Here are some examples of test sentences with their associated tone emotion scores:
I don’t think that this is a good idea and I am not happy with how it came out, especially because of your attitude.

dialog_tone
   0
      tone_name : joy
      count : 1
      level : 0.67
   1
      tone_name : sad
      count : 1
      level : 0.5
   2
      tone_name : angry
      count : 1
      level : 0.5

This is a great idea! I’m super excited already.

dialog_tone
   0
      tone_name : joy
      count : 1
      level : 3
   1
      tone_name : sad
      count : 1
      level : 2.8
   2
      tone_name : angry
      count : 1
      level : -3
}

This was a funny and casually well-written book, a good read. But it’s a little frustrating because it abandons the narrative, if you will, without finishing it.

dialog_tone
   0
      tone_name : joy
      count : 1
      level : 1.5
   1
      tone_name : sad
      count : 1
      level : -1.5
   2
      tone_name : angry
      count : 1
      level : -1

You can access and use tone scores to help drive the flow of your dialog task using conditional transition statements. For example,

if context.message_tone.angry > 2.0
    then goTo liveAgent

For more information, refer to Context Object.

Adding Sentiment Words to Concepts

For identifying the tone and analyzing the sentiment of a user utterance/phrase, you can add those utterances in the Concepts.

The sentiment words are all stored in concepts and it is possible for a virtual assistant to extend the concepts by entering appropriate new words under the relevant concept name, during the concept training.

The syntax for the concept name is: ~tone-<tonename>-<level>, where <tonename> indicates any of the 6 tone types listed in Tone Types and <level> is a number from 1 to 7. 1 is equivalent to a -3, 7 is +3, and 4 is the neutral 0. 

See Score Tone Emotions to know more.

The following are some examples of words that can be mapped to relevant concepts.

  • The word freaking could be defined as a synonym under ~tone-angry-7, which indicates real bad anger.
  • The word Yikes! could be defined as a synonym under ~tone-angry-5, which indicates a bit angry.
  • The word please would come under ~tone-angry-4 which indicates a neutral tone.
  • The word Thanks! indicates a happy tone and could be defined as a synonym under ~tone-angry-1, which is mapped to not angry at all tone.