danielsp13 / CorrectIt

CorrectIt: un corrector de exámenes escritos en lenguaje natural.
GNU General Public License v3.0
0 stars 0 forks source link

[M2 - Dev] Especificar ponderación de términos #61

Closed danielsp13 closed 1 year ago

danielsp13 commented 1 year ago

En relación con #60 , para poder calificar las respuestas es necesario disponer de vectores numéricos. Esto se consigue realizando lo que se conoce como ponderación de términos, que no es más que la asignación de un peso a cada término de la respuesta a considerar.

Un término es cualquier palabra / token que está presente en alguna respuesta.

Hay varios esquemas de ponderación a considerar:

  1. Esquema de ponderación binario: Considera la presencia (1) o ausencia de un término en la colección formada por la respuesta del alumno y la modelo. Sólo se tiene información de que un término aparece en una respuesta.
  2. Esquema basado en la frecuencia de aparición del término i-ésimo en la respuesta j-ésima: Un término que aparezca más veces en un documento será probablemente más importante que lo haga sólo una vez.
  3. Esquema basado en la frecuencia inversa del término i-ésimo en la coleccion. Se basa en el hecho de que un término que aparece en pocos documentos en la colección tendrá un mayor poder discriminador que los que aparecen casi todos.

La cuestión es elegir una de estas ponderaciones, e implementar una función que reciba dos respuestas, la del alumno y la modelo, y devuelva dos vectores numéricos que permitan aplicar el algoritmo de similitud.

En este punto del desarrollo del proyecto debería ser suficiente con escoger la más sencilla, e ir aplicando cambios en este aspecto progresivamente en el futuro.