수색…


소개

Bot Framework는 Recognizers 지원합니다. 인식기는 사용자가 bot에게 메시지를 보낼 때마다 수행 할 작업을 인식하는 데 사용됩니다. 따라서 사용자 입력을 기반으로 의도를 인식하도록 봇을 설계 할 수 있습니다. 인식기는 봇에 대한 자연어 이해를 추가하기 위해 LUIS API와 함께 사용할 수 있습니다.

통사론

  • var recognizer = new builder.LUISRecognizer ( '귀하의 모델의 URL');

  • var intents = new builder.IntentDialog ({인식 자 : [인식 자]});

LUISRecognizer 초기화 및 추가

소개에 제공된 기본 템플릿을 사용하여 새 프로젝트를 작성한 후에는 LUISRecognizer를 추가 할 수 있어야합니다.

var model = ''    // Your LUIS Endpoint link comes here
var recognizer = new builder.LuisRecognizer(model);

이제 recognizer 는 LUISRecognizer이며 정의 된 LUIS 모델을 기반으로 인 텐트를 전달할 수 있습니다. 인 식에 recognizer 를 추가 할 수 있습니다.

var intents = new builder.IntentDialog({recognizers: [recognizer]});

이제 로봇이 LUIS에서 의도를 처리 할 수 ​​있습니다. IntentDialog 클래스의 matches 속성을 사용하여 LUIS의 모든 명명 된 인 텐트를 검색 할 수 있습니다. 예를 들어, hi 라는 이름의 의도는 봇에 대한 의도를 인식하기 위해 LUIS 모델에서 정의됩니다.

intents.matches('hi', function(session) {
    session.send("Hey :-)");
});

인 텐트를 사용하여 LUIS 모델 정의

LUIS 모델을 만들려면 프로그래밍 경험이 거의 필요하지 않습니다. 그러나 광범위하게 사용되는 2 가지 중요한 용어에 대해 잘 알고 있어야합니다.

  1. 의도 - 사용자가 무언가를 입력 할 때 실행해야하는 기능을 식별하는 방법입니다. 예 - Hi 라는 인 텐트는 사용자가 "안녕"을 보낼 때마다 실행해야하는 기능을 식별합니다. 인 텐트는 프로그램 / 모델에서 고유하게 명명됩니다.
  2. 엔터티 - 문에서 명사를 식별합니다. 예 : "1:00 pm에 알람 설정", 여기 1:00 pm 은 알람을 설정하기 위해 채팅 로봇이 인식해야하는 엔티티입니다.

참고 : 웹 사이트의 이미지는 프런트 엔드 변경 사항으로 제공되지 않지만 핵심 개념은 동일하게 유지됩니다.

새 모델을 만들려면 LUIS.ai로 가서 Microsoft 계정으로 로그인하여 앱 생성 페이지로 이동하십시오. 빈 프로젝트를 만들 수있는 곳.

인 텐트 정의 :

인 텐트는 Intents 탭에서 정의 할 수 있습니다. 사용자가 무엇을 입력 할 때 수행해야하는 기능을 식별합니다.

모든 응용 프로그램에는 기본 None 의도가 있으며 사용자 입력이 다른 의도와 일치하지 않을 때마다 활성화됩니다.

인 텐트를 정의하려면,

  1. 수행하려는 기능과 관련된 고유 한 이름을 지정하십시오.
  2. 이름 지정이 완료되면 의도에 utterances 을 추가해야합니다. 발화는 사용자가 정의하려는 의도를 활성화하기 위해 사용자가 보내려고하는 것입니다. LUIS가 intentsutterances 적절하게 연관 시키려면 가능한 한 많은 다른 utterances 를 시도하십시오.
  3. 열차 Train and Test 탭에서 Train 버튼을 클릭하여 LUIS 모델을 교육하십시오. 교육을 마친 후 앱은 아래 패널에서 테스트 할 수 있습니다.
  4. 마지막으로 앱 Publish App 탭에 앱을 게시합니다. 이제 봇 코드에 LUISRecognizer 를 정의하는 동안 입력해야하는 끝점 URL을 가져야합니다.

LUIS 모델에 엔티티 추가

엔티티는 봇이 의도에 맞는 특정 발화에서 추출한 정보입니다.

예를 들면, My name is John Doe 입니다. introduction 라는 의도에 속해 있습니다. 귀하의 로봇이 문장에서 John Doe 라는 이름을 이해하고 추출하려면 엔티티를 정의해야합니다. 엔티티의 이름은 원하는대로 지정할 수 있지만 추출한 것과 관련된 것으로 이름을 지정하는 것이 가장 좋습니다. 이 예에서는 엔티티 name 호출 할 수 있습니다.

