LUIS(Language Understanding)란?What is Language Understanding (LUIS)?

LUIS(Language Understanding)는 사용자 지정 기계 학습을 사용자의 자연스러운 기존 언어 텍스트에 적용하여 전체적인 의미를 예측하고 관련된 자세한 정보를 추출하는 클라우드 기반 서비스입니다.Language Understanding (LUIS) is a cloud-based service that applies custom machine-learning to a user's conversational, natural language text to predict overall meaning, and pull out relevant, detailed information.

LUIS용 클라이언트 응용 프로그램은 자연어로 사용자와 통신하여 작업을 완료하는 대화형 응용 프로그램일 수 있습니다.A client application for LUIS can be any conversational application that communicates with a user in natural language to complete a task. 클라이언트 응용 프로그램의 예로는 소셜 미디어 앱, 챗봇 및 음성 지원 데스크톱 응용 프로그램을 들 수 있습니다.Examples of client applications include social media apps, chatbots, and speech-enabled desktop applications.

LUIS에 정보를 제공하는 3가지 응용 프로그램의 개념 이미지

LUIS 앱이란?What is a LUIS app?

LUIS 앱은 사용자가 디자인하는 도메인별 자연어 모델을 포함합니다.A LUIS app contains a domain-specific natural language model you design. 미리 빌드된 모델로 LUIS 앱을 시작하거나, 직접 빌드하거나, 미리 빌드된 도메인 부분을 사용자 지정 정보와 혼합할 수 있습니다.You can start your LUIS app with a prebuilt domain model, build your own, or blend pieces of a prebuilt domain with your own custom information.

사전 빌드 도메인 모델에는 이러한 모든 부분이 포함되며 LUIS를 빠르게 사작하는 유용한 방법입니다.Prebuilt domain models include all these pieces for you and are a great way to start using LUIS quickly.

또한 LUIS 앱에는 통합 설정, 공동 작업자버전도 포함되어 있습니다.The LUIS app also contains integration settings, collaborators, and versions.

LUIS 앱 사용Using a LUIS app

LUIS 앱이 게시되면 클라이언트 응용 프로그램은 LUIS 끝점 API에 발언을 전송하고, 예측 결과를 JSON 응답으로 수신합니다.Once your LUIS app is published, your client application sends utterances to the LUIS endpoint API and receives the prediction results as JSON responses.

다음 다이어그램에서, 먼저 클라이언트 챗봇은 사람들이 자신만의 단어로 표현하려는 사용자 텍스트를 HTTP 요청으로 LUIS에 전송합니다.In the following diagram, first your client chatbot sends user text of what a person wants in their own words to LUIS in an HTTP request. 둘째, LUIS는 학습한 모델을 자연어에 적용하여 사용자 입력을 이해하도록 하고 JSON(JavaScript Object Notation) 형식 응답을 반환합니다.Second, LUIS applies your learned model to the natural language to make sense of the user input and returns a JavaScript Object Notation (JSON) format response. 셋째, 클라이언트 챗봇은 이 JSON 응답을 사용하여 사용자의 요청을 이행합니다.Third, your client chatbot uses the JSON response to fulfill the user's requests.

LUIS와 챗봇 작동에 대한 개념 이미지

JSON 끝점 응답 예제Example of JSON endpoint response

JSON 끝점 응답에는 최소한 쿼리 발언 및 최상위 점수의 의도가 포함됩니다.The JSON endpoint response, at a minimum contains the query utterance, and the top scoring intent.

{
  "query": "I want to call my HR rep.",
  "topScoringIntent": {
    "intent": "HRContact",
    "score": 0.921233
  },
  "entities": [
    {
      "entity": "call",
      "type": "Contact Type",
      "startIndex": 10,
      "endIndex": 13,
      "score": 0.7615982
    }
  ]
}

자연어 모델이란?What is a natural language model?

모델은 "항공편 예약" 또는 "기술 지원팀에 문의"와 같은 의도_라고 하는 일반적인 사용자 의도 목록으로 시작됩니다.A model begins with a list of general user intentions, called _intents, such as "Book Flight" or "Contact Help Desk." 의도에 대해 예제 발언_이라고 하는 사용자의 예제 텍스트를 제공합니다.You provide user's example text, called _example utterances for the intents. 그런 후 발언에서 엔터티_라고 하는 중요한 단어 또는 구에 표시합니다.Then mark significant words or phrases in the utterance, called _entities.

모델에는 다음이 포함됩니다.A model includes:

  • 의도: 사용자 의도의 범주(의도된 작업 또는 결과)intents: categories of user intentions (intended action or result)
  • 엔터티: 발언에서 번호, 전자 메일 또는 이름과 같은 특정 데이터 유형entities: specific types of data in utterances such as number, email, or name
  • 예제 발언: 클라이언트 응용 프로그램에서 사용자가 입력하는 예제 텍스트example utterances: example text a user enters in the client application

