I'm currently working on developing a language learning web app that provides the user with better feedback.
One of the things that I'm looking into right now is evaluating wrong answers. I'd like to implement a scoring scale for each question that the user answers by typing in the word.
A correct answer is +1.00, wrong / blank answer is 0.00, and typing in a different word would be -1.00 as it indicates the user may have learned the word wrong.
My question is, what should I look at to decide if a user is close? For a misspelling, I can use the Levenshtein distance which is basically the minimum number of single-character edits (insertions, deletions or substitutions) required to change one word into the other.
The problem is, forgetting an accent or perhaps using a wrong accent doesn't mean that the user doesn't know the word. Also, the length of the word should be considered as missing one letter in an eight letter word isn't a severe as in a three letter word.
What are your recommendations as to a scoring system between 0 and +1.00. How should I decide how close they are to the right idea and award partial credit accordingly?