Detectando información en expresiones
En el tutorial anterior, aprendió sobre intents y expresiones. En esta sección, cubriremos otra parte importante de la creación de bots: las entidades.
Aprenderá a detectar información valiosa que un usuario menciona en un intent, utilizando entidades contextuales. Las entidades son piezas importantes de información que se extraen de una expresión.
En este tutorial nos centraremos en un tipo de entidad: entidades contextuales. Las entidades contextuales utilizan el aprendizaje automático para identificar entidades en oraciones al aprender qué tipo de palabra es su entidad, dónde se coloca en la oración y cuál es el contexto específico.
Desea almacenar estas entidades contextuales en una variable separada para poder reutilizarlas más adelante. Lea más sobre la diferencia entre entidades y variables aquí. En el siguiente tutorial, aprenderá cómo puede solicitar explícitamente la información faltante.
Digamos que tenemos un intent que nos dice que el usuario quiere reservar un billete de tren. Algunas expresiones diferentes podrían ser:
    Quiero un billete de tren
    Necesito un billete
    ¿Puedo reservar un billete de tren aquí?
Entonces, cuando el usuario dijera cualquiera de estas expresiones, se activará el diálogo de bot donde ha vinculado el intent correspondiente.
Pero ¿qué sucede cuando el usuario dice algo como:
    Quiero un billete de tren a Ámsterdam
    Necesito ir a Amberes mañana
    ¿Puedo reservar un billete de tren a Bruselas, por favor?
Estas expresiones contienen información valiosa. Queremos asegurarnos de capturar esa información, en este caso el destino y la hora, y guardarla como entidades. Luego tenemos expresiones con una entidad en ellas.
Ahora vamos a crear una nueva intent con algunas expresiones para reservar un billete de tren. Algunas de estas expresiones contendrán una entidad contextual, pero otras no.

Paso 9: Crear entidades contextuales

No todos los usuarios mencionarán inmediatamente su destino, así que asegurémonos de entrenar nuestra intent sin esas entidades específicas también:
    Vaya a NLP > Intents
    Haga clic en Agregar Intent
    Agregar un nuevo intent llamado reservar billete de tren
    Agregue algunas expresiones simples, como:
    Quiero un billete de tren
    Necesito un billete
    ¿Puedo reservar un billete de tren, por favor?
Si tiene problemas para hacer esto, lea el tutorial anterior.
A continuación, es el momento de agregar una entidad contextual.
    Vaya a Intents y seleccione el intent reservar billete de tren
    Haga clic en + Agregar expresión para crear una nueva expresión
    Ingrese una expresión que contenga una entidad, por ejemplo:
Quiero reservar un billete de Bruselas a París
    Seleccione Bruselasen esta oración.
    Haga clic en el icono
    '+ entidad' en la parte inferior derecha del cuadro de expresión para crear una nueva entidad contextual para 'Bruselas'
    Bruselas es la ubicación desde la que el usuario quiere salir, por lo que nombraremos esta entidad origen.
    Escriba origen en el campo Crear nueva entidad y haga clic en 'Crear nueva entidad' para confirmar
    Bruselas se agregará a la lista de valores posibles para la variable @origin
    Haga lo mismo para París como entidad de 'destino'
Entonces tendrá la siguiente configuración para esta expresión:
Ahora guardamos y agregamos la expresión 'Quiero reservar un billete de @origin a @destination', donde 'Bruselas' es un valor para @origin y 'Paris' es un valor para la entidad @destination.
    Agregue algunos otros valores a las entidades 'origen' y 'destino' en el campo de expresión. Estos se guardarán para todas las expresiones futuras. Puede agregarlos en el cuadro 'Crear nuevo valor' y presionar enter.
    Agregue más expresiones que contengan el origen y el destino de las entidades
Una vez que haya agregado más valores de Entidad, estos también aparecerán en el menú Entidades > Entidades Contextuales
    Ahora, agreguemos algunas expresiones más a nuestro intent Reservar billete de tren. Algunas ideas para expresiones:
    ¿Puedo reservar un tren de Colonia a Bruselas?
    Necesito estar en Rotterdam
    Necesito un tren a Londres
    Quiero viajar a Lyon
    Quiero comprar un billete de Moscú a Vladivostok
    Necesito un billete de Nueva York a Baltimore
Al escribir una nueva expresión, puede agregar entidades y valores de entidad de dos formas:
    1.
    Escribiendo @ y luego el nombre de la entidad, por ejemplo @origin. Puede agregar un nuevo valor en el cuadro a continuación con 'Crear nuevo valor'
    2.
    Seleccionar un valor de entidad y hacer clic en el botón +valor de entidad. Por ejemplo, seleccione 'Colonia', haga clic en el +botón. Esto dará como resultado que 'Colonia' se cambie a @origin y 'Colonia' será un valor de @origin
    Asegúrese de volver a entrenar el modelo de NLP haciendo clic en el botón Actualizar NLP en la esquina superior derecha.