의도Intents

의도는 항공편 예약, 결제 또는 뉴스 기사 찾기와 같이 사용자 발언에 표현된 목적이나 목표입니다.An intent, short for intention, is a purpose or goal expressed in a user's utterance, such as booking a flight, paying a bill, or finding a news article. 각 작업에 대한 의도를 만듭니다.You create an intent for each action. LUIS 여행 앱은 "BookFlight"라는 의도를 정의할 수 있습니다.A LUIS travel app may define an intent named "BookFlight." 클라이언트 응용 프로그램은 최상위 점수 의도를 사용하여 작업을 트리거할 수 있습니다.Your client application can use the top scoring intent to trigger an action. 예를 들어 "BookFlight" 의도가 LUIS에서 반환되면 클라이언트 응용 프로그램은 항공 티켓 예약을 위해 외부 서비스에 대한 API 호출을 트리거할 수 있습니다.For example, when "BookFlight" intent is returned from LUIS, your client application could trigger an API call to an external service for booking a plane ticket.

엔터티Entities

엔터티는 발언에서 사용자의 요청과 관련된 자세한 정보를 나타냅니다.An entity represents detailed information found within the utterance that is relevant to the user's request. 예를 들어, 발언 "파리행 항공편 예약"에서는 단일 티켓이 요청되며 “파리”는 위치를 나타냅니다.For example, in the utterance "Book a ticket to Paris", a single ticket is requested, and "Paris" is a location. 단일 티켓을 나타내는 "티켓"과 목적지를 나타내는 “파리”의 두 엔터티가 확인됩니다.Two entities are found "a ticket" indicating a single ticket and "Paris" indicating the destination.

LUIS가 사용자 발언에 나오는 엔터티를 반환한 후에, 클라이언트 응용 프로그램은 작업을 트리거하는 매개 변수로 엔터티 목록을 사용할 수 있습니다.After LUIS returns the entities found in the user’s utterance, the client application can use the list of entities as parameters to trigger an action. 예를 들어, 항공권 예약을 위해서는 여행 목적지, 날짜 및 항공사와 같은 엔터티가 필요합니다.For example, booking a flight requires entities like the travel destination, date, and airline.

LUIS는 엔터티를 식별하고 분류하는 몇 가지 방법을 제공합니다.LUIS provides several ways to identify and categorize entities.

  • 미리 작성된 엔터티 LUIS에는 의도, 발언 및 미리 작성된 엔터티를 비롯하여 미리 작성된 여러 도메인 모델이 포함되어 있습니다.Prebuilt Entities LUIS has many prebuilt domain models including intents, utterances, and prebuilt entities. 미리 작성된 모델의 의도 및 발언을 사용하지 않고도 미리 작성된 엔터티를 사용할 수 있습니다.You can use the prebuilt entities without having to use the intents and utterances of the prebuilt model. 미리 작성된 엔터티를 사용하면 시간이 절약됩니다.The prebuilt entities save you time.

  • 사용자 지정 엔터티 LUIS는 기계 학습 엔터티, 특정 또는 리터럴 엔터티, 기계 학습 및 리터럴의 조합을 비롯하여 사용자 고유의 엔터티를 식별하는 몇 가지 방법을 제공합니다.Custom Entities LUIS gives you several ways to identify your own custom entities including machine-learned entities, specific or literal entities, and a combination of machine-learned and literal.

예제 발화Example utterances

예제 발언은 클라이언트 응용 프로그램이 이해해야 하는 사용자의 입력 텍스트입니다.An example utterance is text input from the user that the client application needs to understand. "파리행 티켓 예약"과 같은 문장이나 "예약" 또는 “파리행 항공권”과 같은 문장 부분이 있을 수 있습니다.It may be a sentence, like "Book a ticket to Paris", or a fragment of a sentence, like "Booking" or "Paris flight." 발언이 항상 올바른 형식인 것은 아니며 특정 의도에 대해 여러 발언 변형이 있을 수 있습니다.Utterances aren't always well-formed, and there can be many utterance variations for a particular intent. 각 의도에 10~20개의 예제 발언을 추가하고 모든 발언에서 엔터티에 표시합니다.Add 10 to 20 example utterances to each intent and mark entities in every utterance.

예제 사용자 발언Example user utterance 의도Intent 엔터티Entities
"시애틀__로 가는 항공편을 예약해줄 수 있나요?""Book a flight to __Seattle?" BookFlightBookFlight 시애틀Seattle
"매장은 몇 시에 문을 여나요?""When does your store open?" StoreHoursAndLocationStoreHoursAndLocation openopen
"부서의 Bob__과 __오후 1시__에 회의하기로 예약합니다.""Schedule a meeting at __1pm with Bob in Distribution" ScheduleMeetingScheduleMeeting 1pm, Bob1pm, Bob

예측 정확도 개선Improve prediction accuracy

