Given an input stream, the objective of this task is to classify whether words in the stream are grammatically correct or not. The input to this task is a stream of words, possibly from captions generated by a speech-to-text engine, and the output is a classification of each word from the labels (reason) = [NO_DIFF (correct), CASE_DIFF (case error), PUNCUATION_DIFF (punctuation error), CASE_AND_PUNCUATION_DIFF (both case and punctuation error), STEM_BASED_DIFF (stem word error), DIGIT_DIFF (digit error), INTRAWORD_PUNC_DIFF (intra-word punctuation error), and UNKNOWN_TYPE_DIFF (an error that does not corrrespond to the previous categories)].

Example Input: ['so', "I'm", 'looking', 'forward', 'to', 'the', 'end', 'of', 'this', 'problem', 'as', 'much', 'as', "I'm", 'guessing', 'you', 'are', 'and', 'I', 'think', "we're", 'in', 'the', 'homestretch', 'we', 'just', 'have', 'to', 'simplify', 'this', 'to', 'get', 'the', 'possible', 'values', 'for', 'X', 'so', "let's", 'simplify', 'what', 'we', 'have', 'here', 'in', 'the', 'radical', 'so', "let's", 'say', 'square', 'root', 'of', '3', 'minus', '2', "that's", 'going', 'to', 'be', 'square', 'root', 'of', '3', 'and', "we're", 'going', 'to', 'square', 'this', 'whole', 'thing', "that's", 'going', 'to', 'be', 'square', 'root', 'of', '3', 'squared', 'which', 'is', '3', 'minus', '2', 'times', 'their', 'product', 'so', "that's", 'minus', '4', 'square', 'roots', 'of', '3', 'and', 'then', 'plus']
Example Output: ['CASE_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'PUNCUATION_DIFF', 'CASE_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'CASE_AND_PUNCUATION_DIFF', 'CASE_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF']

Example Input: ['okay', "I'm", 'going', 'to', 'draw', 'for', 'you', 'a', 'box', 'diagram', 'of', 'our', 'heart', 'kind', 'of', 'a', 'quick', 'schematic', 'and', 'this', 'is', "let's", 'say', 'divide', 'it', 'in', 'half', 'and', "I'll", 'divide', 'it', 'in', 'half', 'again', 'because', 'we', 'know', 'the', 'heart', 'has', 'four', 'chambers', 'right', 'and', 'the', 'blood', 'enters', 'in', 'the', 'right', 'atrium', 'goes', 'down', 'into', 'the', 'right', 'ventricle', 'and', 'then', 'it', 'goes', 'over', 'to', 'the', 'lungs', 'comes', 'back', 'out', 'to', 'the', 'left', 'atrium', 'and', 'left', 'ventricle', 'and', 'then', 'out', 'to', 'the', 'body', "that's", 'kind', 'of', 'the', 'flow', 'of', 'blood', 'and', 'we', 'know', 'that', 'the', 'heart', 'is', 'a', 'pump', 'and', 'it', 'squeezes']
Example Output: ['UNKNOWN_TYPE_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'UNKNOWN_TYPE_DIFF', 'CASE_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'PUNCUATION_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'PUNCUATION_DIFF', 'CASE_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'PUNCUATION_DIFF', 'PUNCUATION_DIFF', 'CASE_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'PUNCUATION_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'PUNCUATION_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'PUNCUATION_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'PUNCUATION_DIFF', 'CASE_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF', 'NO_DIFF']

Example Input: ["let's", 'see', 'if', 'we', 'could', 'figure', 'out', 'what', 'X', 'plus', 'seven', 'let', 'me', 'write', 'that', 'a', 'little', 'bit', 'neater', 'x', 'plus', '7', 'squared', 'is', 'and', 'I', 'encourage', 'you', 'to', 'pause', 'the', 'video', 'and', 'work', 'through', 'it', 'on', 'your', 'own', 'all', 'right', 'now', "let's", 'work', 'through', 'this', 'together', 'so', 'we', 'just', 'remember', 'the', 'whole', 'trick', "we're", 'squaring', 'the', 'entire', 'binomial', 'so', 'this', 'thing', 'is', 'going', 'to', 'be', 'the', 'same', 'thing', 'as', 'X', 'plus', '7', 'times', 'X', 'plus', '7', "I'm", 'going', 'to', 'write', 'the', 'second', 'X', 'plus', '7', 'in', 'a', 'different', 'color', 'which', 'is', 'going', 'to', 'be', 'helpful', 'when', 'we', 'actually', 'multiply']
Example Output:
NO_DIFF NO_DIFF NO_DIFF NO_DIFF UNKNOWN_TYPE_DIFF NO_DIFF NO_DIFF NO_DIFF CASE_DIFF NO_DIFF PUNCUATION_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF PUNCUATION_DIFF NO_DIFF NO_DIFF DIGIT_DIFF NO_DIFF PUNCUATION_DIFF CASE_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF PUNCUATION_DIFF CASE_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF PUNCUATION_DIFF CASE_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF PUNCUATION_DIFF CASE_DIFF NO_DIFF DIGIT_DIFF NO_DIFF CASE_DIFF NO_DIFF DIGIT_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF CASE_DIFF NO_DIFF DIGIT_DIFF NO_DIFF NO_DIFF NO_DIFF PUNCUATION_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF NO_DIFF