Patrones en aplicaciones de LUIS
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.
Los patrones están diseñados para mejorar la precisión cuando varias expresiones son muy parecidas. Un patrón permite lograr más precisión en una intención sin proporcionar varias expresiones más.
Los patrones resuelven la confianza con intención baja
Piense en una aplicación de recursos humanos que informa sobre el organigrama en relación con un empleado. Dados el nombre y la relación del empleado, LUIS devuelve los empleados implicados. Considere un empleado, Tom, con una jefa llamada Alice y un equipo de subalternos llamados Michael, Rebecca y Carl.
Grabaciones de voz | Intención pronosticada | Puntuación de intención |
---|---|---|
¿Quién es el subalterno de Tom? | GetOrgChart | 0,30 |
¿Quién es el subalterno de Tom? | GetOrgChart | 0,30 |
Si una aplicación tiene entre 10 y 20 expresiones con distintas longitudes de oraciones, diferente orden de palabras, e incluso diferentes palabras (sinónimos de "subalterno", "administrar", "informe"), LUIS puede devolver una puntuación de confianza baja. Para ayudar a LUIS a comprender la importancia del orden de las palabras, cree un patrón.
Los patrones solucionan las situaciones siguientes:
- La puntuación de la intención es baja.
- La intención correcta no es la puntuación más alta, pero se acerca demasiado a ella.
Los patrones no son una garantía de intención
Los patrones emplean una combinación de técnicas de predicción. Establecer una intención para una expresión de plantilla en un patrón no es una garantía de la predicción de la intención, pero es un buen indicio.
Los patrones no mejoran la detección de entidades de aprendizaje automático.
La única finalidad de un patrón es ayudar a la predicción de intenciones y roles. La entidad "pattern.any" se usa para extraer entidades de forma libre. Si bien los patrones usan entidades, un patrón no ayuda a detectar una entidad de aprendizaje automático.
No espere ver una predicción de entidad mejorada si contrae varias expresiones en un patrón único. Para que la aplicación use entidades simples, debe agregar expresiones o usar entidades de lista.
Los patrones usan roles de entidad
Si dos o más entidades de un patrón están relacionadas por el contexto, los patrones usan los roles de entidad para extraer información contextual sobre las entidades.
Puntuaciones de predicción con y sin patrones
Dadas suficientes expresiones de ejemplo, LUIS puede aumentar la confianza de la predicción sin patrones. Los patrones aumentan la puntuación de confianza sin tener que proporcionar tantas expresiones.
Coincidencia de patrones
La coincidencia con un patrón se realiza primero mediante la detección de entidades dentro del patrón, para posteriormente validar el resto de las palabras y el orden de las palabras del patrón. Para que un patrón coincida, se necesitan las entidades en el patrón. El patrón se aplica a nivel de token, no a nivel de carácter.
Entidad Pattern.any
La entidad Pattern.any permite buscar datos de forma libre en los que la redacción de la entidad dificulte determinar el final de la entidad del resto de la expresión.
Por ejemplo, considere una aplicación de recursos humanos que ayuda a los empleados a encontrar documentos de la empresa. Es posible que esta aplicación tenga que comprender las expresiones de ejemplo siguientes.
- "¿Dónde está el formulario HRF-123456?"
- "¿Quién creó el formulario HRF-123234?"
- "¿El formulario HRF-456098 se publicó en francés?"
Sin embargo, cada documento tiene un nombre con formato (que se usó en la lista anterior) y un nombre legible, como "Request relocation from employee new to the company 2018 version 5" (Solicitud de reubicación de un empleado nuevo en la empresa, 2018 versión 5).
Las expresiones con el nombre legible pueden tener el aspecto siguiente:
- "¿Dónde está el formulario "Request relocation from employee new to the company 2018 version 5"?"
- "¿Quién creó el formulario "Request relocation from employee new to the company 2018 version 5"?"
- ¿El formulario "Request relocation from employee new to the company 2018 version 5" se publicó en francés?"
Las expresiones incluyen palabras que pueden confundir a LUIS con respecto a dónde finaliza la entidad. Si usa una entidad Pattern.any en un patrón, puede especificar el principio y el final del nombre del documento para que LUIS extraiga correctamente el nombre del formulario. Por ejemplo, las expresiones de plantilla siguientes:
- ¿Dónde está {NombreDelFormulario}[?]
- ¿Quién ha creado {NombreDelFormulario}[?]
- ¿{FormName} se publicó en francés[?]
Procedimientos recomendados para patrones:
Agregar patrones en iteraciones posteriores
Es necesario entender cómo se comporta la aplicación antes de agregar patrones, ya que los patrones tienen mayor peso que las expresiones de ejemplo y sesgarán la confianza.
Una vez que comprenda cómo se comporta la aplicación, agregue los patrones que se aplican a la aplicación. No es necesario agregarlos cada vez que se recorre en iteración el diseño de la aplicación.
No existe ningún inconveniente en agregarlas al principio del diseño del modelo, pero es más fácil ver cómo cada patrón cambia el modelo después de que el modelo se haya probado con expresiones.
No agregar muchos patrones
No agregue demasiados patrones. LUIS está pensado para aprender rápidamente con pocos ejemplos. No sobrecargue el sistema innecesariamente.
Características
En el aprendizaje automático, una característica es un rasgo distintivo o un atributo de datos que el sistema observa y del que aprende.
Las características del aprendizaje automático proporcionan a LUIS indicaciones importantes sobre dónde buscar los elementos que distinguen un concepto. Son sugerencias que LUIS puede usar, pero no reglas rígidas. LUIS utiliza estas sugerencias con las etiquetas para buscar los datos.
Una característica se puede describir como una función, como f(x) = y
. En la expresión de ejemplo, la característica indica dónde buscar el rasgo distintivo. Use esta información como ayuda para crear su esquema.
Tipos de características
Las características son una parte necesaria del diseño del esquema. LUIS admite listas de frases y modelos como características:
- Característica de lista de frases
- Modelo (intención o entidad) como una característica
Búsqueda de características en las expresiones de ejemplo
Dado que LUIS es una aplicación basada en lenguaje, las características se basan en texto. Seleccione el texto que indica el rasgo que quiere distinguir. En LUIS, la unidad más pequeña es el token. En el idioma inglés, un token es una extensión contigua, sin espacios ni puntuación, de letras y números.
Dado que los espacios y la puntuación no son tokens, céntrese en las pistas de texto que puede usar como características. Recuerde incluir variaciones de palabras, como:
- Formas plurales
- Tiempos verbales
- Abreviaturas
- Ortografías y errores ortográficos
Determine si el texto necesita lo siguiente porque distingue un rasgo:
- Coincidir con una palabra o frase exacta: considere la posibilidad de agregar una entidad de expresión regular o una entidad de lista como característica a la entidad o la intención.
- Coincidir con un concepto conocido como fechas, horas o nombres de personas: use una entidad precompilada como característica para la entidad o la intención.
- Aprender nuevos ejemplos con el tiempo: use una lista de frases de algunos ejemplos del concepto como característica para la entidad o la intención.
Creación de una lista de frases para un concepto
Una lista de frases es una lista de palabras o frases que describe un concepto. Una lista de frases se aplica como coincidencia sin distinción entre mayúsculas y minúsculas en el nivel de token.
Al agregar una lista de frases, puede establecer la característica como global. Una característica global se aplica a toda la aplicación.
Cuándo usar una lista de frases
Use una lista de frases si es necesario que la aplicación LUIS generalice e identifique los elementos nuevos del concepto. Las listas de frases son similares a un vocabulario específico de un dominio. Mejoran la calidad de la comprensión de las intenciones y las entidades.
Cómo utilizar una lista de frases
Con una lista de frases, LUIS considera el contexto y lo generaliza para identificar los elementos que son similares, pero que no son una coincidencia de texto exacta. Siga estos pasos para utilizar una lista de frases:
- Empezar con una entidad de aprendizaje automático:
- Agregue expresiones de ejemplo.
- Etiquete con una entidad de aprendizaje automático.
- Agregar una lista de frases:
- Agregue palabras con un significado similar. No agregue todas las palabras o frases posibles. En su lugar, agregue solo algunas cada vez. A continuación, vuelva a entrenar y a publicar la aplicación.
- Revise y agregue palabras sugeridas.
Escenario típico para una lista de frases
Un escenario típico para una lista de frases es potenciar las palabras relacionadas con una idea concreta.
Un buen ejemplo de palabras que pueden necesitar una lista de frases para definir mejor su significado son los términos médicos. Estos términos pueden tener un significado específico físico, químico, terapéutico o abstracto. LUIS no sabrá que los términos son importantes para el dominio del tema sin una lista de frases.
Por ejemplo, para extraer términos médicos:
- Cree expresiones de ejemplo y etiquete los términos médicos dentro de esas expresiones.
- Cree una lista de frases con ejemplos de los términos dentro del dominio del tema. En esta lista de frases se debe incluir el término real que etiquetó y otros términos que describen el mismo concepto.
- Agregue la lista de frases a la entidad o subentidad que extrae el concepto utilizado en la lista de frases. El escenario más común es un componente (secundario) de una entidad de aprendizaje automático. Si la lista de frases debe aplicarse a todos las intenciones o entidades, marque la lista de frases como lista de frases global. La marca enabledForAllModels controla este ámbito del modelo en la API.
Coincidencias de token para una lista de frases
Una lista de frases se aplica siempre en el nivel de token. En la tabla siguiente se muestra cómo se aplica una lista de frases que contiene la palabra Ann a variaciones de los mismos caracteres en ese orden.
Variación de token de "Ann" | Coincidencia de lista de frases cuando se encuentra el token |
---|---|
ANN aNN |
Sí: el token es Ann |
Ann's | Sí: el token es Ann |
Anne | No: el token es Anne |
Modelo como una característica que ayuda a otro modelo
Puede agregar un modelo (intención o entidad) como una característica para otro modelo (intención o entidad). Al agregar una intención o entidad existente como una característica, agrega un concepto bien definido con ejemplos con etiquetas.
Al agregar un modelo como una característica, puede establecer la característica como:
- Obligatoria . Se debe encontrar la característica obligatoria para que se devuelva el modelo desde el punto de conexión de predicción.
- Global . Una característica global se aplica a toda la aplicación.
Cuándo usar una entidad como una característica para una intención
Agregue una entidad como una característica a una intención cuando la detección de esa entidad sea significativa para la intención.
Por ejemplo, si la intención es reservar un vuelo, como BookFlight, y la entidad es la información sobre el billete (como el número de asiento, el origen y el destino), la búsqueda de la entidad de información del billete debe agregar un peso significativo a la predicción de la intención BookFlight.
Cuándo usar una entidad como una característica para otra entidad
Una entidad (A) debe agregarse como una característica a otra entidad (B), cuando la detección de esa entidad (A) es importante para la predicción de la entidad (B).
Por ejemplo, si una entidad de dirección de envío contiene una subentidad de dirección postal, la búsqueda de la subentidad de dirección postal agrega peso significativo a la predicción para la entidad de dirección de envío.
- Dirección de envío (entidad de aprendizaje automático):
- Número de la calle (subentidad)
- Dirección postal (subentidad)
- Ciudad (subentidad)
- Estado o provincia (subentidad)
- País o región (subentidad)
- Código postal (subentidad)
Subentidades anidadas con características
Una subentidad de aprendizaje automático indica que hay un concepto en la entidad primaria. El elemento primario puede ser otra subentidad o la entidad superior. El valor de la subentidad actúa como una característica de su elemento primario.
Una subentidad puede tener tanto una lista de frases como un modelo (otra entidad) como característica.
Cuando la subentidad tiene una lista de frases, aumentará el vocabulario del concepto, pero no agregará información a la respuesta JSON de la predicción.
Cuando la subentidad tiene una característica de otra entidad, la respuesta JSON incluye los datos extraídos de esa otra entidad.
Características obligatorias
Se deben encontrar las características que son obligatorias para que se devuelva el modelo desde el punto de conexión de predicción. Use una característica obligatoria si sabe que los datos entrantes deben coincidir con la característica.
Si el texto de la expresión no coincide con la característica requerida, no se extraerá.
Una característica obligatoria utiliza una entidad sin aprendizaje automático:
- Entidad de la expresión regular
- Entidad de lista
- Entidad creada previamente
Si está seguro de que se encontrará el modelo en los datos, establezca la característica como obligatoria. Una característica obligatoria no devuelve nada si no se encuentra.
Continuando con el ejemplo de la dirección de envío:
Dirección de envío (entidad con aprendizaje automático)
- Número de la calle (subentidad)
- Dirección postal (subentidad)
- Nombre de la calle (subentidad)
- Ciudad (subentidad)
- Estado o provincia (subentidad)
- País o región (subentidad)
- Código postal (subentidad)
Característica obligatoria con entidades precompiladas
Las entidades pregeneradas como la ciudad, el estado y el país o región suelen ser un conjunto cerrado de listas, lo que significa que no cambian mucho con el tiempo. Estas entidades podrían tener las características recomendadas pertinentes y estas características podrían marcarse como obligatorias. Sin embargo, la marca isRequired solo está relacionada con la entidad a la que se asigna y no afecta a la jerarquía. Si no se encuentra la característica de subentidad pregenerada, esto no afectará a la detección y devolución de la entidad primaria.
Como ejemplo de una característica necesaria, considere la posibilidad de detectar direcciones. Considere la posibilidad de hacer que el número de la calle sea un requisito. Esto permitiría que un usuario especificara "1 Microsoft Way" o "One Microsoft Way", y ambos se resolverían en el número "1" para la subentidad del número de la calle. Consulte el artículo sobre entidades pregeneradas para más información.
Característica obligatoria con entidades de lista
Una entidad de lista se utiliza como una lista de nombres canónicos junto con sus sinónimos. Como característica obligatoria, si la expresión no incluye el nombre canónico o un sinónimo, la entidad no se devuelve como parte del punto de conexión de predicción.
Supongamos que su empresa solo realiza envíos a un conjunto limitado de países o regiones. Puede crear una entidad de lista que incluya varias maneras en las que el cliente puede hacer referencia al país o región. Si LUIS no encuentra una coincidencia exacta en el texto de la expresión, la entidad (que tiene la característica obligatoria de la entidad de lista) no se devuelve en la predicción.
Nombre canónico** | Sinónimos |
---|---|
Estados Unidos | EE. UU. EE. UU. US EE. UU. 0 |
Una aplicación cliente, como un bot de chat, puede hacer una pregunta de seguimiento para ayudar. Esto ayuda al cliente a entender que la selección del país o región es limitada y obligatoria.
Característica obligatoria con entidades de expresión regular
Una entidad de expresión regular utilizada como característica obligatoria proporciona funciones de coincidencia de texto enriquecidas.
En el ejemplo de la dirección de envío, puede crear una expresión regular que capture las reglas de sintaxis de los códigos postales de los países o regiones.
Características globales
Aunque el uso más común es aplicar una característica a un modelo específico, puede configurar la característica como característica global para aplicarla a toda la aplicación.
El uso más común de una característica global es agregar un vocabulario adicional a la aplicación. Por ejemplo, si los clientes usan un idioma principal, pero se espera poder usar otro idioma en la misma expresión, puede agregar una característica que incluya palabras del idioma secundario.
Dado que el usuario espera usar el idioma secundario en cualquier intención o entidad, agregue palabras del idioma secundario a la lista de frases. Configure la lista de frases como una característica global.
Combinación de características para obtener una ventaja adicional
Puede usar más de una característica para describir un rasgo o concepto. El siguiente es un emparejamiento que se utiliza habitualmente:
- Característica de lista de frases: Puede usar listas de frases múltiples como características para el mismo modelo.
- Modelo como característica: entidad precompilada, entidad de expresión regular, entidad de lista.
Ejemplo: características de entidad de reserva de billetes para una aplicación de viajes
Como ejemplo básico, imagine una aplicación para reservar un vuelo con una intención de reserva de vuelo y una entidad de reserva de billetes. La entidad de reserva de billetes captura la información para reservar un billete de avión en un sistema de reserva.
La entidad de aprendizaje automático para la reserva del billete tiene dos subentidades para capturar el origen y el destino. Las características deben agregarse a cada subentidad, no a la entidad de nivel superior.
La entidad de reserva de billetes es una entidad de aprendizaje automático, con una subentidad de origen y otra de destino. Estas dos subentidades indican una ubicación geográfica. Para ayudar a extraer las ubicaciones y distinguir entre el origen y el destino, cada subentidad debe tener unas determinadas características.
Tipo | Subentidad de origen | Subentidad de destino |
---|---|---|
Modelo como característica | Entidad geographyV2 precompilada | Entidad geographyV2 precompilada |
Lista de frases | Palabras de origen : empezar por, comenzar en, salir | Palabras de destino : a, llegar, aterrizar en, ir, yendo, quedarse |
Lista de frases | Códigos de aeropuerto: la misma lista para el origen y el destino | Códigos de aeropuerto: la misma lista para el origen y el destino |
Lista de frases | Nombres de aeropuerto: la misma lista para el origen y el destino | Códigos de aeropuerto: la misma lista para el origen y el destino |
Si prevé que se van a usar códigos y nombres de aeropuerto, LUIS debe tener listas de frases que utilicen ambos tipos de frases. Los códigos de aeropuerto pueden ser más comunes como texto escrito en un bot de chat, mientras que los nombres de aeropuerto pueden ser más habituales como conversación hablada, como un bot de chat con voz.
Los detalles de coincidencia de las características solo se devuelven para los modelos, no para las listas de frases porque solo se devuelven modelos en el JSON de predicción.
Etiquetado de reserva de billetes en la intención
Después de crear la entidad de aprendizaje automático, debe agregar expresiones de ejemplo a una intención y etiquetar la entidad primaria y todas las subentidades.
En el ejemplo de reserva de billetes, etiquete las expresiones de ejemplo en la intención con la entidad TicketBooking y las subentidades del texto.
Ejemplo: aplicación de pedidos de pizza
En un segundo ejemplo, imagine una aplicación para una pizzería, que recibe pedidos de pizzas que incluyen los detalles del tipo de pizza que pide un cliente. Cada detalle de la pizza debe extraerse, si es posible, para completar el procesamiento del pedido.
La entidad de aprendizaje automático de este ejemplo es más compleja, pues tiene subentidades anidadas, listas de frases, entidades precompiladas y entidades personalizadas.
En este ejemplo se usan características en el nivel de subentidad y en el elemento secundario del nivel de subentidad. Determinar qué nivel obtiene qué tipo de lista de frases o modelo como una característica es una parte importante del diseño de la entidad.
Aunque las subentidades pueden tener muchas listas de frases como características que ayudan a detectar la entidad, cada subentidad solo tiene un modelo como una característica. En este aplicación de pizzería, estos modelos son principalmente listas.
La expresiones de ejemplo correctamente etiquetadas aparecen de modo que se muestre cómo se anidan las entidades.