LUIS 앱이 게시되고 실제 사용자 발언이 수신되면, LUIS는 끝점 발언의 능동적 학습, 도메인 단어 포함을 위한 문구 목록 및 필요한 발언 수를 줄이기 위한 패턴과 같이 예측 정확도를 향상시키는 몇 가지 방법을 제공합니다.After your LUIS app is published and receives real user utterances, LUIS provides several methods to improve prediction accuracy: active learning of endpoint utterances, phrase lists for domain word inclusion, and patterns to reduce the number of utterances needed.

능동적 학습Active learning

능동적 학습 프로세스에서는 검토를 위해 끝점에서 수신된 발언을 선택하여 LUIS 앱을 실제 발언에 맞게 조정할 수 있습니다.In the active learning process, LUIS allows you to adapt your LUIS app to real-world utterances by selecting utterances it received at the endpoint for your review. 끝점 예측을 수락 또는 수정하고, 재학습하고, 재게시할 수 있습니다.You can accept or correct the endpoint prediction, retrain, and republish. LUIS는 이러한 반복 프로세스로 빠르게 학습하며, 사용자에게 필요한 시간과 노력을 최소화합니다.LUIS learns quickly with this iterative process, taking the minimum amount of your time and effort.

문구 목록Phrase lists

LUIS는 모델 도메인에 중요한 단어나 구를 나타낼 수 있도록 문구 목록을 제공합니다.LUIS provides phrases lists so you can indicate important words or phrases to your model domain. LUIS는 이러한 목록을 사용하여 모델에서 찾을 수 없는 해당 단어 및 문구에 추가적인 중요도를 추가합니다.LUIS uses these lists to add additional significance to those words and phrases that would otherwise not be found in the model.

패턴Patterns

패턴을 사용하면 의도의 발언 모음을 선택한 단어 및 단어 순서를 갖는 공통 템플릿으로 간소화할 수 있습니다.Patterns allow you to simplify an intent's utterance collection into common templates of word choice and word order. 이렇게 하면 LUIS에서 해당 의도에 대해 더 적은 수의 예제 발언이 필요하므로 더 빠르게 학습할 수 있습니다.This allows LUIS to learn quicker by needing fewer example utterances for the intents. 패턴은 정규식 및 기계 학습된 식의 혼합 시스템입니다.Patterns are a hybrid system of regular expressions and machine-learned expressions.

LUIS 작성 및 액세스Authoring and accessing LUIS

LUIS 웹 사이트에서 또는 작성 API를 사용하여 프로그래밍 방식으로 LUIS 앱을 빌드하거나, 작성 요구에 따라 두 방법을 모두 사용합니다.Build your LUIS app from the LUIS website or programmatically with the authoring APIs, or use both depending on the authoring need. 끝점을 쿼리하여 게시된 LUIS 앱에 액세스합니다.Access your published LUIS app by the query endpoint.

LUIS는 사용자 작성 지역에 따라, 전 세계적으로 3개의 웹 사이트를 제공합니다.LUIS provides three websites around the world, depending on your authoring region. 작성 지역은 LUIS 앱을 게시할 수 있는 Azure 지역을 결정합니다.The authoring region determines the Azure region where you can publish your LUIS app.

작성 및 게시 지역에 대해 자세히 알아보세요.Learn more about authoring and publishing regions.

LUIS에는 어떤 기술이 사용되나요?What technologies work with LUIS?

몇 가지 Microsoft 기술이 LUIS에 사용됩니다.Several Microsoft technologies work with LUIS:

  • Bing Spell Check API는 예측 전에 텍스트를 수정할 수 있도록 합니다.Bing Spell Check API provides text correction before prediction.
  • Bot Framework에서는 텍스트 입력을 통해 챗봇으로 사용자와 대화할 수 있습니다.Bot Framework allows a chatbot to talk with a user via text input. 완전한 봇 환경을 위해서는 3.x 또는 4.x SDK를 선택합니다.Select 3.x or 4.x SDK for a complete bot experience.
  • QnA Maker에서는 몇 가지 유형의 텍스트를 질문 및 답변 기술 자료로 결합할 수 있습니다.QnA Maker allows several types of text to combine into a question and answer knowledge base.
  • Speech는 음성 언어 요청을 텍스트로 변환합니다.Speech converts spoken language requests into text. 일단 텍스트로 변환되면 LUIS가 요청을 처리합니다.Once converted to text, LUIS processes the requests. 자세한 내용은 Speech SDK를 참조하세요.See Speech SDK for more information.
  • Text Analytics는 감정 분석 및 핵심 구 데이터 추출을 제공합니다.Text Analytics provides sentiment analysis and key phrase data extraction.

다음 단계Next steps

미리 작성된 또는 사용자 지정 도메인으로 새 LUIS 앱을 만듭니다.Create a new LUIS app with a prebuilt or custom domain.