Sintaxis del patrón
Importante
LUIS se retirará el 1 de octubre de 2025. Además, a partir del 1 de abril de 2023, ya no se podrán crear recursos de este servicio. Se recomienda migrar las aplicaciones de LUIS al reconocimiento del lenguaje conversacional para aprovechar el soporte continuo del producto y las capacidades multilingües.
La sintaxis del patrón es una plantilla para una expresión. La plantilla debe contener las palabras y entidades que quiere que coincidan, así como las palabras y la puntuación que quiere omitir. No es una expresión regular.
Precaución
Los patrones solo incluyen elementos primarios de entidad de aprendizaje automático, no subentidades.
Las entidades en los patrones aparecen entre llaves, {}
. Los patrones pueden incluir entidades y entidades con roles. Pattern.any es una entidad que solo se usa en los patrones.
La sintaxis de patrón admite la sintaxis siguiente:
Función | Sintaxis | Nivel de anidamiento | Ejemplo |
---|---|---|---|
Entidad | {}: llaves | 2 | Where is form {entity-name}? |
opcional | []: corchetes Hay un límite de 3 niveles de anidamiento de cualquier combinación de opcional y agrupación. |
2 | El signo de interrogación es opcional [?] |
agrupación | (): paréntesis | 2 | es (a | b) |
o | |: barra vertical Hay un límite de 2 en las barras verticales (o) en un grupo. |
- | Dónde está el formulario ({form-name-short} | {form-name-long} | {form-number}) |
principio o final de la expresión | ^: símbolo de intercalación | - | ^comienzo de la expresión la expresión está terminada^ ^coincidencia estricta de literal de la expresión entera con la entidad {number}^ |
Sintaxis de anidamiento en los patrones
La sintaxis opcional, con corchetes, se puede anidar dos niveles. Por ejemplo: [[this]is] a new form
. Este ejemplo permite las expresiones siguientes:
Ejemplo de expresión opcional anidada | Explicación |
---|---|
this is a new form | coincide con todas las palabras del patrón |
is a new form | coincide con la palabra opcional externa y las palabras no opcionales del patrón |
a new form | solo coincide con las palabras necesarias |
La sintaxis de agrupación, con paréntesis, se puede anidar dos niveles. Por ejemplo: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} )
. Esta característica permite buscar la coincidencia con cualquiera de las tres entidades.
Si Entity1 es una ubicación con roles como origen (Seattle) y destino (El Cairo) y Entity2 es un nombre de edificio conocido de una entidad de la lista (RedWest-C), las expresiones siguientes se asignarían a este patrón:
Ejemplo de expresión de agrupación anidada | Explicación |
---|---|
RedWest-C | coincide con la entidad de agrupación externa |
Seattle | coincide con una de las entidades de agrupación interna |
El Cairo | coincide con una de las entidades de agrupación interna |
Límites de anidamiento de grupos con sintaxis opcional
Una combinación de sintaxis de agrupación con opcional tiene un límite de 3 niveles de anidamiento.
Permitida | Ejemplo |
---|---|
Sí | ( [ ( test1 | test2 ) ] | test3 ) |
No | ( [ ( [ test1 ] | test2 ) ] | test3 ) |
Límites de anidamiento para grupos con sintaxis or-ing
Una combinación de sintaxis de agrupación con sintaxis or-ing tiene un límite de 2 barras verticales.
Permitida | Ejemplo |
---|---|
Sí | ( test1 | test2 | ( test3 | test4 ) ) |
No | ( test1 | test2 | test3 | ( test4 | test5 ) ) |
Sintaxis para agregar una entidad a una plantilla de patrón
Para agregar una entidad a la plantilla de patrón, incluya el nombre de la entidad entre llaves, por ejemplo, Who does {Employee} manage?
.
Patrón con entidad |
---|
Who does {Employee} manage? |
Sintaxis para agregar una entidad y un rol a una plantilla de patrón
Un rol de entidad se representa como {entity:role}
, donde el nombre de la entidad va seguido por un signo de dos puntos y, a continuación, el nombre del rol. Para agregar una entidad con un rol a la plantilla de patrón, incluya el nombre de la entidad y el nombre del rol entre llaves, por ejemplo, Book a ticket from {Location:Origin} to {Location:Destination}
.
Patrón con roles de entidad |
---|
Book a ticket from {Location:Origin} to {Location:Destination} |
Sintaxis para agregar pattern.any a una plantilla de patrón
La entidad pattern.any permite agregar una entidad de longitud variable al patrón. Mientras se siga la plantilla de patrón, pattern.any puede tener cualquier longitud.
Para agregar una entidad pattern.any a la plantilla de patrón, incluya dicha entidad entre llaves, por ejemplo, How much does {Booktitle} cost and what format is it available in?
.
Patrón con entidad Pattern.any |
---|
How much does {Booktitle} cost and what format is it available in? |
Títulos de libros en el patrón |
---|
¿Cuánto cuesta robar este libro y en qué formato está disponible? |
¿Cuánto cuesta preguntar y en qué formato está disponible? |
¿Cuánto cuesta El curioso incidente del perro en la noche y en qué formato está disponible? |
Las palabras del título de un libro no resultan confusas para LUIS porque sabe dónde finaliza el título del libro, en función de la entidad Pattern.any.
Listas explícitas
Cree una lista explícita mediante la API de creación para permitir la excepción cuando:
- El patrón contenga una entidad Pattern.any.
- Y la sintaxis de ese patrón permita la posibilidad de una extracción de entidades incorrecta según la expresión.
Por ejemplo, suponga que tiene un patrón que contiene tanto la sintaxis opcional, []
, como la sintaxis de la entidad, {}
, combinadas para extraer datos de forma incorrecta.
Considere el patrón `[find] email about {subject} [from {person}]'.
En las siguientes expresiones, las entidades subject y person se extraen de forma correcta e incorrecta:
Expresión | Entidad | Extracción correcta |
---|---|---|
email about dogs from Chris | subject=dogs person=Chris |
✔ |
email about the man from La Mancha | subject=the man person=La Mancha |
X |
En la tabla anterior, el asunto debería ser the man from La Mancha
(el título de un libro), pero como el asunto incluye la palabra opcional from
, el título se predice de forma incorrecta.
Para corregir esta excepción al patrón, agregue the man from la mancha
como una coincidencia de lista explícita de la entidad {subject} mediante la API de creación de lista explícita.
Sintaxis para marcar texto opcional en una expresión de plantilla
Marque texto opcional en la expresión mediante la sintaxis de corchetes de expresión regular, []
. El texto opcional solo puede anidar dos corchetes.
Patrón con texto opcional | Significado |
---|---|
[find] email about {subject} [from {person}] |
find y from {person} son opcionales. |
"¿Puede ayudarme[?] | El signo de puntuación es opcional. |
Los signos de puntuación (?
, !
, .
) se deben omitir y deberá omitirlos usando la sintaxis de corchetes en los patrones.
Pasos siguientes
Más información sobre los patrones:
Comprenda cómo se devuelve opinión en la respuesta .json.