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.
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?
A continuación, es el momento de agregar una entidad contextual.
- Vaya a
Intents
y seleccione el intentreservar 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
Bruselas
en 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 campoCrear 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.
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.
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 deReservar 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.
Ahora que hemos vinculado todo, estamos listos para probar si todo está configurado correctamente usando el emulador.
- Abre el emulador (también conocido como
Probar 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.
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 tren
en total.
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 clase
y lahora de salida
se 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 salida
no 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. ¡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.
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.