How does the spaced recognition work for words?

“So how does the spaced repetition scheduling work, exactly?” in the FAQ and in the SRS API documentation (linked at Question about skritters spaced repetition) it doesn’t explain how a multi-character phrase is graded. E.g. if I write 涛澜壮阔 and get the first character wrong, the second so-so, the third right, and say the fourth is too easy, how does the scheduling work? Is the overall word graded as some kind of average, or is it the worst grade? Does the rule change for longer phrases like 柴米油盐酱醋茶 if I get one character wrong?

I’ve included the logic below and is based on a scoring system of 1 to 4 (wrong to easy). 1 is considered wrong and 2, 3 and 4 are right. If the character only has two character and you get one wrong, then the word is marked wrong. Regardless of the length of the word if you get 2 or more wrong the word is marked wrong. If the scoring doesn’t fall into one of those two categories the score is rounded down based on the total scores added together divided by the total number of characters.

if (totalCount === 2 && totalWrong === 1) {
    score = 1;
} else if (totalWrong > 1) {
    score = 1;
} else {
    score = Math.floor(totalScore / totalCount);

So in your example of 涛澜壮阔 would translate to the scores of 1, 2, 3 and 4. It has more than two characters, but not more than 2 wrong so it’d fall into the last calculation which would be:

(1 + 2 + 3 + 4) / 4 = 2.5 (rounded down to a final score of 2 for the word)

1 Like

I’ve often thought it would be cool if a wrong (1) character in a word would trigger reappearing other words containing this character. This might work by dynamically Changing the character count (1-4) in multiple words, not only the current one. This would allow reinforced studying of characters which one keeps forgetting in different contexts.

Just a thought, what do you think?

1 Like

@kehrichtbesen I really like that idea too. I wonder how hard it is to implement?

@kehrichtbesen like this idea. More generally (and harder to implement no doubt) would be identifying characters in words that are often confused and boosting those as well. There are many characters and words with very long total practice time that I still get <50% correct, and it’s partly because I’ve never really seen them in context with the ones I’m confusing them with.

From Skritter FAQ, Skritter already spaces out some practice items if they are likely to be too easy because you’ve been practising a similar item recently. If there was some way to do the reverse and reduce the spacing for characters that you’re likely to confuse that would be very helpful.