의도 및 엔터티를 사용하여 발화 텍스트에서 데이터 추출

Important

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

LUIS는 사용자의 자연어 발화에서 정보를 가져올 수 있는 기능을 제공합니다. 이 정보는 프로그램, 애플리케이션 또는 챗봇에서 작업을 수행하는 데 사용할 수 있는 방식으로 추출됩니다. 다음 섹션에서는 JSON 예제와 함께 의도 및 엔터티에서 반환되는 데이터에 대해 알아봅니다.

추출하기 가장 어려운 데이터는 정확한 텍스트 일치가 아니므로 기계 학습 데이터입니다. 기계 학습 엔터티의 데이터 추출은 예상한 데이터를 받을 수 있을 때까지 작성 주기의 일부여야 합니다.

데이터 위치 및 키 사용

LUIS는 게시된 엔드포인트에서 사용자의 발언에서 데이터를 추출합니다. HTTPS 요청(POST 또는 GET)에는 스테이징 또는 프로덕션 환경과 같은 일부 선택적 구성과 발화가 포함됩니다.

V2 예측 엔드포인트 요청

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/<appID>?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&q=book 2 tickets to paris

V3 예측 엔드포인트 요청

https://westus.api.cognitive.microsoft.com/luis/v3.0-preview/apps/<appID>/slots/<slot-type>/predict?subscription-key=<subscription-key>&verbose=true&timezoneOffset=0&query=book 2 tickets to paris

LUIS appID 앱의 설정 페이지뿐만 아니라 해당 LUIS 앱을 편집할 때 URL의 일부(이후/apps/)에서도 사용할 수 있습니다. subscription-key 앱을 쿼리하는 데 사용되는 엔드포인트 키입니다. LUIS를 학습시키는 동안 체험 작성/시작 키를 사용할 수 있지만, 엔드포인트 키를 필요한 LUIS 사용을 지원하는 키로 변경해야 합니다. timezoneOffset 단위는 분입니다.

HTTPS 응답에는 LUIS가 스테이징 또는 프로덕션 엔드포인트의 현재 게시된 모델을 기반으로 확인할 수 있는 모든 의도 및 엔터티 정보가 포함됩니다. 엔드포인트 URL은 LUIS 웹 사이트, 관리 섹션의 키 및 엔드포인트 페이지에서 찾을 수 있습니다.

의도의 데이터

기본 데이터는 최고 점수 매기기 의도 이름입니다. 엔드포인트 응답은 다음과 같습니다.

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "entities": []
}
데이터 개체 데이터 형식 데이터 위치
의도 문자열 topScoringIntent.intent "GetStoreInfo"

챗봇 또는 LUIS 호출 앱이 둘 이상의 의도 점수를 기준으로 결정을 내리는 경우 모든 의도의 점수를 반환합니다.

querystring 매개 변수를 verbose=true설정합니다. 엔드포인트 응답은 다음과 같습니다.

{
  "query": "when do you open next?",
  "topScoringIntent": {
    "intent": "GetStoreInfo",
    "score": 0.984749258
  },
  "intents": [
    {
      "intent": "GetStoreInfo",
      "score": 0.984749258
    },
    {
      "intent": "None",
      "score": 0.2040639
    }
  ],
  "entities": []
}

의도는 가장 높은 점수에서 가장 낮은 점수로 정렬됩니다.

데이터 개체 데이터 형식 데이터 위치 점수
의도 문자열 intents[0].intent "GetStoreInfo" 0.984749258
의도 문자열 intents[1].intent “None” 0.0168218873

미리 빌드된 도메인을 추가하는 경우, 의도 이름은 의도뿐 아니라 Utilties 또는 Communication와 같은 도메인을 나타냅니다.

{
  "query": "Turn on the lights next monday at 9am",
  "topScoringIntent": {
    "intent": "Utilities.ShowNext",
    "score": 0.07842206
  },
  "intents": [
    {
      "intent": "Utilities.ShowNext",
      "score": 0.07842206
    },
    {
      "intent": "Communication.StartOver",
      "score": 0.0239675418
    },
    {
      "intent": "None",
      "score": 0.0168218873
    }],
  "entities": []
}
도메인 데이터 개체 데이터 형식 데이터 위치
유틸리티 의도 문자열 intents[0].intent "유틸리티. ShowNext"
통신 의도 문자열 intents[1].intent 통신. StartOver"
의도 문자열 intents[2].intent “None”

엔터티의 데이터

대부분의 챗봇 및 애플리케이션에는 의도 이름 외에 더 많은 것이 필요합니다. 이 추가 선택적 데이터는 발화에서 검색된 엔터티에서 제공됩니다. 각 엔터티 형식은 서로 다른 일치 정보를 반환합니다.

