의도

Important

LUIS는 2025년 10월 1일에 사용 중지되며 2023년 4월 1일부터 새 LUIS 리소스를 만들 수 없습니다. 지속적인 제품 지원 및 다국어 기능을 활용하려면 LUIS 애플리케이션대화 언어 이해로 마이그레이션하는 것이 좋습니다.

의도는 사용자가 수행하려는 작업 또는 작업을 나타냅니다. 이는 사용자의 발화에 표현된 목적 또는 목표입니다.

사용자가 애플리케이션에서 수행하려는 작업에 해당하는 의도 집합을 정의합니다. 예를 들어 여행 앱에는 다음과 같은 여러 의도가 있습니다.

여행 앱 의도 예제 발화
BookFlight "다음 주 리우행 항공편 예약"
"24일에 리우행 플라이"
"다음 주 일요일에 리우데자네이루행 비행기 티켓이 필요합니다."
인사말 "안녕하세요"
"Hello"
“Good morning”
CheckWeather "보스턴의 날씨는 어떻습니까?"
"이번 주말에 대한 예측을 보여줘"
없음 "쿠키 레시피 가져오기"
“Did the Lakers win?”

모든 애플리케이션에는 대체 의도인 미리 정의된 의도인 "None"이 함께 제공됩니다.

미리 빌드된 의도

LUIS는 미리 빌드된 각 작업에 대해 미리 빌드된 의도와 해당 발화를 제공합니다기본. 전체 작업을 추가하지 않고도 의도를 추가할 수 기본. 의도를 추가하는 것은 앱에 의도 및 해당 발언을 추가하는 프로세스입니다. 의도 이름과 발화 목록을 모두 수정할 수 있습니다.

모든 의도의 점수를 반환합니다.

단일 의도에 발화를 할당합니다. LUIS는 음성을 수신하면 기본적으로 해당 발화에 대한 상위 의도를 반환합니다.

발화의 모든 의도에 대한 점수를 원하는 경우 예측 API의 쿼리 문자열에 플래그를 제공할 수 있습니다.

예측 API 버전 Flag
V2 verbose=true
V3 show-all-intents=true

엔터티와 비교한 의도

의도는 애플리케이션이 사용자에게 수행해야 하는 작업을 나타내며 전체 발화를 기반으로 합니다. 발화는 점수가 가장 높은 의도를 하나만 가질 수 있지만 많은 엔터티를 가질 수 있습니다.

사용자의 의도가 클라이언트 애플리케이션에서 작업을 트리거할 경우(예: 위의 표에서 checkweather() 함수 호출) 의도를 만듭니다. 그런 다음, 작업을 실행하는 데 필요한 매개 변수를 나타내는 엔터티를 만듭니다.

Intent 엔터티 예제 발화
CheckWeather { "type": "location", "entity": "Seattle" }
{ "type": "builtin.datetimeV2.date","entity": "tomorrow","resolution":"2018-05-23" }
What's the weather like in Seattletomorrow?
CheckWeather { "type": "date_range", "entity": "this weekend" } 에 대한 예측을 표시합니다. this weekend

None 의도

None 의도는 만들어지지만 의도적으로 비워 집니다. None 의도는 필수 의도이며 삭제하거나 이름을 바꿀 수 없습니다. 이 의도를 도메인 외부에 있는 발화로 채웁니다.

None 의도는 대체 의도이며 전체 발화의 10%를 포함해야 합니다. 앱 도메인(주체 영역)에서 중요하지 않은 LUIS 발화를 학습시키는 데 사용되므로 모든 앱에서 중요합니다. None 의도의 발화를 추가하지 않으면 LUIS는 도메인 외부에 있는 발화를 도메인 의도 중 하나에 적용합니다. 이렇게 하면 LUIS에게 발화에 대한 잘못된 의도를 교육하여 예측 점수를 왜곡합니다.

발화가 None 의도로 예측되면 클라이언트 애플리케이션은 더 많은 질문을 하거나 사용자에게 유효한 선택을 지시하는 메뉴를 제공할 수 있습니다.

부정적인 의도

"나는 차를 원한다", "나는 차를 원하지 않는다"와 같은 부정적이고 긍정적 인 의도를 확인하려는 경우 두 가지 의도 (긍정적 인 의도와 부정 하나)를 만들고 각각에 적절한 발언을 추가 할 수 있습니다. 또는 단일 의도를 만들고 두 가지 긍정적 및 부정적 용어를 엔터티로 표시할 수 있습니다.

의도 및 패턴

일부 또는 전체를 정규식으로 정의할 수 있는 예제 발화가 있는 경우 패턴과 쌍을 이루는 정규식 엔터티사용하는 것이 좋습니다.

정규식 엔터티를 사용하면 패턴이 일치되도록 데이터 추출이 보장됩니다. 패턴 일치는 정확한 의도가 반환되도록 보장합니다.

의도 균형

