Corpus M
Definición
El corpus M es un tipo de corpus que se compone de scenarios en lenguaje natural y lenguaje formal para preparar a un bot de Mammut. Esta mezcla es posible gracias a Mammut Markdown. Los scenarios se pueden conectar con una ontology para ampliar la funcionalidad de los bots.
En los ejemplos de interacción dispuestos en el corpus, es decir, de los events o scenarios es posible usar variables para sustituir elementos que sean parte del knowledge.
Nota: la capacidad de respuesta del bot es más eficiente y precisa gracias al uso de mammut markdown en los corpus M.
El uso de un corpus M permite que un bot de Mammut pueda manejar el contexto en una conversación. Esto es posible porque un bot con un corpus M usa una memoria de la conversación vinculada al knowledge. Esta memoria almacena información sobre la conversación, que será utilizada por el bot de Mammut en futuras interacciones para responder los mensajes enviados por los usuarios (Véase scope).
El corpus M se almacena en una sheet. La información dispuesta en el corpus M provee casos representativos en lenguaje natural y formal, así como información necesaria para la preparación del bot.
Conceptos relacionados: corpus, corpus extension, scenario, event, variable knowledge, ontology, scope.
Formato general
Un corpus M es una sheet de un mammut package. Cada fila de la sheet se corresponde con un event. Los nombres que corresponden a cada una de las columnas se encuentran en la fila #2.
La estructura de esta sheet es la siguiente:
Campo | Descripción | Obligatoriedad |
---|---|---|
id | Identificador de un scenario. Los valores válidos son de tipo entero. Enteros iguales se corresponden a un mismo scenario. | Obligatorio. |
sub_id | Identificador de un event. Los valores válidos son de tipo entero, y estos deben ser consecutivos, de menor a mayor, uno a uno, empezando en 1 cuando forman parte de un mismo scenario. La numeración se reinicia para el siguiente scenario. Los valores consecutivos del sub_id se corresponden con la secuencia prototípica en la que se presentan las partes integrantes de una conversación (por ejemplo, primero un saludo, segundo una pregunta, etc.) | Obligatorio. |
scenario_type | Tiene tres valores posibles: Conversation, Monologue y Dialogue para cada tipo de scenario. (Véase scenario). | Obligatorio. |
event_message | Mensaje que determina al event. Los valores válidos son de tipo cadena de caracteres. En el caso del corpus M, las variables tendrán un formato específico. | Obligatorio. |
hidden | Ignora un event específico. Se marca con una "x" para esconder el event. Se deja vacío este valor para que el event sea tomado en cuenta por el framework. | Opcional. |
field | Indica una palabra vinculada al tema del event. | Opcional. |
lambda_condition | Condición necesarias para que el bot envíe una respuesta determinada al usuario, dependiendo de la información que se encuentre en el scope. | Opcional. |
ui_event | Función escrita en código informático que permite al bot percibir ciertas acciones llevadas a cabo por un agente en la interfaz de usuario. | Opcional. |
action | Acción programática predefinida en código que se ejecuta automáticamente en un event asociado. Esta columna permite programar acciones determinadas que el bot puede llevar a cabo (dependiendo de los intereses del programador) cuando tiene lugar un event determinado. | Opcional. |
source | Origen de los events que recibe o genera el bot. Es una cadena de caracteres. La cadena de caracteres "Mammut" se reserva para los events iniciados por el bot. Cualquier otra cadena será interpretada como el nombre genérico de otro agente. | Obligatorio. |
regional_seting | Especifíca el idioma en que está escrito el event. En esta columna se usan los códigos “es” (para un corpus en español) o “en” (para un corpus en inglés) según sea el caso. | Obligatorio. |
complexity | Identificador del grado de complejidad de un event. Los valores válidos son números de tipo entero. | Opcional. |
Ejemplo
id | sub_id | scenario_type | event_message | hidden | field | lambda_condition | ui_event | action | source | regional_settings | complexity |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | Conversation | Hola! | Carla | es | ||||||
1 | 2 | Conversation | Hola! Bienvenido a la tienda de varitas y calderos del señor Jollivanders. ¿En qué puedo ayudarte? | Mammut | es | ||||||
2 | 1 | Conversation | ¿Cuál es el precio de la [variable\|tienda.sell_several.varita.name ] en [variable\|tienda.name ]? |
Carla | es | ||||||
2 | 2 | Conversation | La [variable\|tienda.sell_several.varita.name ] cuesta [variable\|tienda.sell_several.varita.price ]. |
Mammut | es | ||||||
2 | 3 | Conversation | La quiero. | Carla | es | ||||||
2 | 4 | Conversation | De inmediato. Dame tu correo electrónico para concluir tu petición. | Mammut | es | ||||||
3 | 1 | Conversation | ¿En [variable\|tienda.name ] cuál es el precio del [variable\|tienda.send_several.caldero.name ]? |
Carla | es | ||||||
3 | 2 | Conversation | El [variable\|tienda.send_several.caldero.name ] cuesta [variable\|tienda.send_several.caldero.price ]. |
Mammut | es | ||||||
3 | 3 | Conversation | Quiero el [variable\|tienda.send_several.caldero.name ]. |
Carla | es | ||||||
3 | 4 | Conversation | De inmediato. Dame tu correo electrónico para concluir tu petición. | Mammut | es |