패턴 구문
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}] |
find 및 from {person} 은 선택 사항임 |
'나를 도울 수 있습니까[?] | 문장 부호는 선택 사항입니다. |
문장 부호 표시(?
, !
, .
)는 무시해야 하며 패턴에 대괄호 구문을 사용하여 무시해야 합니다.
다음 단계
패턴에 대해 알아봅니다.
.json 응답에서 감정이 반환되는 방식을 이해합니다.