앱은 기본 의도는 각 의도에서 발화의 균형을 유지해야 합니다. 예를 들어 대부분의 의도에 10개의 발화를 포함하고 다른 의도에 500개의 발화를 포함하지 마세요. 균형이 맞지 않습니다. 이 경우 500개의 발화가 포함된 의도를 검토하여 많은 의도를 패턴으로 재구성할 수 있는지 확인하려고 합니다.

없음 의도는 잔액에 포함되지 않습니다. 해당 의도는 앱에서 전체 발화의 10%를 포함해야 합니다.

의도 제한

제한을 검토하여 모델에 추가할 수 있는 의도 수를 이해합니다.

최대 의도 수를 초과해야 하는 경우 시스템에서 너무 많은 의도를 사용하는지 여부를 고려하고 여러 의도가 엔터티와 단일 의도로 결합되는지 확인합니다. 너무 비슷한 의도의 경우, LUIS가 의도를 구분하기가 더 어려울 수 있습니다. 의도는 사용자가 요구하는 기본 작업을 캡처할 수 있을 만큼 다양해야 하지만 코드에서 사용하는 모든 경로를 캡처할 필요는 없습니다. 예를 들어 두 개의 의도, BookFlight() 및 FlightCustomerService()는 여행 앱에서 개별 의도일 수 있지만, BookInternationalFlight() 및 BookDomesticFlight()는 너무 비슷합니다. 시스템에서 구분해야 하는 경우 의도 대신 엔터티 또는 다른 논리를 사용합니다.

의도 수가 많은 앱에 대한 도움말 요청

의도 수를 줄이거나 의도를 여러 앱으로 나눈 경우 앱이 작동하지 않으면 지원에 문의하세요. Azure 구독에 지원 서비스가 포함된 경우 Azure 기술 지원에 문의하세요.

의도에 대한 모범 사례:

고유 의도 정의

각 의도의 어휘가 해당 의도에만 사용되고 다른 의도와 겹치지 않는지 확인합니다. 예를 들어, 항공사 항공편 및 호텔과 같은 여행 계획을 처리하는 앱을 사용하려는 경우, 이러한 주제 영역을 발언 내부에 별도의 의도로 포함하거나 특정 데이터의 엔터티가 있는 동일한 의도로 포함하도록 선택할 수 있습니다.

두 의도 간의 어휘가 같으면 의도를 결합하고 엔터티를 사용합니다.

다음 예제 발화를 고려합니다.

  1. 항공편 예약
  2. 호텔 예약

“항공편 예약” 및 “호텔 예약”에는 “<명사> 예약”이라는 동일한 어휘가 사용됩니다. 이 형식은 동일하므로 추출된 엔터티와 플라이트 및 호텔의 다른 단어를 사용하여 동일한 의도여야 합니다.

의도에 기능 추가

기능은 의도에 대한 개념을 설명합니다. 기능은 해당 의도에 중요한 단어의 구 목록 또는 해당 의도에 중요한 엔터티일 수 있습니다.

의도의 안정적인 지점 찾기

LUIS의 예측 데이터를 사용하여 의도가 겹치는지 확인합니다. 겹치는 의도는 LUIS를 혼동합니다. 결과는 상위 점수 의도가 다른 의도에 너무 가깝다는 것입니다. LUIS는 매번 학습할 데이터를 통해 똑같은 경로를 사용하지 않으므로 겹치는 의도는 학습에서 첫 번째 또는 두 번째가 될 수 있습니다. 이 가변성이 발생하지 않도록 각 의도의 발화 점수를 멀리 떨어지게 합니다. 의도를 잘 구분하면 매번 예상 상위 의도가 생성됩니다.

의도 간에 발화 균형 조정

LUIS 예측의 정확도를 높이려면 각 의도(None 의도 제외)의 예제 발화 양이 상대적으로 동등해야 합니다.

예제 발언이 500개인 의도와 예제 발언이 10개인 다른 모든 의도가 있으면 발언이 500개인 의도의 예측 비율이 더 높아집니다.

none 의도에 예제 발화 추가

이 의도는 애플리케이션 외부의 모든 것을 나타내는 대체 의도입니다. LUIS 앱의 나머지 10개 예제 발화마다 None 의도에 하나의 예제 발화를 추가합니다.

의도에 많은 예제 발화를 추가하지 마세요.

앱이 게시된 후에는 개발 수명 주기 프로세스에서 활성 학습의 발화만 추가합니다. 발화가 너무 비슷한 경우 패턴을 추가합니다.

의도 및 엔터티 정의 혼합 안 함

봇이 수행할 모든 작업에 대한 의도를 만듭니다. 해당 작업을 가능하게 하는 매개 변수로 엔터티를 사용합니다.

예를 들어 항공사 항공편을 예약할 봇의 경우 BookFlight 의도를 만듭니다. 모든 항공사 또는 모든 목적지에 대한 의도를 만들지 마세요. 이러한 데이터 조각을 엔터티사용하고 예제 발화에 표시합니다.

다음 단계

의도를 사용하는 방법