패턴 구문

Important

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

패턴 구문은 발화에 대한 템플릿입니다. 템플릿에는 일치하려는 단어 및 엔터티와 무시하려는 단어 및 문장 부호 가 포함되어야 합니다. 정규식이 아닙니다 .

주의

패턴에는 하위 엔터티가 아닌 기계 학습 엔터티 부모만 포함됩니다. 패턴의 엔터티는 중괄호로 묶입니다 {}. 패턴은 엔터티 및 역할이 있는 엔터티를 포함할 수 있습니다. Pattern.any 는 패턴에서만 사용되는 엔터티입니다.

패턴 구문에서는 다음 구문을 지원합니다.

함수 구문 중첩 수준 예시
개체 {} - 중괄호 2 Where is form {entity-name}?
{b>선택 사항 [] - 대괄호

선택 사항 및 그룹화 조합의 중첩 수준에는 3으로 제한됩니다.
2 The question mark is optional [?]
grouping () - 괄호 2 is (a | b)
또는 | - 세로 막대(파이프)

한 그룹의 세로 막대(또는)에는 2로 제한됩니다.
- Where is form ({form-name-short} | {form-name-long} | {form-number})
발화의 시작 및/또는 끝 ^-캐럿 - ^발화 시작
발화가 완료되었습니다^
^전체 발화에서 {number} 엔터티와 엄격한 리터럴 일치 항목^

패턴의 중첩 구문

대괄호를 사용하는 선택적 구문은 두 수준을 중첩할 수 있습니다. 예: [[this]is] a new form 이 예제에서는 다음 발화를 허용합니다.

중첩된 선택적 발화 예제 설명
this is a new form 패턴의 모든 단어와 일치
is a new form 패턴에서 외부 선택적 단어 및 선택적이 아닌 단어와 일치
a new form 필수 단어만 일치

괄호가 있는 그룹화 구문은 두 수준을 중첩할 수 있습니다. 예: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} ) 이 기능을 사용하면 세 엔터티 중 하나라도 일치시킬 수 있습니다.

Entity1이 원본(시애틀) 및 대상(카이로)과 같은 역할이 있는 위치이고 엔터티 2가 목록 엔터티(RedWest-C)의 알려진 건물 이름인 경우 다음 발화가 이 패턴에 매핑됩니다.

중첩된 그룹화 발화 예 설명
RedWest-C 외부 그룹화 엔터티와 일치
Seattle 내부 그룹화 엔터티 중 하나와 일치
카이로 내부 그룹화 엔터티 중 하나와 일치

선택적 구문을 사용하는 그룹에 대한 중첩 제한

그룹화선택적 구문의 조합은 3가지 중첩 수준으로 제한됩니다.

허용됨 예시
( [ ( test1 | test2 ) ] | test3 )
아니요 ( [ ( [ test1 ] | test2 ) ] | test3 )

구문이 있거나 구문이 있는 그룹에 대한 중첩 제한

그룹화와 또는 ing 구문의 조합에는 세로 막대가 2개로 제한됩니다.

허용됨 예시
( test1 | test2 | ( test3 | test4 ) )
아니요 ( test1 | test2 | test3 | ( test4 | test5 ) )

패턴 템플릿에 엔터티를 추가하는 구문

패턴 템플릿에 엔터티를 추가하려면 엔터티 이름을 중괄호(예: 중괄호)로 Who does {Employee} manage?묶습니다.

엔터티가 있는 패턴
Who does {Employee} manage?

패턴 템플릿에 엔터티 및 역할을 추가하는 구문

엔터티 역할은 엔터티 이름에 콜론을 입력하고 역할 이름을 입력하여 {entity:role}로 표시합니다. 역할이 있는 엔터티를 패턴 템플릿에 추가하려면 엔터티 이름과 역할 이름을 중괄호(예: 중괄호)로 Book a ticket from {Location:Origin} to {Location:Destination}묶습니다.

엔터티 역할이 있는 패턴
Book a ticket from {Location:Origin} to {Location:Destination}

패턴 템플릿에 pattern.any를 추가하는 구문

Pattern.any 엔터티를 사용하면 다양한 길이의 엔터티를 패턴에 추가할 수 있습니다. 패턴 템플릿을 따르는 한 pattern.any는 길이가 될 수 있습니다.

Pattern.any 엔터티를 패턴 템플릿에 추가하려면 Pattern.any 엔터티를 중괄호(예: 중괄호)로 How much does {Booktitle} cost and what format is it available in?묶습니다.

Pattern.any 엔터티 사용 패턴
How much does {Booktitle} cost and what format is it available in?
패턴의 책 제목
이 책 비용은 얼마이며 어떤 형식으로 사용할 수 있습니까?
비용은 얼마 이고 어떤 형식으로 사용할 수 있나요?
야간 개 호기심 사건은 얼마나 많은 비용과 어떤 형식에서 사용할 수 있습니까?

LUIS는 Pattern.any 엔터티에 따라 책 제목이 끝나는 위치를 알고 있기 때문에 책 제목의 단어가 LUIS에 혼동되지 않습니다.

명시적 목록

다음과 같은 경우 예외를 허용하도록 작성 API를 통해 명시적 목록을 만듭니다.

  • 패턴에 Pattern.any가 포함되어 있습니다.
  • 또한 이 패턴 구문을 사용하면 발화에 따라 잘못된 엔터티 추출이 발생할 수 있습니다.

예를 들어 선택적 구문 []과 엔터티 구문을 {}모두 포함하는 패턴이 데이터를 잘못 추출하는 방식으로 결합되어 있다고 가정합니다.

'[find] 전자 메일에서 {subject} [보낸 사람}]' 패턴을 고려합니다.

다음 발화 에서 주체개인 엔터티는 올바르고 잘못 추출됩니다.

발화 Entity 올바른 추출
Chris의 개에 대한 이메일 subject=dogs
person=Chris
email about the man from La Mancha subject=the man
person=La Mancha
X

위의 표에서 제목은 the man from La Mancha(책 제목)이지만 제목에 선택적 단어인 from이 포함되어 있으므로 제목이 잘못 예측됩니다.

이 예외를 패턴으로 해결하려면 명시적 목록에 대한 제작 API를 사용하여 {subject} 엔터티에 대한 명시적 목록 일치 항목으로 추가 the man from la mancha 합니다.

템플릿 발언에서 선택적 텍스트를 표시하는 구문

정규식 대괄호 구문을 사용하여 발화의 선택적 텍스트를 표시합니다 []. 선택적 텍스트는 대괄호에 최대 2개의 중괄호를 중첩할 수 있습니다.

선택적 텍스트가 있는 패턴 의미
[find] email about {subject} [from {person}] findfrom {person}은 선택 사항임
'나를 도울 수 있습니까[?] 문장 부호는 선택 사항입니다.

문장 부호 표시(?, !, .)는 무시해야 하며 패턴에 대괄호 구문을 사용하여 무시해야 합니다.

다음 단계

패턴에 대해 알아봅니다.

.json 응답에서 감정이 반환되는 방식을 이해합니다.