89 lines
3.0 KiB
Markdown
89 lines
3.0 KiB
Markdown
# Patrón IA
|
|
|
|
Los Tests no son más que archivos JSON con la siguiente estructura:
|
|
|
|
```json
|
|
[{
|
|
"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.
|
|
1. 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.
|
|
|
|
```txt
|
|
[[rand,opcion1|opcion2|opcion3|opcionN]]
|
|
```
|
|
|
|
```json
|
|
{
|
|
"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.
|
|
|
|
```txt
|
|
[[rand,desde1-hasta1|desde2-hasta2|desde3-hasta3|desdeN-hastaN]]
|
|
```
|
|
|
|
```txt
|
|
[[rand,valor1|valor2|valor3|valorN]]
|
|
```
|
|
|
|
```txt
|
|
[[rand,desde1-hasta1|desde2-hasta2|valor3|desdeN-hastaN]]
|
|
```
|
|
|
|
```json
|
|
{
|
|
"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.
|
|
|
|
```json
|
|
{
|
|
"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. |