동의어 관리
사용자는 다양한 방식으로 동일한 요청을 발화합니다. 예를 들어, 리드 생성(Create Lead) 같은 의도는 새 리드(New Lead), 새 리드 만들기(Make a New Lead) 또는 리드 생성(Generate a Lead) 같은 대안적인 단어로 표현할 수 있습니다. 개발자는 작업 이름을 두세 단어로 제한하되 다른 방법으로 요청할 수 있도록 해야 합니다. 작업 이름과 작업 필드 이름 모두에 동의어를 정의합니다. 사용자가 제공한 올바른 작업 및 작업 필드를 인식할 때 NLP 인터프리터의 정확도를 최적화하기 위해, 작업 및 작업 필드의 이름에 사용된 단어의 동의어를 추가할 수 있습니다.
- 생성(Create) – 새 작업(new) 구축(build), 설계(design), 생성(generate), 예시(instantiate), 만들기(make), 생산(produce) 등.
- 리드(Lead) – 판매 리드(sales lead), 고객 리드(customer lead), 잠재적 리드(potential lead), 조건에 맞는 리드(qualified lead) 등.
다음과 같은 철자 오류도 염두에 두어야 합니다.
- 생성(Create) – crate, creeate, etc.
- 리드(Lead) – leed, led, and lede.
단어의 동의어를 추가하면 다른 봇 작업 또는 작업 필드에서도 해당 동의어를 사용합니다. 즉, 작업에 정의된 단어의 동의어는 다른 작업 이름의 같은 단어에도 적용할 수 있습니다. 예를 들어, 새 리드 생성 작업(Create a New Lead)에서 생성(create)이라는 단어에 정의된 동의어를 기회 생성(Create Opportunity) 작업에도 사용합니다. 작업 및 작업 필드 이름 지정에 대한 모범 사례 및 팁에 대한 자세한 내용은, 자연어 처리 지침을 참조하세요.
봇 동의어로 이동
- 동의어를 추가하려는 봇을 열고 상단 메뉴에서 빌드 탭을 선택합니다.
- 왼쪽 탐색 메뉴에서 자연어 -> 학습을 클릭합니다.
- 학습 페이지에서, 다음 탭 중 하나를 클릭합니다.
- 봇 동의어 – 봇 또는 작업 이름에 있는 단어의 동의어를 추가하고 편집합니다.
- 엔티티 – 대화 작업 엔티티 노드 이름의 모든 단어에 대한 동의어를 추가하고 편집합니다.
- 필드 – 작업 필드 이름의 모든 단어에 대한 동의어를 추가하고 편집합니다. 각 작업을 클릭하여 해당 작업의 단어 목록을 확장합니다.
동의어 추가
학습 페이지의 봇 동의어 탭에서 봇 작업 이름에 있는 단어의 동의어를 보고 추가할 수 있습니다. 봇 동의어 탭에 정의된 동의어는 모든 작업 이름, 필드 이름 등 봇 전체에 적용됩니다. 참고: 기본적으로 동의어가 나열되며 이는 영어, 독일어, 스페인어 및 프랑스어로만 제한됩니다. 봇 동의어를 추가하려면 다음 단계를 따르십시오.
- 학습 페이지에서 봇 동의어 탭을 선택합니다.
- 새 동의어를 클릭하거나 기존 동의어의 편집 아이콘을 사용하여 동의어 페이지를 엽니다.
- 이름 필드에 동의어를 생성하려는 단어(키워드)의 이름을 입력합니다.
- 동의어 필드에, 키워드를 위한 하나 이상의 동의어를 입력합니다. 각 동의어를 입력한 후 Enter 키를 누릅니다.
- 추가를 클릭하여 동의어 항목을 저장합니다.
엔티티 동의어 추가
학습 페이지의 엔티티 동의어 탭에서 각 대화 작업 엔티티는 해당 엔티티에 대해 정의된 동의어와 함께 나열됩니다. 작업 엔티티에 동의어를 추가하려면, 다음 단계를 따르세요.
- 학습 페이지에서 엔티티 탭을 선택합니다.
- 동의어를 추가하려는 엔티티의 편집 아이콘을 클릭합니다.
- 엔티티의 동의어를 하나 이상 입력한 다음 각 동의어를 입력한 후 Enter 키를 누릅니다
필드 동의어 추가
학습 페이지의 필드 탭에 필드 또는 엔티티 수와 함께 각 작업이 나열됩니다. 필드 동의어 탭에 정의된 동의어는 선택한 작업과 해당 작업에 지정된 필드 이름에만 적용됩니다. 필드에 동의어를 추가하려면 다음 단계를 따르십시오.
- 학습 페이지에서 필드 탭을 클릭합니다.
- 작업 이름에서, 동의어를 입력하려는 작업 필드의 편집 아이콘을 클릭합니다.
- 동의어를 하나 이상 입력한 다음 각 필드를 입력한 후 Enter 키를 누릅니다.
- 저장을 클릭하여 저장하고 대화 상자를 닫습니다.
필드 동의어는 봇 관련 작업에만 적용될 수 있습니다. 즉, 같은 단어에 적용될 수 있습니다. 예를 들어, 한 작업의 상태는 다른 작업의 상태라는 같은 필드에 서로 다른 동의어를 가질 수 있습니다. 작업 또는 작업 필드에서 단어의 동의어를 추가하는 것은 NLP 인터프리터가 의도한 작업 또는 작업 필드를 선택하는 데 도움이 될 수 있습니다. 작업 또는 작업 필드의 사용자 입력에 작업 이름 또는 작업 필드 이름의 단어가 포함되어 있지 않으면 어떻게 될까요? 예를 들어, Salesforce 봇의 리드 생성 작업의 경우 사용자가 새 계정 옵션, 즉 리드 생성을 입력하면 작업 이름의 단어나 동의어와 일치하지 않게 됩니다. 이 경우, 작업 이름 또는 작업 필드와 일치하는 단어 그룹의 패턴을 생성할 수 있습니다.
개념
개념은 한 개의 단어를 식별 그룹으로 간주할 수 있는 관련된 동의어 모음입니다. 예를 들어, 네(yes)는 좋습니다(ok) 또는 동의합니다(I agree) 또는 맞습니다(right) 등으로 표현할 수 있습니다. 시스템 개념 Kore.ai 플랫폼은 네, 아니요, 도움말 등 가장 일반적인 시나리오를 다루는 기본 개념 목록을 제공합니다.
개념 사용자 정의 비즈니스 요구 사항에 맞는 개념을 정의할 수 있습니다. 예를 들어, 과일이라는 용어는 사과, 오렌지 또는 바나나를 의미할 수 있습니다. 기본 단어 목록에 추가하려면, ~emogoodbye 또는 ~emohello 같은 기본 개념에 더 많은 단어를 추가하는 대신 패턴을 매핑하기 전에 새 개념을 생성하고 거기에 단어를 추가하는 것이 좋습니다. 사용자 정의 개념 정의 단어를 ~로 시작하여 봇 동의어를 정의하는 것과 같은 방식으로 새 개념을 정의할 수 있습니다. 명명 규칙에 대한 자세한 내용은, 여기를 참조하세요. 이모지로 맞춤형 개념을 정의할 수도 있습니다. 개념을 사용하여 패턴을 정의합니다. 예를 들어, 구매 ~과일(buy ~fruit) 패턴을 오렌지 구매(buy orange) 또는 바나나 구매(buy banana)를 캡처하는 데 사용합니다.
이모지 지원
NLP 엔진은 사용자 발화에 있는 이모지를 인식할 수 있습니다. 이를 개념 정의에 포함하고 더 나은 사용자 경험을 제공할 수 있습니다. 예를 들어, 사용자의 엄지를 든 이모티콘(:thumbs up:)은 긍정으로 간주될 수 있고, 찡그린 이모티콘(:frowning2:)은 분노한 감정으로 간주되어 적절한 조치가 취해질 수 있습니다. 사용자의 발화에 이모지가 있을 때 봇이 대화를 수행할 수 있도록 이모지를 봇의 시스템 개념으로 가져올 수 있습니다. 이를 위해 다음 단계를 따르세요.
패턴 및 규칙 관리
NLP 인터프리터의 정확도와 인식을 최적화하기 위해, 작업 이름 및 작업 필드의 패턴을 생성할 수 있습니다. 이름에 사용된 단어에 동의어를 사용하는 것은 대단히 좋습니다. 때때로, 사용자는 속어, 은유 또는 기타 관용적 표현을 작업을 지칭할 수 있습니다. 예를 들어, 사용자는 오늘의 강우 상황을 입력했는데 작업 이름은 현재 날씨 확인일 수 있습니다. 이 경우, 작업 이름 안에 있는 단어가 사용되지는 않았지만, 입력된 내용은 현재 날씨 확인으로 같은 의미를 띄게 됩니다. 이러한 경우, 패턴을 사용하면 NLP 인터프리터 정확도를 개선하는 데 도움이 될 수 있습니다. NLP 인터프리터가 작업이나 필드에 동의어를 일치시키고 다른 작업이나 필드에 패턴을 일치시킬 때, 패턴 일치에 우선 순위를 적용하여 동의어 일치보다는 긍정 인식을 하는 데 사용하게 됩니다. NLP 최적화를 위한 모범 사례 및 팁에 대해 자세히 알아보려면, 자연어 처리 지침을 참조하세요. 패턴 사용에 대한 빠른 지침의 경우, 패턴 사용 방법을 참조하세요.
패턴 탭으로 이동
- 패턴을 추가하려는 봇을 열고 상단 메뉴에서 빌드 탭을 선택합니다.
- 왼쪽 메뉴에서 자연어 -> 학습을 클릭합니다.
- 학습 페이지에서, 다음 탭 중 하나를 클릭합니다.
- 의도 – 대화 작업 사용자 의도 노드의 패턴 또는 규칙을 추가하거나 편집합니다.
- 엔티티 – 대화 작업 엔티티 노드의 패턴을 추가하거나 편집합니다.
- 필드 – 작업 필드 패턴을 추가하거나 편집합니다. 예를 들어 날짜, 위치 또는 이름을 사용자 입력으로 사용합니다. 이 옵션은 봇에 하나 이상의 작업, 경고 또는 정보 작업이 있는 경우에만 사용할 수 있습니다.
의도 패턴 추가
작업을 의미하는 문장으로 패턴을 정의할 수 있지만 실제로 작업 이름에 단어를 포함하지는 않습니다. 또한, 올바른 작업을 인식하는 정확도를 향상시키기 위해 NLP 인터프리터에서 단어를 무시해야 하는 위치를 정의할 수 있습니다. 예를 들어, 사용자 입력에서 순서대로 찾기라는 단어 다음에 임의의 숫자만큼의 단어가 오고, 그 다음에 테스트할 수 있는이 오고, 다시 임의의 숫자만큼의 단어가 오고, 마지막으로 값이라는 단어가 오는 단어 시퀀스를 인식하는 *테스트할 수 있는* 값 찾기 같은 패턴을 구축할 수 있습니다. 이 패턴의 경우, 사용자 입력이 패턴과 일치할 가능성이 있는 값에 해당하는 테스트 할 수 있는 모든 정수 찾기일 수 있습니다. 개념으로 패턴을 구축할 수도 있습니다. 예를 들어, 구매 ~과일로 정의한 패턴과 일치하는 사용자 입력이 오렌지 구매가 될 수 있습니다. 의도 섹션에서, 대화 작업의 패턴을 보고, 추가하고, 삭제할 수 있습니다.
의도 패턴을 추가하려면 다음 단계를 따르세요.
- 학습 페이지에서, 패턴을 입력하려는 의도 이름의 패턴/+패턴을 클릭합니다.
- 의도 창에서, 하나 이상의 문장 패턴을 입력하고 패턴 사이에 Enter 키를 누릅니다.
- 아이콘을 사용하여 패턴을 재정렬, 편집 또는 삭제할 수 있습니다.
의도 규칙 추가
특성 또는 컨텍스트 태그를 사용하여 의도 탐지를 개선하기 위한 의도 식별 규칙을 정의할 수 있습니다. AND, OR 연산자를 사용하여 특성 또는 컨텍스트 태그 및 조건 규칙을 추가할 수 있습니다. 의도 규칙을 추가하려면 다음 단계를 따르세요.
- 학습 페이지에서, 패턴을 입력하려는 의도 이름의 규칙/+규칙을 클릭합니다.
- 의도 창에서 AND, OR 연산자를 사용하여 조건부 규칙으로 하나 이상의 특성/컨텍스트 태그를 입력하고 특성/태그 사이에 Enter 키를 누릅니다.
특성 및 특성 연관 규칙 및 컨텍스트 태그에 대한 자세한 내용은 여기를 참조하세요.
엔티티 패턴 추가
학습 페이지의 엔티티 섹션에서, 대화 작업 엔티티 노드 이름의 패턴을 보고, 추가하고, 삭제할 수 있습니다. 엔티티 패턴을 추가하려면 다음 단계를 따르십시오.
- 학습 페이지에서, 엔티티 탭을 클릭합니다.
- 패턴을 추가하려는 엔티티의 편집 아이콘을 클릭합니다.
- 엔티티 학습 페이지에서, 패턴 탭을 선택합니다.
- 하나 이상의 문장 패턴을 입력하고 패턴 사이에 Enter 키를 누릅니다.
- 아이콘을 사용하여 패턴을 재정렬, 편집 또는 삭제할 수 있습니다.
필드 패턴 추가
학습 페이지의 엔티티 섹션에서, 대화 작업 엔티티 노드 이름의 패턴을 보고, 추가하고, 삭제할 수 있습니다. 참고: 이 옵션은 봇에 하나 이상의 작업, 경고 또는 정보 작업이 있는 경우에만 사용할 수 있습니다. 엔티티 패턴을 추가하려면 다음 단계를 따르십시오.
- 학습 페이지에서, 필드 탭을 클릭합니다.
- 패턴을 추가하려는 엔티티의 편집 아이콘을 클릭합니다.
- 필드 학습 페이지에서, 패턴 탭을 선택합니다.
- 하나 이상의 문장 패턴을 입력하고 패턴 사이에 Enter 키를 누릅니다.
- 아이콘을 사용하여 패턴을 재정렬, 편집 또는 삭제할 수 있습니다.
네거티브 패턴
Kore.ai 봇 플랫폼에서 자연어 엔진은 사용자 입력을 식별하고 해당 사용자 입력을 작업과 일치시키려고 합니다. 추가 고급 설정을 수정하여 의도 탐지에 네거티브 패턴을 활성화할 수 있습니다. 이는 사용자 발화의 일부지만 해당 의도를 트리거해서는 안 되는 일치 의도를 필터링하는 데 유용합니다. 사용 사례: 예를 들어, 사용자가 문제가 발생했을 때 항공편을 예약하려고 했습니다(I was trying to Book a Flight when I faced an issue고 말합니다. 기계는 의도를 항공편 예약(Book a Flight)으로 식별하지만 이는 사용자가 원하는 일이 아닙니다. 이럴 경우, 하려고(was trying to)를 네거티브 패턴으로 정의하고 일치하는 의도가 무시되도록 합니다. 네거티브 패턴을 사용하여 기초 의미 또는 기계 학습 모델을 통해 탐지된 의도를 제거합니다. 네거티브 패턴을 생성하려면 다음 단계를 따르세요.
임곗값 & 설정
학습 및 성능 향상을 위해 세 가지 NLP 엔진(FM, KG, ML)의 임곗값 및 설정을 지정할 수 있습니다. 빌드 -> 자연어 > 임곗값 및 설정에서 이러한 설정에 액세스할 수 있습니다. FM 엔진 설정에 대해서는 다음 섹션에 자세하게 설명되어 있습니다. 참고: 봇이 다국어인 경우 다른 언어에 다른 임곗값을 설정할 수 있습니다. 설정하지 않으면, 모든 언어에 기본 설정이 적용됩니다. 이 기능은 v7.0부터 사용할 수 있습니다.
임곗값 및 설정으로 이동합니다.
- 임곗값을 설정하고 싶은 봇을 엽니다.
- 상단 메뉴에서 빌드 탭을 선택합니다.
- 왼쪽 메뉴에서 자연어 ->임곗값 및 설정을 클릭합니다.
- 기초 의미 섹션에서는 FM 엔진의 임곗값을 설정할 수 있습니다.
- 사용 사례에서 작업 이름 단어를 사용한 의도 탐지는 필요시 비활성화될 수 있습니다. 이는 주문하기, 주문 취소, 주문 요청, 주문 복제와 같이 명명된 작업이 너무 많은 경우에 특히 유용합니다. 사용자 발화에 순서가 있는 경우 이러한 모든 작업이 의도와 일치합니다. 가능한 발화를 전부 시도해보고 추측하고 학습시키는 대신, 이 옵션을 비활성화하면 효과가 있습니다. 비활성화해도 패턴을 사용하는 의도 탐지에는 영향을 미치지 않습니다. 또한, 작업 이름에서 단어를 사용한 묵시적 패턴이 자동으로 추가됩니다. 이 묵시적 패턴은 사용자 입력이 정확한 작업 이름으로 시작하고 끝나는 경우 이 의도를 식별합니다. 이 기능은 기본적으로 활성화되어 있습니다.
- FM 임곗값을 사용하여 FM 엔진에서 R&R로 보내는 결과 수를 제한하여 최종 사용자에게 낮은 신뢰도의 일치를 제시할 가능성을 줄일 수 있습니다. 이 설정을 활성화하고 임곗값 백분율을 0%에서 20% 사이의 값으로 선택합니다. 기본값은 2%입니다. 최고 점수 의도 설정 % 내에서 일치하는 의도만 고려되고 다른 의도는 모두 제거됩니다. 영어, 스페인어, 프랑스어 및 독일어에서만 이 설정을 사용할 수 있습니다.
추천 자료 패턴 등을 사용한 의도 명명 지침을 자세히 알아보려면 여기를 참조하세요.
Fundamental Meaning is a computational linguistics approach that is built on ChatScript. The model analyzes the structure of a user’s utterance to identify each word by meaning, position, conjugation, capitalization, plurality, and other factors.
In this section, we will discuss in detail the following topics to improve the FM engine:
同義語の管理
ユーザーの発話は、同じリクエストでも様々な方法で行われます。
例えば「Create Lead」などのインテントは、「New Lead」、「Make a New Lead」、「Generate a Lead」のような代替案で表される場合があります。
タスクの名前を2〜3語に制限する必要がありながらも、質問される可能性のある代替方法に対応する必要があります。
同義語は、タスク名とタスクフィールド名の両方に定義できます。ユーザーが入力した正しいタスクおよびタスクフィールドを認識する際にNLPインタプリタの精度を最適化するために、タスクおよびタスクフィールドの名前に使用されている単語の同義語を追加することができます。
- Create – 「new」、「build」、「design」、「generate」、「instantiate」、「make」、「produce」など
- Lead – 「sales lead」、「customer lead」、「potential lead」、「qualified lead」など
以下のようなスペルミスも考慮します。
- Create – 「crate」、「creeate」など
- Lead – 「leed」、「led」、「lede」など
単語の同義語を追加すると、それらの同義語は他のBotタスクやタスクフィールドでも使用されます。つまり、タスクに定義された単語の同義語は、別のタスク名の同じ単語にも適用されます。例えば、Create a New Leadタスクのcreateという単語に定義された同義語は、Create Opportunityタスクにも使用されます。
タスクやタスクフィールドの名前付けのベストプラクティスおよびヒントの詳細については、自然言語処理ガイドを参照してください。
Botの同義語への移動
- 同義語を追加したいBotを開きます。
- サイドナビゲーションパネルにカーソルを合わせ、自然言語 > トレーニングをクリックします。
- 同義語と概念タブをクリックします。
- 同義語ページで、以下のタブのいずれかをクリックします。
- Botの同義語 – Botまたはタスク名の単語の同義語を追加および編集します。
- エンティティの同義語 – ダイアログタスクのエンティティノード名の任意の単語の同義語を追加および編集します。
- フィールド – タスクフィールド名の任意の単語の同義語を追加および編集します。それぞれのタスクをクリックして、そのタスクの単語一覧を展開します。
Botの同義語の追加
同義語ページの自然言語タブで、Botのタスク名の単語の同義語を表示および追加することができます。自然言語タブで定義された同義語は、Bot全体ですべてのタスク名、フィールド名などに適用されます。
デフォルトでは、同義語がリストアップされていますが、これは英語、ドイツ語、スペイン語、フランス語のみに限定されていることにご注意ください。
- 同義語ページのBotの同義語タブで、同義語の追加をクリックします。新しいキーワードと同義語セクションが表示されます。
- キーワードフィールドに、同義語を作成する単語の名前を入力します。
- 同義語の単語フィールドで、キーワードの同義語を1つ以上入力します。それぞれの同義語を入力した後、[ENTER]を押します。
- 保存をクリックして保存し、ダイアログを閉じます。
エンティティの同義語の追加
同義語ページのエンティティの同義語タブでは、それぞれのダイアログタスクのエンティティが、そのエンティティ用に定義された同義語と一緒にリストアップされています。
ダイアログタスクエンティティに同義語を追加する
- 同義語ページでエンティティの同義語タブをクリックします。
- 同義語を追加するダイアログタスクエンティティをクリックします。
- エンティティの同義語を1つ以上入力し、それぞれの同義語を入力した後に[ENTER]を押します。
- 保存をクリックして保存し、ダイアログを閉じます。
フィールドの同義語の追加
同義語ページのフィールドの同義語タブでは、それぞれのタスクがフィールドの数、またはエンティティと一緒にリストアップされています。フィールドの同義語タブで定義された同義語は、選択されたタスクと、そのタスクの指定されたフィールド名にのみ適用されます。
タスクフィールドの同義語を追加する
- 同義語ページでフィールドタブをクリックします。
- タスク名で、同義語を入力するタスクフィールドの名前をクリックします。
- 同義語を1つ以上入力し、それぞれのフィールドを入力した後に[ENTER]を押します。
- 保存をクリックして保存し、ダイアログを閉じます。
フィールドの同義語は、Botの関連するタスクにのみ適用されます。これは同一の単語、例えば、あるタスクにおけるStatusは、別のタスクにおいてStatusと呼ばれる同一フィールドの異なる同義語が存在する場合があるということです。
タスクまたはタスクフィールドに単語の同義語を追加することは、NLPインタプリタが意図したタスクまたはタスクフィールドを選択するのに役立ちますが、タスクまたはタスクフィールドへのユーザー入力にタスク名またはタスクフィールドの単語が含まれていない場合は、どうなるのでしょうか?
例えば、SalesforceのBotの「Create Lead」タスクで、ユーザーが「Create Lead」と同じ意味をもつ「New Account Option」を入力した場合、タスク名の単語や同義語のいずれにも一致しない場合があります。この場合、タスク名またはタスクフィールドに一致する単語のグループに対して、パターンを作成することができます。
Concepts
Concepts are clusters of related and synonymous terms that can be considered as a group identified by a single term.
For example, yes can be expressed as ok or I agree or right etc.
System Concepts
Kore.ai platform provides a list of default concepts that cover the most common scenarios like yes, no, help etc.
カスタム概念
概念は、単一の用語で識別されるグループと見なされる、関連する同義語の集合体です。
例えば、fruitという用語を使って、apple、orange、bananaのいずれかを意味するようにしたい場合などがあります。
カスタム概念の定義
単語を~</ strong>で始めることにより、Botの同義語を定義するのと同じ方法で新しい概念を定義することができます。命名規則の詳細については、こちらを参照してください。
概念は、パターンを定義する際に使用することができます。例えば、buy ~fruitというパターンは、buy orangeやbuy bananaを取得するために使用することができます。]]>
Emoji Support
(introduced in v8.1)
NLP engine can recognize emojis present in the user utterance. You can include these in the concept definition and give a better user experience. For example, a thumbs-up emoticon (:thumbs up:) from the user can be considered as an affirmative, and a frown emoticon (:frowning2:) can be considered as an anger sentiment and appropriate action can be taken.
You can import emojis into your bot’s system concepts so that the bot can conduct the conversations when emojis are present in the user’s utterances. For this, follow the below steps:
- On the left pane, click Natural Language > Training > Synonyms and Concepts.
- Click more/ellipses icon and select Import Emojis into Concepts.
- This adds all the default emojis to the system concepts for the current language. As you can see emojis are updated for the system concepts like ~emohappy, etc.
- After importing, you may choose to review and remove any emojis that you may not want to support.
- If you are trying to reimport the emojis, then the current emojis are retained and any additional emojis are added.
パターンの管理
NLPインタプリタの精度や認識を最適化するために、タスクやタスクフィールドの名前のパターンを作成することができます。
同義語の使用は名前に使用される単語に最適ですが、ユーザーがスラング、比喩、またはその他の慣用表現を使用してタスクを参照する場合があります。
例えば、タスク名はGet Current Weatherとなっていますが、ユーザーがwhat’s happening with today’s rain situationと入力するなどがあります。この場合、タスク名で使用されている単語はいずれも使用されていませんが、入力はGet Current Weatherと同じ意味になります。
こうしたケースでは、パターンを使用することで、NLPインタプリタの精度を向上させることができます。
NLPインタプリタが同義語を1つのタスクまたはフィールドに一致させ、パターンを別のタスクまたはフィールドに一致させた場合、パターンの一致が優先され、同義語の一致よりも肯定的な認識に使用されます。
NLPを最適化するためのベストプラクティスやヒントの詳細については、自然言語処理ガイドを参照してください。
パターンの使用に関する説明については、パターンの使用方法を参照してください。
パターンタブへの移動
- パターンを追加するBotを開きます。
- サイドのナビゲーションパネルにカーソルを合わせ、自然言語とトレーニングをクリックします。
- パターンタブをクリックします。
- パターンページで以下のタブのいずれかをクリックします。
- インテントパターン – ダイアログタスクのユーザーインテントノードのパターンを追加または編集します。
- エンティティパターン – ダイアログタスクのエンティティノードのパターンを追加または編集します。
- フィールドパターン – ユーザー入力として、日付、場所、名前などのタスクフィールドパターンを追加または編集します。このオプションは、Botに1つ以上のアクション、アラート、または情報タスクがある場合にのみ使用できます。
- タスクパターン (このオプションはバージョン6.40リリース後にインテントパターンと統合されました) – 例えば、Get WeatherのようなBotタスクのパターンを追加または編集します。
インテントのパターンを追加する
タスクを表しますが、実際にはタスクの名前に単語が含まれていない文としてパターンを定義することができます。
また、正しいタスクの認識の精度を向上させるために、NLPインタプリタが単語を無視する際のルールを定義することができます。
例えば、「find」という単語の後に任意の数の単語が続き、「testable」という単語が続き、さらに任意の数の単語が続き、最後に「value」という単語が続くような順序で、ユーザー入力内の一連の単語を認識することができるよう、「find* testable* value」のようなパターンを作成することができます。このパターンの場合、ユーザー入力は「Find me any testable integers corresponding to the value」であり、パターンに一致します。
概念を使ってパターンを作成することもできます。例えば、パターンを buy ~fruit と定義することができ、このパターンと一致するユーザー入力は buy orange となります。
インテントパターンセクションでは、ダイアログタスクのパターンを表示、追加、削除することができます。
- パターンページでインテントパターンタブをクリックします。
- インテント名をクリックしてパターンを入力します。
- 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
- 適切なアイコンを使用して、パターンを並べ替え、編集、または削除することができます。
エンティティのパターンの追加
エンティティのパターンセクションでは、ダイアログタスクのエンティティノード名のパターンを表示、追加、削除することができます。
- パターンページでエンティティパターンタブをクリックします。
- エンティティ名をクリックして、そのエンティティ名のパターンを入力します。
- 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
- 適切なアイコンを使用して、パターンを並べ替え、編集、または削除することができます。
フィールドへのパターンの追加
フィールドパターンタブで、タスクフィールドのパターンを表示、追加、削除することができます。
注:このオプションは、Botに1つ以上のアクション、アラート、または情報タスクがある場合にのみ使用できます。
フィールドパターンを追加する
- パターンページでフィールドタブをクリックします。
- フィールド名をクリックして、そのフィールド名のパターンを入力します。
- 入力および[ENTER]を押してパターンを追加フィールドで、文のパターンを1つ以上入力し、パターンごとに[ENTER]を押します。
- 適切なアイコンを使用して、パターンを並べ替え、編集、または削除することができます。
Negative Patterns
On the Kore.ai Bots Platform, a natural language engine attempts to identify a user input and match that user input to a task. You can modify additional advanced settings to enable negative patterns for intent detection.
This is useful in filtering matched-intents that are part of user utterance but should not trigger that intent.
Use Case: For example, a user says I was trying to Book a Flight when I faced an issue. Though the machine identifies the intent as Book a Flight, that is not what the user wants to do. In such a case, defining was trying to as a negative pattern, would ensure that the matched intent is ignored.
Negative patterns are used to eliminate intents detected by the Fundamental Meaning or Machine Learning models.
To enable Negative Patterns, follow the below steps:
- On the left pane, click Natural Language > Training.
- Select Advanced Settings.
- Enable Negative Patterns. By default, this option is disabled.
- You can see the Negative Patterns section added in this section:
- For each of the intent in your bot, you can define negative patterns similar to how you define intent patterns.
- Any intents identified by FM or ML engines, if identified as one of the configured negative patterns, will be ignored and not sent to Ranking & Resolver.
- Once added, these patterns can be reordered, edited, and deleted.
しきい値および設定
トレーニングしてパフォーマンスを向上させるために、FM、KG、MLの3つのNLPエンジンすべてにしきい値および設定を指定することができます。これらの設定は 自然言語 > トレーニング > しきい値および設定からアクセスすることができます。
FMエンジンの設定については、以下の項目で詳しく説明します。
注:お客様のBotが多言語の場合、言語ごとに異なるしきい値を設定することができます。設定されていない場合、すべての言語でデフォルト設定が使用されます。この機能はバージョン7.0以降で利用可能です。
しきい値および設定への移動
- しきい値を設定するBotを開きます。
- サイドナビゲーションパネルにカーソルを合わせ、自然言語 > トレーニングをクリックします。
- しきい値および設定タブをクリックします。
- ファンダメンタルミーニングセクションでは、FMエンジンのしきい値を設定することができます。
- 確率の高い一致の近接度 – この設定はランキングおよび解決の下に移動しました。詳細はこちらをご覧ください。
- タスク名の単語を使用したインテントの検出(バージョン7.1で導入)は、ユースケースにとって必要な場合には無効にすることができます。これは特に、place order、cancel order、request order、duplicate orderなどの名前のついたタスクが多すぎる場合に便利です。ユーザーの発話に「order」が含まれている場合、これらのタスクはすべてインテントとして一致します。考えられるすべての発話を推測してトレーニングするよりも、このオプションを無効にする方が効果的です。このオプションを無効にしても、パターンを使用したインテント検出には影響しません。また、タスク名の単語を使用した潜在パターンが自動的に追加されます。ユーザー入力が正確なタスク名で始まり終わる場合にのみ、潜在パターンはこのインテントを識別します。デフォルトでは有効になっています。
Suggested Reading
Know more about the guidelines in naming Intents, using Patterns and more, refer here.
Fundamental Meaning is a computational linguistics approach that is built on ChatScript. The model analyzes the structure of a user’s utterance to identify each word by meaning, position, conjugation, capitalization, plurality, and other factors.
In this section, we will discuss in detail the following topics to improve the FM engine:
Manage Synonyms
Users utter the same request in varied ways.
For example, an intent like Create Lead could be expressed with alternatives such as New Lead, Make a New Lead, or Generate a Lead.
As a developer, you must limit the name of a task to only two or three words, yet accommodate the alternative ways in which it could be asked.
Synonyms are defined for both the task name and a task field name. To optimize the NLP interpreter accuracy in recognizing the correct task and task field provided by the user, you can add synonyms for words used in the names of your tasks and task fields.
- Create – new, build, design, generate, instantiate, make, produce, and so forth.
- Lead – sales lead, customer lead, potential lead, qualified lead, and so forth.
Also consider misspellings, such as:
- Create – crate, creeate, etc.
- Lead – leed, led, and lede.
When you add synonyms for a word, those synonyms are also used for other bot tasks or task fields. In other terms, synonyms for a word defined for a task are also applicable to the same word in another task name. For example, synonyms defined for the word create in the Create a New Lead task are also used for the Create Opportunity task.
For more information about best practices and tips for naming tasks and task fields, see the Natural Language Processing Guide.
Navigate to the Bot Synonyms
- Open the bot for which you want to add synonyms and select the Build tab from the top menu.
- From the left navigation menu and click Natural Language -> Training.
- On the Training page, click one of the following tabs:
- Bot Synonyms – Add and edit synonyms for the words in the bot or task names.
- Entities – Add and edit synonyms for any words in your dialog task Entity node names.
- Fields – Add and edit synonyms for any words in your task field names. Click each task to expand the word list for that task.
Add Bot Synonyms
On the Training page under the Bot Synonyms tab, you can view and add synonyms for words in bot task names. Synonyms defined on the Bot Synonym tab apply bot-wide to all task names, field names, and so forth.
Note: By default, synonyms are listed, this is limited to English, German, Spanish, and French languages alone.
To add a bot synonym, follow the below steps:
- On the Training page, select the Bot Synonyms tab.
- Click New Synonym or use the edit icon against an existing synonym, to open the synonym page.
- In the Name field, enter the name of the word (keyword) for which you want to create synonyms.
- In the Synonyms field, enter one or more synonyms for the keyword. Press Enter after entering each synonym.
- Click Add to save the synonym list.
Add Entity Synonyms
On the Training page, on the Entities tab, each dialog task entity is listed with any defined synonyms for that entity.
To add synonyms for a dialog task entity, follow the below steps:
- On the Training page, select the Entities tab.
- Click the edit icon against the entity for which you want to add synonyms.
- Enter one or more synonyms for the entity and then press Enter after entering each synonym
Add Field Synonyms
On the Training page, on the Fields tab, each task is listed along with the number of fields, or entities. Synonyms defined on the Field Synonyms tab apply only to the selected task, and the specified field name for that task.
To add synonyms for task fields, follow the below steps:
- On the Training page, click the Fields tab.
- Under a task name, click edit icon against the task field for which you want to enter the synonyms.
- Enter one or more synonyms and then press Enter after entering each field.
- Click Save to save and close the dialog.
Field synonyms are only applicable to the associated task for the bot. This means that the same word. For example, Status in one task can have different synonyms for the same field called Status in a different task.
While adding synonyms for the words in a task or task field can help the NLP interpreter select the intended task or task field. What if the user input for the task or task field does not contain any of the words in the task name or task field name?
For example, for the Create Lead task for the Salesforce bot, if the user inputs New Account Option, which means the same as Create Lead, but does not match any of the words or synonyms for the task name. In this case, you can create patterns for a group of words that match the task name or task field.
Concepts
Concepts are clusters of related and synonymous terms that can be considered as a group identified by a single term.
For example, yes can be expressed as ok or I agree or right etc.
System Concepts
Kore.ai platform provides a list of default concepts that cover the most common scenarios like yes, no, help etc.
Custom Concepts
You might want to define concepts catering to your business requirements.
For example, you might want to use the term fruit to imply either apple or orange or banana.
If you want to add to the list of default words, you are advised to create a new concept and add words there before mapping the pattern, instead of adding more words to the default concepts like ~emogoodbye or ~emohello.
Define Custom Concepts
You can define a new concept the same way as you would define a Bot Synonym by starting the word with a ~. For more details on the naming convention, refer here.
You can also define custom concepts using emojis.
Concepts are used to define patterns. For example, the pattern buy ~fruit is used to capture buy orange or buy banana.
Emoji Support
NLP engine can recognize emojis present in the user utterance. You can include these in the concept definition and give a better user experience. For example, a thumbs-up emoticon (:thumbs up:) from the user can be considered as an affirmative, and a frown emoticon (:frowning2:) can be considered as an anger sentiment and appropriate action can be taken.
You can import emojis into your bot’s system concepts so that the bot can conduct the conversations when emojis are present in the user’s utterances. For this, follow the below steps:
- Under the Build top menu option, from the left menu, click Natural Language -> Training
- On the Intents tab, click the more/ellipses icon and select Import Emojis into Concepts.
- This adds all the default emojis to the system concepts for the current language. As you can see emojis are updated for the system concepts like ~emohappy, etc.
- After importing, you may choose to review and remove any emojis that you may not want to support.
- If you are trying to reimport the emojis, then the current emojis are retained and any additional emojis are added.
Manage Patterns and Rules
To optimize the accuracy and recognition of the NLP interpreter, you can create patterns for task names and task fields.
Using synonyms is great for words used in the name. Sometimes, users may refer to a task using slang, metaphors, or other idiomatic expressions.
For example, a task name is Get Current Weather, but the user inputs, what’s happening with today’s rain situation. In this case, none of the words used in the task name are used, yet the input has the same meaning as Get Current Weather.
In these cases, using patterns can help to improve NLP interpreter accuracy.
When the NLP interpreter matches a synonym to one task or field, and a pattern to a different task or field, the pattern match is prioritized and used for positive recognition over the synonym match.
To learn more about best practices and tips for optimizing NLP, refer to Natural Language Processing Guide.
For a quick guide towards the usage of patterns, refer to How to use Patterns.
Navigate to the Patterns Tab
- Open the bot for which you want to add patterns and select the Build tab from the top menu.
- From the left menu click Natural Language -> Training.
- On the Training page, click one of the following tabs:
- Intents – Add or edit patterns or rules for dialog task User Intent nodes.
- Entities – Add or edit patterns for dialog task Entity nodes.
- Fields – Add or edit task field patterns. For example, Date, Location, or Name as user input. This option is available only if the bot has one or more action, alert, or information tasks.
Add Patterns for Intents
You can define a pattern as a sentence that represents the task but does not actually contain any of the words in the name of the task.
Also, you can define where words must be ignored by the NLP interpreter to improve accuracy for recognizing the correct task.
For example, you can build a pattern like find *testable* value to recognize in the user input a sequence of words in order where the word find is followed by any number of words, followed by the word testable, and again followed by any number of words, which are finally followed by the word value. For this pattern, the user input can be Find me any testable integers corresponding to the value, which can match the pattern.
You can also use concepts to build patterns. For example, the pattern is defined as buy ~fruit and the user input that matches this pattern can be buy orange.
In the Intents section, you can view, add, and delete patterns for dialog tasks.
To add an intent pattern, follow the below steps:
- On the Traning page, click the Patterns/+Pattern against the intent name you want to enter the patterns for.
- In the Intent pane, enter one or more sentence patterns, and press Enter between patterns.
- You can reorder, edit or delete patterns using the appropriate icons.
Add Rules for Intents
You can use traits or context tags to define intent identification rules for better intent detection. You can add Traits or Context Tags and conditional rules using AND, OR operators.
To add an intent rule, follow the below steps:
- On the Traning page, click the Rules/+Rule against the intent name you want to enter the patterns for.
- In the Intent pane, enter one or more traits/context tags as conditional rules using AND OR operators, and press Enter between traits/tags.
Refer here to know more about Traits and Trait Association Rules and Context Tags.
Add Patterns for Entities
In the Entities section of the Training page, you can view, add, and delete patterns for dialog task entity node names.
To add an entity pattern, follow the below steps:
- On the Training page, click the Entities tab.
- Click the edit icon against the entity to enter the patterns to it.
- In the Entity Training page, select the Patterns tab.
- Enter one or more sentence patterns, and press ENTER between patterns.
- You can reorder, edit or delete patterns using the appropriate icons.
Add Patterns for Fields
In the Entities section of the Training page, you can view, add, and delete patterns for dialog task entity node names.
Note: This option is available only if the bot has one or more action, alert, or information tasks.
To add an entity pattern, follow the below steps:
- On the Training page, click the Fields tab.
- Click the edit icon against the entity to enter the patterns to it.
- In the Fields Training page, select the Patterns tab.
- Enter one or more sentence patterns and press ENTER between patterns.
- You can reorder, edit or delete patterns using the appropriate icons.
Negative Patterns
On the Kore.ai Bots Platform, a natural language engine attempts to identify a user input and match that user input to a task. You can modify additional advanced settings to enable negative patterns for intent detection.
This is useful in filtering matched intents that are part of user utterance but should not trigger that intent.
Use Case: For example, a user says I was trying to Book a Flight when I faced an issue. Though the machine identifies the intent as Book a Flight, that is not what the user wants to do. In such a case, defining was trying to as a negative pattern, would ensure that the matched intent is ignored.
Negative patterns are used to eliminate intents detected by the Fundamental Meaning or Machine Learning models.
To enable Negative Patterns, follow the below steps:
- Under the Build tab of the menu option, from the left menu, click Natural Language -> Advanced Settings.
- Enable Negative Patterns. By default, this option is disabled.
- You can see the Negative Patterns section added in this section.
- For each of the intent in your bot, you can define negative patterns similar to how you define intent patterns.
- Any intents identified by FM or ML engines, if identified as one of the configured negative patterns, will be ignored and not sent to Ranking & Resolver.
- Once added, these patterns can be reordered, edited, and deleted.
Threshold & Configurations
To train and improve the performance, Threshold and Configurations can be specified for all three NLP engines – FM, KG, and ML. You can access these settings under Build -> Natural Language > Thresholds & Configurations.
The settings for the FM engine are discussed in detail in the following sections.
NOTE: If your bot is multilingual, you can set the Thresholds differently for different languages. If not set, the Default Settings will be used for all languages. This feature is available from v7.0.
Navigate to Thresholds & Configurations
- Open the bot for which you want to configure thresholds.
- Select the Build tab from the top menu.
- From the left menu, click Natural Language -> Thresholds & Configurations.
- The Fundamental Meaning section allows you to set the threshold for the FM engine:
- Intent Detection using Task Name Words can be disabled in case your use case requires it. This is particularly useful if you have too many tasks named – place order, cancel order, request order, duplicate order. All these tasks will be matched as intent if the user utterance has order in it. Instead of trying, guess, and train for all possible utterances, disabling this option does the trick. Disabling it will not affect the intent detection using patterns. Also, an implicit pattern using the words in the Task Name will be automatically added. The implicit pattern identifies this intent only when the user input starts and ends with the exact task name. By default, it is enabled.
- FM Threshold can be used to limit the number of results sent from the FM Engine to R&R so as to reduce the possibility of presenting a low confidence match to the end-user. Enable this configuration and choose the threshold percentage as a value between 0% and 20%. Default is 2%. Only the intent matches within the set % of the top-scoring intent will be considered and all other intents will be eliminated. This configuration is available only for English, Spanish, French and German languages.
Suggested Reading
Know more about the guidelines in naming Intents, using Patterns and more, refer here.