Ya hemos visto como hacer algoritmos que «olvidan» con el tiempo, es decir que daban mayor relevancia a los valores recientes que a los más antiguos. Ahora vamos a fijarnos en un modelo de como el cerebro olvida para intentar simularlo. Es un modelo bastante simplificado, proviene de distintos experimentos prácticos basándose en los realizados por Hermann Ebbinghaus estos experimentos parten de memorizar una lista de palabras o silabas sin relación entre ellas. Para lograr que fuera un ejercicio puro de memoria los primeros experimentos usaban listas de silabas inventadas. El sujeto memorizaba la lista y a intervalos de tiempo se pedía recordar todas las que pudiera y se iba contando las que olvidaba.
De estos experimentos se han sacado varias formulas que tratan de aproximar el comportamiento del olvido. Actualmente se acepta como una buena aproximación la formula:
R = e (-t/S)- R es el porcentaje de la palabras que se recuerda
- e es, pues eso, el número e
- t es el tiempo
- S la intensidad del recuerdo

Esta ecuación es la misma que ya vimos en el post sobre algoritmos que olvidan. Solo que allí la formula tenia otra forma:
R = e -ktEn este caso k = 1/S . Esto le confiere propiedades muy útiles que luego veremos.
Modelo Básico
Vamos a empezar por simular el caso más sencillo. Un listado de sílabas aleatorias como el del experimento. En este caso el parámetro S es para todas el mismo. Y todas tiene la misma probabilidad de ser olvidadas en el momento T.
Para saber si una palabra se sigue recordando o no en el momento T se calcula un número al azar entre 0 y 1. Si el número es mayor que el valor de e ^ -t/S esa palabra se olvida. Si es menor se recuerda. Solo queda repetir este proceso por cada palabra del documento.
Mejorando el modelo
Lo que ocurre es que pocas veces en la vida hemos de memorizar un texto de esas características. Lo normal es que sea un texto con distintos tipos de palabras. Veamos como modificamos el parámetro S de cada palabra.
Las palabras vacías o stopwords que son palabras que no aportan nada al significado del texto deberían de tener una S muy baja para que se olviden rápidamente. Para este punto necesitaremos un listado de palabras vacías.
Los nombres propios, fechas, lugares y números incrementan el valor de su S para que duren más tiempo. Este punto requiere la extracción de nombres, entidades, fechas y números. Para ello se pueden combinar distintos algoritmos con diccionarios.
Cada vez que una palabra repita en el texto se incrementa un poco el valor de su S. Salvo con las palabras vacías que no incrementan nada su valor.
Las palabras propias del tema del texto incrementan su valor de S un poco. Es decir, si el texto es sobre medicina las palabras relacionadas con la medicina se recuerdan más fácilmente. Esta parte requiere diccionarios de términos de cada tema.
El caso más complicado es el de las palabras nuevas o desconocidas que deberían tener una S menor de la que les corresponde. La mitad, por ejemplo. Este punto es difícil de simular en un ordenador, podemos hacerlo dotándole de un listado de palabras conocidas.
Este algoritmo produce como resultado un texto que pasado cierto tiempo va olvidando de forma aleatoria distintas partes con preferencia por recordar los datos del texto más relevantes y relacionados con la materia del mismo y el conocimiento previo del lector.
Simulando el aprendizaje por repetición
Una de las conclusiones que se sacaron de estos estudios es que mientras no se ha olvidado el texto el volver a memorizarlo cuesta menos tiempo, es lógico pues aún recordamos parte de él y que cada vez su recuerdo permanece más tiempo.
Esto se podría simular haciendo que cada vez que sea «lea» el texto el valor de la S calculado en el apartado anterior se aumente en un 40% o 50%. Sn = S * (1+(0.5*n)) siendo n el número de relecturas del texto.