Compilación de una aplicación de LUIS que se puede descomponer

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.

En este tutorial, podrá crear una aplicación de LUIS de telecomunicaciones que pueda predecir diferentes intenciones de los usuarios. Al final del tutorial, deberíamos tener una aplicación de telecomunicaciones que pueda predecir las intenciones de los usuarios en función del texto proporcionado por estos.

Veremos diferentes escenarios de usuario (intenciones), por ejemplo:

  • Suscripción a una nueva línea de telecomunicaciones
  • Actualización de un nivel de servicio existente
  • Pago de una factura

En este tutorial, aprenderá a:

  1. Crear una aplicación de LUIS
  2. Crear intenciones
  3. Agregar entidades
  4. Adición de grabaciones de voz
  5. Expresiones de ejemplo de etiqueta
  6. Entrenar una aplicación
  7. Publicar una aplicación
  8. Obtener predicciones del punto de conexión publicado

Creación de una aplicación de LUIS

  1. Inicie sesión en el portal de LUIS.

  2. Para crear una aplicación, seleccione + Nueva aplicación.

    Captura de pantalla de la pantalla de creación de la aplicación.

  3. En la ventana que aparece, escriba el nombre "Telecom Tutorial", manteniendo la referencia cultural predeterminada, English (Inglés). Los demás campos son opcionales, no los configure. Seleccione Listo.

    Captura de pantalla de los campos de creación de la aplicación de LUIS.

Intenciones del usuario como intenciones

Lo primero que verá en la sección Compilación son las intenciones de la aplicación. Las intenciones representan una tarea o una acción que un usuario quiere realizar.

Imagine una aplicación de LUIS de telecomunicaciones, ¿qué necesitaría un usuario?

Probablemente tenga que realizar algún tipo de acción de usuario o pedir ayuda. Es posible que otro usuario quiera actualizar su nivel de servicio o pagar una factura.

El esquema resultante es el siguiente. Para obtener más información, consulte los procedimientos recomendados sobre cómo planear el esquema.

Intención Propósito
UserActions Determinar las acciones del usuario
Ayuda Solicitar ayuda
UpdateTier Actualizar el nivel de servicio actual
PayBill Pagar una factura pendiente
None Determinar si el usuario pregunta algo que la aplicación LUIS no está diseñada para responder. Esta intención se proporciona como parte de la creación de la aplicación y no se puede eliminar.

Creación de una nueva intención

Las intenciones se usan para clasificar las expresiones de usuario en función del propósito del usuario, que se determina a partir del texto del lenguaje natural.

Para clasificar una expresión, la intención necesita ejemplos de expresiones del usuario que se deben clasificar con esta intención.

  1. Seleccione Compilar en el menú de navegación superior y, a continuación, seleccione Intenciones en el lado izquierdo de la pantalla. Seleccione + Create (Crear) para crear una nueva intención. Escriba el nombre de la nueva intención, "UserAction", y después seleccione Listo.

    UserAction podría ser una de las muchas intenciones. Por ejemplo, es posible que algunos usuarios quieran suscribirse en una nueva línea, mientras que otros podrían solicitar recuperar información.

  2. Agregue varias expresiones de ejemplo a esta intención que espera que un usuario pida:

    • ¡Hola! Quiero suscribirme a una nueva línea
    • ¿Puedo suscribirme a una nueva línea?
    • Hola, quiero una nueva línea
    • He olvidado mi número de línea.
    • Me gustaría un nuevo número de línea

    Captura de pantalla que muestra expresiones de ejemplo para la intención UserAction.

Para la intención PayBill, algunas expresiones podrían ser:

  • Quiero pagar mi factura
  • Liquidar la factura
  • Pagar factura
  • Quiero cerrar mi saldo actual
  • ¡Vaya! Quiero pagar la factura actual

Al proporcionar expresiones de ejemplo, está enseñando a LUIS qué tipos de expresiones deben predecirse para esta intención. Son ejemplos positivos. Las expresiones de todas las demás intenciones se tratan como ejemplos negativos de esta intención. Lo ideal es que, cuantas más expresiones de ejemplo agregue, mejores serán las predicciones de la aplicación.

Estas expresiones son solo con fines de demostración. Una aplicación real debería tener al menos de 15 a 30 expresiones de longitud variable, con el orden de las palabras, el tiempo verbal, la exactitud gramatical, la puntuación y el recuento de palabras.

