Interesting one. I've made good use of Levenshtein distance
and variants thereof many times (see Text::Levenshtein
), and it will work for sentences as well as it works for words (though you may have some speed issues as the length increases - I don't know how long your text samples are going to be). Off the top of my head I'd think about comparing the current user input to the same length initial substring of the template. A result of 0 means they're exactly copying it, and a result equal to the current string length means they're completely different. Maybe if you could prepare some sample data and your desired output we could get closer to an answer.
I'd like to be able to assign to an luser