다음을 통해 공유


의도

Important

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

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

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

여행 앱 의도 예제 발화
BookFlight “Book me a flight to Rio next week”
“Fly me to Rio on the 24th”
“I need a plane ticket next Sunday to Rio de Janeiro”
인사말 “Hi”
“hello”
“Good morning”
CheckWeather “What's the weather like in Boston?”
“Show me the forecast for this weekend”
없음 “Get me a cookie recipe”
“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 Seattle tomorrow?
CheckWeather { "type": "date_range", "entity": "this weekend" } Show me the forecast for this weekend

None 의도

None 의도가 생성되지만 고의로 비워 둡니다. None 의도는 필수 의도이며 삭제하거나 이름을 바꿀 수 없습니다. 이 의도를 도메인 외부에 있는 발화로 채웁니다.

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

발화가 None 의도로 예측되고 클라이언트 애플리케이션은 추가로 질문을 하거나 사용자를 유효한 선택 항목으로 이동하는 메뉴를 제공합니다.

부정적 의도

“자동차가 필요해” 및 “자동차가 필요하지 않아”와 같이 부정적 의도와 긍정적 의도를 결정하려면 두 개의 의도(긍정적 의도 및 부정적 의도)를 만들고 각 의도에 적절한 발화를 추가합니다. 또는 단일 의도를 만들고 두 가지 긍정적 및 부정적 용어를 엔터티로 표시할 수 있습니다.

의도 및 패턴

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

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

의도 균형

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

None 의도는 균형에 포함되지 않습니다. 앱의 총 발화 중 10%가 이 의도에 포함되어야 합니다.

의도 제한

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

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

많은 의도가 포함된 앱의 도움말 요청

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

의도에 대한 모범 사례:

고유한 의도 정의

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

두 의도의 어휘가 동일한 경우, 의도를 결합하고 엔터티를 사용합니다.

다음 예제 발화를 고려해 보세요.

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

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

의도에 기능 추가

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

의도의 안정적인 지점 찾기

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

의도 간에 발화 균형 조정

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

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

none 의도에 예제 발화 추가

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

의도에 많은 예제 발화 추가 안 함

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

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

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

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

다음 단계

의도를 사용하는 방법