발화의 단일 단어 또는 구는 둘 이상의 엔터티와 일치할 수 있습니다. 이 경우 일치하는 각 엔터티가 해당 점수와 함께 반환됩니다.

모든 엔터티는 엔드포인트에서 응답의 엔터티 배열에 반환됩니다.

토큰화된 엔터티가 반환됨

LUIS에서 토큰 지원을 검토합니다.

미리 빌드된 엔터티 데이터

미리 빌드 된 엔터티는 오픈 소스 Recognizers-Text 프로젝트를 사용하여 정규식 일치를 기반으로 검색됩니다. 미리 빌드된 엔터티가 엔터티 배열에 반환되고 접두사로 builtin::지정된 형식 이름을 사용합니다.

엔터티 데이터 나열

목록 엔터티는 해당 동의어와 함께 고정된 닫힌 관련 단어 집합을 나타냅니다. LUIS는 목록 엔터티에 대한 추가 값을 검색하지 않습니다. 권장 기능을 사용하여 현재 목록을 기준으로 권장되는 새 단어를 확인합니다. 동일한 값을 가진 둘 이상의 목록 엔터티가 있는 경우 각 엔터티는 엔드포인트 쿼리에서 반환됩니다.

정규식 엔터티 데이터

정규식 엔터티는 사용자가 제공하는 정규식을 기반으로 엔터티를 추출합니다.

이름 추출

이름은 문자와 단어의 거의 모든 조합일 수 있으므로 발화에서 이름을 가져오는 것은 어렵습니다. 추출하는 이름의 유형에 따라 몇 가지 옵션이 있습니다. 다음 제안은 규칙이 아니라 더 많은 지침입니다.

미리 빌드된 PersonName 및 GeographyV2 엔터티 추가

PersonNameGeographyV2 엔터티는 일부 언어 문화권에서 사용할 수 있습니다.

사용자 이름

사람 이름은 언어 및 문화권에 따라 약간의 형식을 가질 수 있습니다. 미리 빌드된 personName 엔터티 또는 이름과 성의 역할이 있는 단순 엔터티를 사용합니다.

단순 엔터티를 사용하는 경우 발화의 여러 부분에서 이름과 성을 사용하는 예제, 길이가 다른 발화 및 None 의도를 비롯한 모든 의도의 발화를 제공해야 합니다. 엔드포인트 발화를 정기적으로 검토 하여 올바르게 예측되지 않은 이름에 레이블을 지정합니다.

장소의 이름

위치 이름은 도시, 카운티, 주, 지방 및 국가/지역과 같이 설정되고 알려져 있습니다. 미리 빌드된 엔터티 geographyV2 를 사용하여 위치 정보를 추출합니다.

새롭게 떠오르는 이름

일부 앱은 제품이나 회사와 같이 새롭게 떠오르는 이름을 찾을 수 있어야 합니다. 이러한 유형의 이름을 가진 데이터를 추출하기가 가장 어렵습니다. 간단한 엔터티시작하고 구 목록을 추가합니다. 엔드포인트 발화를 정기적으로 검토 하여 올바르게 예측되지 않은 이름에 레이블을 지정합니다.

Pattern.any 엔터티 데이터

Pattern.any 는 엔터티가 시작되고 끝나는 위치를 표시하기 위해 패턴의 템플릿 발화에서만 사용되는 가변 길이 자리 표시자입니다. 패턴을 적용하려면 패턴에 사용되는 엔터티를 찾아야 합니다.

관심도 분석

게시하는 동안 감정 분석이 구성된 경우 LUIS json 응답에는 감정 분석이 포함됩니다. 언어 서비스 문서에서 감정 분석에 대해 자세히 알아봅니다.

핵심 구 추출 엔터티 데이터

키 구문 추출 엔터티언어 서비스에서 제공하는 발화의 키 구문을 반환합니다.

여러 엔터티와 일치하는 데이터

LUIS는 발화에서 검색된 모든 엔터티를 반환합니다. 따라서 채팅 봇은 결과에 따라 결정을 내려야 할 수 있습니다.

여러 목록 엔터티와 일치하는 데이터

단어 또는 구가 둘 이상의 목록 엔터티와 일치하는 경우 엔드포인트 쿼리는 각 목록 엔터티를 반환합니다.

쿼리 when is the best time to go to red rock?의 경우 앱에 둘 이상의 목록에 단어가 red 있는 경우 LUIS는 모든 엔터티를 인식하고 엔터티 배열을 JSON 엔드포인트 응답의 일부로 반환합니다.

다음 단계

LUIS 앱에 엔터티를 추가하는 방법에 대한 자세한 내용은 엔터티 추가를 참조하세요.