Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement