LUIS
in CHATBOT on Microsoft Azure, 공부, Luis
LUIS(Language Understanding)
우선 LUIS에 대한 공식 문서 설명이다.
- LUIS는 사용자 지정 기계 학습 인텔리전스를 사용자의 자연스러운 기존 언어 텍스트에 적용하여 전체적인 의미를 예측하고 관련 된 자세한 정보를 추출하는 클라우드 기반 API 서비스이다.
- LUIS용 클라이언트 애플리케이션은 자연어로 사용자와 통신하여 작업을 완료하는 대화형 애플리케이션이다. 예로는 소셜 미디어 앱, 챗봇 및 음성 지원 데스크톱 애플리케이션이 있다.
채팅 봇에서 LUIS 사용
LUIS 앱이 게시되면 클라이언트 애플리케이션은 LUIS 자연어 처리 엔드포인트 API에 사용자의 발언을 전송하고, 결과를 JSON 응답으로 수신한다. 여기는 QnA Maker와 비슷한 것 같다.
작업 순서는 다음과 같다.
- 클라이언트 애플리케이션이 사용자 발언(사용자가 한 말의 텍스트) “I want to call my HR rep.”를 LUIS 엔드포인트에 HTTP 요청으로 보냅니다.
- LUIS를 사용하면 사용자 지정 언어 모델을 만들어서 애플리케이션에 인텔리전스를 추가합니다. 기계 학습 언어 모델은 사용자의 비정형 입력 텍스트를 가져와서 topIntent인 HRContact와 함께 JSON 형식의 응답을 반환합니다. 최소 JSON 엔드포인트 응답에는 최소한 쿼리 발언 및 최상위 채점 의도가 포함됩니다. 연락처 유형 엔터티와 같은 데이터를 추출할 수도 있습니다.
- 클라이언트 애플리케이션은 JSON 응답을 사용하여 사용자의 요청을 처리하는 방법에 대한 결정을 내립니다. 이러한 의사 결정에는 봇 프레임워크 코드의 의사 결정 트리 및 기타 서비스에 대한 호출이 포함될 수 있습니다.
설명에는 LUIS 앱은 클라이언트 애플리케이션이 현명한 선택을 내릴 수 있도록 인텔리전스를 제공한다고 되어있다. QnA Maker랑 차이가 대체 뭘까,,,
자연어 처리
LUIS 앱은 도메인 별 자연어 모델을 포함한다. 미리 작성된 모델로 LUIS 앱을 시작할 수도 있고, 직접 작성하거나 미리 작성된 도메인 조각을 사용자 고유 정보와 혼합할 수도 있다고 한다. 그냥 미리 모델을 작성할 수도 있고 안할수도 있다고 이해하면 될 것 같다.
- 미리 작성된 모델 LUIS에는 의도, 발언 및 미리 작성된 엔터티를 비롯하여 미리 작성된 여러 도메인 모델이 포함되어 있습니다. 미리 작성된 모델의 의도 및 발언을 사용하지 않고도 미리 작성된 엔터티를 사용할 수 있습니다. 미리 작성된 도메인 모델에는 모든 디자인이 포함되며 LUIS를 빠르게 시작하는 유용한 방법입니다.
- 사용자 지정 모델 LUIS는 의도와 엔터티를 포함한 사용자 지정 모델을 식별하는 여러 가지 방법을 제공합니다. 엔터티에는 기계 학습 엔터티, 특정 또는 리터럴 엔터티 및 기계 학습과 리터럴의 조합이 포함됩니다.
LUIS 모델 작성
그러면 직접 작성하든 안하든 모델은 있어야 한다는 소리다. 모델은 작성 API나 LUIS 포털 을 이용해서 모델을 작성한다.
LUIS 모델은 “Intent”라고 하는 사용자 의도 범주로 시작한다. 각 의도에는 사용자 “발언” 예제가 필요하다. 이 각 발화에서 다양한 데이터를 추출하여 제공할 수 있다.
- 예제 사용자 발언
- Intent
- 추출된 데이터
이렇게 존재한다.
에측 엔드포인트 쿼리
앱을 학습해서 엔드포인트에 게시하면 클라이언트 애플리케이션은 엔드포인트 API에 발화를 보낸다. API는 분석을 위해 발화에 앱을 적용하고 JSON 형식의 예측 결과로 응답한다.
JSON 파일은 다음과 같은 형식을 가진다.
{
"query": "I want to call my HR rep",
"prediction": {
"normalizedQuery": "i want to call my hr rep",
"topIntent": "HRContact",
"intents": {
"HRContact": {
"score": 0.8582669
}
},
"entities": {
"Contact Type": [
"call"
]
},
"sentiment": {
"label": "negative",
"score": 0.103343368
}
}
}
모델 예측 개선
실제 사용자 발화를 받은 후 LUIS가 엔드포인트 발화의 활성학습을 제공하여 예측 정확돌르 높인다.