Creación de las intenciones restantes

Siga los pasos anteriores para agregar las siguientes intenciones a la aplicación:

"Help"

  • "Necesito ayuda"
  • "Preciso asistencia"
  • "Ayuda"
  • "¿Puede alguien ayudarme?"
  • "No sé qué hacer, ¿alguien puede ayudarme?"
  • "¿Alguien me puede ayudar?"

"UpdateTier"

  • "Quiero actualizar mi nivel de servicio"
  • "Actualizar mi nivel"
  • "Quiero cambiar al nivel VIP"
  • "Cambiar mi suscripción al nivel estándar"

Expresiones de ejemplo a la intención None

La aplicación cliente debe saber si una expresión no es significativa o adecuada para la aplicación. La intención "None" se agrega a cada aplicación como parte del proceso de creación para determinar si la aplicación cliente no debe responder a una expresión.

Si LUIS devuelve la intención "None" para una expresión, la aplicación cliente puede preguntar al usuario si quiere finalizar la conversación o dar más instrucciones para continuarla.

Si deja la intención None" vacía, una expresión que debería predecirse fuera del dominio del asunto se predecirá en una de las intenciones del dominio de sujeto existente. El resultado es que la aplicación cliente, como un bot de chat, realizará operaciones incorrectas en función de una predicción incorrecta.

  1. Seleccione Intents (Intenciones) en el panel izquierdo.

  2. Seleccione la intención None. Agregue tres expresiones que el usuario podría manifestar, pero que no son pertinentes para la aplicación de telecomunicaciones. Estos ejemplos no deben usar palabras que se esperan en el dominio de sujeto, como "nivel", "actualizar", "suscripción", "factura".

    • "¿Cuándo sale mi vuelo?"
    • "Tengo que cambiar el pedido de pizza"
    • "¿Cómo va a estar el tiempo hoy?"

Agregar entidades

Una entidad es un elemento que es importante para la intención del usuario. Las entidades definen los datos que se pueden extraer de la expresión y son esenciales para completar la acción necesaria de un usuario.

  1. En la sección de compilación, seleccione Entidades.

  2. Para agregar una nueva entidad, seleccione + Crear.

    En este ejemplo, crearemos dos entidades, "UpdateTierInfo", como tipo de entidad de aprendizaje automático; y "Tier", como tipo de entidad de lista. LUIS también le permite crear diferentes tipos de entidad.

  3. En la ventana que aparece, escriba "UpdateTierInfo" y seleccione Machine learned (Con aprendizaje automático) de los tipos disponibles. Seleccione el cuadro Agregar estructura para poder agregar una estructura a esta entidad.

    Captura de pantalla que muestra una entidad.

  4. Seleccione Next (Siguiente).

  5. Para agregar una subentidad secundaria, haga clic en el símbolo "+" y empiece a agregar el elemento secundario. En el ejemplo de entidad, "UpdateTierInfo", se requieren tres cosas:

    • OriginalTier
    • NewTier
    • PhoneNumber

    Captura de pantalla de las subentidades de la aplicación.

  6. Haga clic en Crear después de agregar todas las subentidades.

    Crearemos otra entidad denominada "Tier", pero esta vez será una entidad de lista e incluirá todos los niveles de servicio que podríamos proporcionar: nivel Estándar, nivel Prémium y nivel VIP.

  7. Para ello, vaya a la pestaña Entidades, presione + Crear y seleccione Lista en los tipos de la pantalla que aparece.

  8. Agregue los elementos a la lista y, de manera opcional, puede agregar sinónimos para asegurarse de que se entiendan todos los casos de esa mención.

    Captura de pantalla de una entidad de lista.

  9. Ahora vuelva a la entidad "UpdateTierInfo" y agregue la entidad "tier" como característica para las entidades "OriginalTier" y "newTier" que creamos anteriormente. Debe tener el siguiente aspecto:

    Captura de pantalla de las características de una entidad.

    Agregamos el nivel como una característica para "originalTier" y para "newTier", y agregamos la entidad "Phonenumber", que es un tipo regex. Se puede crear de la misma manera que creamos una entidad de ML y una entidad de lista.

Ahora hemos creado correctamente intenciones, agregado expresiones de ejemplo y entidades. Creamos cuatro intenciones (aparte de la intención "None"), y tres entidades.

Expresiones de ejemplo de etiqueta

