3.0 KiB
Patrón IA
Los Tests no son más que archivos JSON con la siguiente estructura:
[{
"origin" : "Quién lo hizo",
"sources" : ["Links para el origen de los datos/Tests."],
"title" : "Título del Test.",
"queries" : [{
"question" : "Pregunta arealizar.",
"rights" : ["Respuestas correctas simples.", ["Respuestas correctas porcentuadas.", 0.5]],
"wrongs" : ["Respuestas incorrectas simples.", ["Respuestas incorrectas porcentuadas.", 0.5]]
}]
}]
- origin: String. Nombre de la entidad o fuente de la información.
- sources: Array de Strings. Fuentes de la que parte la información.
- title: String. Título del tema a tratar.
- Queries: Array de diccionario. Conjunto de posibles preguntas.
- question: String. Texto de la pregunta.
- rights y wrongs: Array de Strings (Respuesta directa) y/o Array bidimensional con:
0. String. Respuesta.
- Float. Probabilidad de prebalecer como seleccionada.
Todos los campos ahnde existir siempre y el tipado va acorde a lo expuesto.
Los Array indican que pueden tener uno o más elementos, a excepción de "sources", que puede estar vacío.
Las respuestas porcentuadas indican cuál es la probabilidad de que una vez elegida por el programa, ésta se quede como respuesta y no se seleccione otra. Esto vale para equivaler conjuntos de respuestas dinámicas y estáticas. El valor que lo acompaña es la probabilidad de que permanezcan siendo 1 el 100% y 0 el 0%.
Lo interesante es que halla cuántas más posibles respuestas mejor. No hay un número mínimo ni máximo.
Las respuestas pueden tener factores dinámicos para que una sea más flexibles y dé más resultados. No puede haber anidamientos de éstos. Éstos se basan en claves las cuales son los siguientes.
rand
Indica un conjunto de elementos de los cuales se eligirá uno aleatoriamente.
[[rand,opcion1|opcion2|opcion3|opcionN]]
{
"wrongs" : ["Esto es [[rand,esto|eso|aquello]]."]
}
En el ejemplo puede dar como resultado que es "esto", o "eso" o "aquello".
range
Indica uno o más rangos o valores fijos numéricos enteros de donde se sacarán valores aleatorios.
[[rand,desde1-hasta1|desde2-hasta2|desde3-hasta3|desdeN-hastaN]]
[[rand,valor1|valor2|valor3|valorN]]
[[rand,desde1-hasta1|desde2-hasta2|valor3|desdeN-hastaN]]
{
"wrongs" : ["Esto es [[range,0-10|15-20|23|31-60]]."]
}
En el ejemplo puede coger cualquier valor comprendido entre 0 y 10, 15 y 20, el valor 23, y entre 31 y 60.
serie
Es como el rango pero con memoria, y la siguiente serie del mismo texto procesado ha de ser igual o más grande.
{
"wrongs" : ["Esto está entre [[serie,0-25]] y [[serie,10-50]]."]
}
En el ejemplo, el primer valor puede coger cualquier valor comprendido entre el 0 y el 25; y el segundo puede ser entre 10 si el primero es menor que 10 o desde el primero en caso contrario, hasta el 50.
Sólo se contabiliza una serie por pregunta/respuesta.