Esto ahora dará como resultado algunas expresiones para el intent reservar billete de tren y los valores de la entidad, así:
Hemos construido una forma de crear muchas expresiones muy rápido: el generador de expresiones. Siga las instrucciones de esta página para comenzar con esa herramienta.

Paso 10: Prueba de entidades contextuales

Después de haber reentrenado nuestro modelo, veamos si es lo suficientemente bueno como para reconocer la entidad de destino.
    Vaya a NLP > Prueba para abrir la consola de prueba
    Escriba 'Me gustaría ir a Bruselas desde Ámsterdam' como expresión que se probará
    Haga clic en Prueba
Verá que la entidad es reconocida con un 99,93% de confianza. Los resultados serán diferentes según su conjunto de entrenamiento. Si la entidad no se reconoce correctamente, puede agregarla aquí como una expresión de entrenamiento inmediatamente haciendo clic en +Agregar expresión.
Asegúrese de volver a entrenar el modelo de NLP antes de probar las expresiones recién agregadas.
Ahora sabemos cómo agregar intents, crear expresiones y entidades. Ese ya es un gran paso para construir nuestro bot Choo Choo. Ahora, necesitamos crear una conversación para que el usuario pueda hablar con el bot y el bot responda. Agreguemos algunos mensajes de bot en el siguiente paso.

Paso 11: Usar variables en mensajes

Cuando un usuario dice algo que contiene una entidad y la entidad se detecta con éxito, nuestra herramienta almacenará automáticamente la entidad como una variable para ese usuario específico.
En este momento, cuando prueba su bot, el usuario se queda atascado después de dar la información sobre el ticket:
Sin embargo, vemos algunos elementos positivos, a saber, que el 'origen' y el 'destino' se almacenan correctamente como variables. Puede ver esto abriendo el depurador haciendo clic en 'Depurador' (con el icono de la lupa) en el emulador. En la pestaña 'Depurador', puede desplazarse hacia abajo y verá esto:
Entonces, aunque la oración dio un mensaje de error, estas entidades se reconocen correctamente en la entrada del usuario. Esto significa que la variable 'origen' ahora se guarda con un valor de variable 'Bruselas' y la variable 'destino' con el valor 'París'. Además, en la pestaña 'Resultado de NLP', vemos que el intent se reconoció correctamente, ¡eso es genial! Trabajemos ahora para eliminar ese mensaje de error primero.
El mensaje de error se debe al hecho de que el billete de tren del intent Reservar billete de tren no tiene un diálogo de bot vinculado. Entonces, aunque se reconoce correctamente, no le estamos diciendo al bot qué hacer cuando se reconoce ese intent.
Podemos cambiar eso agregando un nuevo Mensaje de bot:
    En el menú Diálogos de bot, abra el flujo 'General', cree un diálogo de bot del tipo 'Mensaje de bot' reservar billete de tren.Abra la pestaña 'NLP' y elija el intent de Reservar billete de tren en el menú desplegable 'Intent'.
    En la pestaña 'Configuración', nombre el mensaje del bot Reservar billete de tren
    Agregue un nuevo mensaje de texto con el texto "¡Entonces quieres ir a {destino},puedo ayudarte con eso!"
    Haga clic en Crear para guardar este mensaje de bot.
Para reutilizar la variable más adelante en la conversación, puede ponerla entre llaves como esta: {nombre_variable}
Al escribir este mensaje a los usuarios, Chatlayer sustituirá automáticamente {nombre_variable} con el valor de la variable. Si la variable está vacía, se mostrará un espacio vacío.
Las variables se pueden utilizar en cualquier lugar de la plataforma, por ejemplo, en llamadas a API, plantillas de listas y etiquetas de botones.
Ahora hemos vinculado el Reservar billete de tren a este mensaje de bot, ¡excelente trabajo! Esto significa que, cuando un usuario dice algo que activa el intent Reservar billete de tren, se mostrará este mensaje de bot.

Paso 12: Probar entidades en el emulador

Ahora que hemos vinculado todo, estamos listos para probar si todo está configurado correctamente usando el emulador.
    Abre el emulador (también conocido comoProbar su bot)
    Si es necesario, borre la última conversación haciendo clic en "Borrar conversación" para iniciar una nueva conversación desde la introducción.
    Ingrese "Quiero ir a Ámsterdam" y haga clic en enviar
    Abra el depurador.
