allWordsCorrect
-> missing accent? -.1
-> 1 letter missing? -.2
--> More then one? 0
CheckSentence(allowMargin = 0){
errors: []
sentence = _.lowerCase(_.deburr(originaSentence));
i = 0;
each word of sentence(){
planeWord = _.deburr(word)
//Does the word exist in the sentence?
probablyWord = findMostLikeyWord(planeWord, sentence, originaSentence)
//Doesnt exist
if (!probablyWord) {\
!allowMargin -> i++
continue;
errors.push({word: word, [{error: "Doesnt exist", subtract: 5}], position: i})
}
//We must have the word, Where is it?
position = findPosition(probablyWord, sentence)
//We already have used the word (Probably was typed more then once in the sentence)
//For example: The word "the" is once in a sentence, but typed twice.
// Second time, position === 0 because we removed it from the list
position === 0 {
!allowMargin -> i++
errors.push({word: word, error: [{"Duplicate", subtract: 3}], position: i})
continue;
}
let wordErrors = [];
//Exists, different place
i !== position {
!allowMargin || (abs position - i) > allowMargin) {
if (!allowMargin) i++
//50% off for good word, but wrong position
wordErrors.push({word: word, [{error: "Wrong position", score: 50});
}
}
i++;
//Word seems to be on the correct-ish place, lets check the word itself!
let wordErrors = CheckWord().concat(wordErrors);
if (wordErrors.length > 0){
errors.push({word: word, wordErrors, position: i})
} else {
//Correct word, correct place, huray!
}
}
}
CheckWord(){
-> missing accent? -.1
-> 1 letter missing? -.2
}
Comments
0 B
|👍
/👎