Se crea la entidad de aprendizaje automático, y las subentidades tienen características. Para completar la mejora de la extracción, las expresiones de ejemplo tienen que etiquetarse con las subentidades.

Hay dos maneras de etiquetar expresiones:

  1. Con la herramienta de etiquetado

    1. Abra la Paleta de entidades y seleccione el símbolo "@" en la barra de herramientas contextual.
    2. Seleccione cada fila de entidad en la paleta y, a continuación, use el cursor de la paleta para seleccionar la entidad en cada expresión de ejemplo.
  2. Arrastrando el cursor para resaltar el texto. Con el cursor, resalte el texto que desea etiquetar. En la imagen siguiente, hemos resaltado "vip - tier" (nivel vip) y seleccionado la entidad "NewTier".

    Captura de pantalla que muestra cómo etiquetar expresiones.

Entrenamiento de la aplicación

En la parte superior derecha del sitio web de LUIS, seleccione el botón Entrenar.

Antes del entrenamiento, asegúrese de que haya al menos una expresión para cada intención.

Captura de pantalla que muestra el botón para entrenar una aplicación.

Publicación de la aplicación

Para recibir una predicción de LUIS en un bot de chat u otra aplicación cliente, tiene que publicar la aplicación en el punto de conexión de predicción. Para publicarla, primero debe entrenar la aplicación.

  1. Seleccione Publish (Publicar) en el panel de navegación superior derecho.

    Captura de pantalla que muestra el botón para publicar una aplicación.

  2. Seleccione el espacio de producción y, después, Done (Listo).

    Captura de pantalla que muestra el selector de ranuras de producción.

  3. Seleccione Obtener acceso a la URL del punto de conexión en la notificación para ir a la página Recursos de Azure. Solo podrá ver las direcciones URL si tiene un recurso de predicción asociado a la aplicación. La página Recursos de Azure también aparece al hacer clic en Administrar a la izquierda de la pantalla.

    Captura de pantalla que muestra la notificación de acceso al punto de conexión.

Obtener la predicción de la intención

  1. Seleccione Administrar en el menú superior derecho y, a continuación, seleccione Recursos de Azure a la izquierda.

  2. Copie la dirección URL de la consulta de ejemplo y péguela en una nueva pestaña del explorador web.

    La dirección URL del punto de conexión tendrá el formato siguiente.

    https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
    
  3. Vaya al final de la dirección URL en la barra de direcciones y reemplace el parámetro de cadena query= por:

    "Hola. Estoy buscando un nuevo número".

    La consulta de expresión se pasa en el URI. Esta expresión no es la misma que ninguna de las expresiones de ejemplo, por lo que debería servir para comprobar si LUIS predice la intención UserAction como intención de puntuación superior.

    {
        "query": "hello! i am looking for a new number please",
        "prediction": 
        {
            "topIntent": "UserAction",
            "intents": 
            {
                "UserAction": {
                "score": 0.8607431},
                "Help":{
                "score": 0.031376917},
                "PayBill": {
                "score": 0.01989629},
                "None": {
                "score": 0.013738701},
                "UpdateTier": {
                "score": 0.012313577}
            },
        "entities": {}
        }
    }
    

El resultado de JSON identifica la intención que tiene la puntuación más alta como propiedad prediction.topIntent. Todas las puntuaciones están comprendidas entre 1 y 0, y la mejor está más próxima a 1.

Pasos siguientes de la aplicación cliente

En este tutorial se creó una aplicación de LUIS, se crearon intenciones y entidades, se agregaron expresiones de ejemplo a cada intención, se agregaron expresiones de ejemplo a la intención None, se entrenó, se publicó y se probó en el punto de conexión. Estos son los pasos básicos de la creación de un modelo de LUIS.

LUIS no proporciona respuestas a expresiones de usuario, solo identifica el tipo de información que se solicita en lenguaje natural. La aplicación cliente permite el seguimiento de la conversación, como una instancia de Azure Bot.

Limpieza de recursos

Cuando ya no sea necesaria, elimine la aplicación de LUIS. Para hacerlo, seleccione Mis aplicaciones en el menú superior izquierdo. Seleccione los puntos suspensivos () a la derecha del nombre de la aplicación en la lista de aplicaciones y, después, seleccione Eliminar. En el cuadro de diálogo emergente ¿Quiere eliminar la aplicación?, haga clic en Aceptar.