En la pestaña 'Resultado de NLP' ahora puede ver si la entidad se extrajo correctamente.
Para usar nuevos cuadros de diálogo de bot, incluso cuando se usan variables, no es necesario volver a entrenar el NLP.
Si no obtiene el resultado como se indicó anteriormente, verifique los siguientes elementos en su bot:
    Si su entidad es reconocida por el NLP pero no aparece con {destino}, no pasó el umbral del 80%. Intente agregar ese valor a su entidad y vuelva a entrenar su modelo, o elija otro destino
    Si aparece 'Lo siento, no entendí eso', verifiqué si su intent está vinculada al mensaje del Bot y si está guardado correctamente.
    Si no se reconoce su intent o expresión, intente volver a entrenar a su NLP.
Ahora ya tenemos un gran comienzo al vincular el intent y dar una respuesta a la expresión que dice el usuario. Sin embargo, queremos más información del usuario. Agreguemos más expresiones y entidades.

Paso 13: Varias entidades en una expresión

Puede agregar tantas entidades como desee a una expresión. Para Choo Choo, queremos más información del usuario que solo el destino y el origen, para brindar una experiencia completa de reserva de trenes. ¡Agreguemos más entidades contextuales!
    Ir al menú Expresiones
    Haga clic en 'Agregar expresión'
    Seleccione el intent Reservar billete de tren
Crea la siguiente expresión:
    Quiero ir de Amberes a Bruselas mañana a las 9am en primera clase
Con las siguientes entidades:
    origen: Amberes
    destino: Bruselas
    fecha de salida: mañana
    hora de salida: 9 am
    clase: primera
Si tiene problemas para agregarlos, vuelva al paso 9 de este tutorial para leer todo al respecto.
Sugerencias adicionales para expresiones
    Necesito estar en Paris el próximo jueves
    Necesito estar en Nueva York el viernes
    Quiero ir a Bruselas el lunes
    Viernes quiero ir de Amberes a Ámsterdam
    Quiero viajar en segunda clase de Gante a Bruselas el viernes
    Quiero viajar en primera clase de Amberes a Aalst el jueves
    Me gustaría reservar un billete de primera clase de Aalst a Bruselas a las nueve
    Mañana quiero ir de Amberes a Bruselas en el tren a partir de las 9:00 en primera clase
Tenga en cuenta que las técnicas de NLP son de naturaleza probabilística. Cuando intenta capturar cinco expresiones en una oración, es posible que no pueda reconocerlas todas correctamente. Como regla general, puede comenzar a esperar resultados razonables para una entidad cuando a el NLP se le dieron al menos 30 expresiones para aprender.
Agregue más expresiones con las nuevas entidades contextuales al intent. Asegúrese de tener alrededor de 20 expresiones para Reservar billete de trenen total.

Paso 14: Entidades faltantes

Probemos sus expresiones recién creadas:
Actualice el mensaje del bot de reservar billetes de tren, en la descripción general de Diálogos de Bot, para mostrar las entidades.
Entonces tengo una solicitud para un billete de tren; {origen} a {destino} en {salida-fecha}, {salida-hora}, clase {clase}.
Ahora reentrena tu modelo de NLP y prueba tu bot:
Si recibe un mensaje de error cuando intenta actualizar su NLP, alrededor de 5 entidades de ejemplo, esto significa que necesita agregar más valores de entidad a algunas de sus entidades recién creadas. Vaya a NLP > Entidades > Entidades contextuales y asegúrese de que esa entidad tenga al menos 5 valores.
Uh oh, esto no es realmente lo que esperábamos. Como puede ver, la fecha y hora de salida no están configuradas (su resultado puede ser diferente según las expresiones que utilizó).
¿Entonces, cuál es el problema? Echemos un vistazo a los resultados de NLP:
el origen, el destino, la clasey lahora de salidase encontraron correctamente, pero sólo el origen, la clase y el destino tienen una puntuación de confianza superior al 80%. Por lo tanto, la fecha de salidano se procesó y se colocó en una variable. En este bot tenemos un umbral del 80%, por lo que una puntuación del 76,99% no era lo suficientemente alta.
Lea más sobre el umbral de NLP aquí.​
¡Más expresiones pueden ayudarlo a solucionar este problema! Intente agregar más expresiones y reentrenar su modelo para ver si la variable ahora se muestra correctamente en el mensaje del bot.

Resumen de la lección

Su bot ahora tiene la siguiente configuración:
    3 intents con alrededor de 35 expresiones en total
    5 entidades contextuales
    Un mensaje de bot, vinculado al intent Reservar billete de tren, que confirma la entrada del usuario en el mensaje
Ahora sabe cómo hacer:
    Crear entidades contextuales y valores de entidad
    Usar variables en un mensaje de bot
    Utilizar varias entidades contextuales en una expresión
    Probar su entrada en el depurador
No todos los usuarios proporcionarán todas las entidades que necesita. En el siguiente tutorial, aprenderá a verificar si un usuario ya ha proporcionado cierta información y a preguntar qué falta.
Last modified 2mo ago