엔티티는 다른 의도를 추출하고 재사용 할 수 있습니다. 따라서 가장 좋은 원칙은 데이터의 유형 만 추출하고 다른 의도에 따라 사용하는 엔티티를 만드는 것입니다. 따라서 위의 예에서 Book a flight on Emirates 이 Intent booking 속하고 동일한 엔티티, name 사용하여 emirates 이름을 추출 할 수 있습니다.

정의 엔티티에 들어가기 전에 두 가지 사항을 명심해야합니다.

  1. 엔티티는 의도적으로 발화마다 고유해야합니다. 엔티티는 동일한 발화에서 두 번 사용할 수 없습니다.
  2. LUIS는 대소 문자를 구분하지 않습니다. 이것은 엔티티 추출을 통해 추출되고 수신 된 모든 것이 소문자임을 의미합니다. 따라서 엔티티를 통해 대소 문자를 구분하는 데이터를 추출하는 것은 나쁜 생각 일 수 있습니다.

미리 만들어진 엔티티 추가하기

사전 제작 된 엔티티는 이름에서 알 수 있듯이 미리 만들어진 것으로 즉, 이미 추가 된 의도에 따라 특정 유형의 데이터를 추출하도록 이미 구성되어 있습니다. 예를 들어 할당 된 인 텐트에서 number 를 추출하는 엔티티 number 수 있습니다. 숫자는 10 또는 ten 과 같이 숫자 또는 알파벳순 중 하나 일 수 있습니다.

모든 미리 만들어진 엔티티의 전체 목록을 보려면 [미리 만들어진 엔티티 목록] [1]을 방문하십시오.

미리 만들어진 엔티티를 추가하려면,

  1. entities 탭으로 이동하십시오.
  2. Add pre-built entities 클릭하고 모델에 추가 할 엔터티를 선택하고 저장을 클릭합니다.

사용자 지정 엔터티 추가 사용자 지정 엔터티는 4 가지 유형으로,

  1. 단순 : 간단한 엔티티는 특정 데이터를 추출합니다. 위의 예에서 name 은 간단한 엔티티입니다.
  2. Hierarchical : 하위 엔티티 (하위 유형)가있는 상위 엔티티이며 상위 엔티티에 종속적입니다.
  3. 복합 : 둘 이상의 엔티티가 서로 독립적 인 그룹.
  4. 목록 : 주어진 목록에서만 단어를 인식하는 개체.

단순 엔티티 정의

  1. entities 탭으로 이동하십시오.
  2. Add Custom Entities 클릭하십시오.
  3. 엔티티의 이름을 지정하고 필요한 엔티티 유형을 선택하고 Save 누르 Save .

Entity Type 을 위의 유형 중 하나로 변경하면 다른 모든 유형의 엔티티를 동일한 방식으로 추가 할 수 있습니다. 계층 적 및 복합 엔티티 유형에서는 상위 엔티티 이름과 함께 하위 이름을 제공해야합니다. 리스트 엔티티 정의는 나머지 것들과 약간 다릅니다.

목록 엔터티 정의

위의 단계를 수행하여 Entity Type 을 List로 지정하여 List Entity 를 작성하면 방금 정의한 엔티티의 Details 페이지로 이동합니다.

  1. 표준 값을 정의하십시오. 이것은 사용자가 동의어를 입력 할 때 로봇이 수신하게 될 표준 값입니다.
  2. 표준 값과 동의어를 정의하십시오. 그들은 기업이 만날 때 표준 가치로 변환 될 것입니다.

다음과 같은 형식의 JSON 객체 배열을 사용하여 전체 목록을 가져올 수도 있습니다.

[
    {
        "canonicalForm": "Hey",
        "list": [
            "Howdy",
            "Hi"
         ]
    },
    .
    .
    .
]

엔티티와 의도 연관시키기

Pre-built list 엔티티에는 이미 모든 utterences에서 추출 할 수있는 값 집합이 정의되어 있지만 Simple , HierarchicalComposite 발음은 값을 가져와야합니다.

이 작업은

  1. intents 탭으로 이동하여 엔티티를 추가 할 인 텐트를 선택하십시오.
  2. 추출하려는 더미 값을 가진 발화를 추가하십시오. 말해, My name is John Doe 를 발언으로 추가 할 수 있습니다.
  3. 엔터티에서 추출 할 단어 위로 마우스를 클릭하고 끌어옵니다. 위의 예에서 john doe 를 강조 표시해야합니다.
  4. 프로젝트에서 사용 가능한 모든 엔티티 목록이있는 드롭 다운이 열립니다. 적합하다고 생각되는 것을 선택하십시오. Name 은 위의 예에서 선택한 엔터티입니다.
  5. 매번 다른 더미 값을 가진 발화를 추가하고 생각할 수있는 모든 가능한 구조를 추가하십시오.
  6. LUIS 모델을 교육하고 게시하십시오.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow