                      words = add_noise(annot_tuples[1], corruption_level)
                      tokens = nlp.tokenizer.tokens_from_list(words)
                  else:
                      tokens = nlp.tokenizer(raw_text)
                  nlp.tagger(tokens)
                  gold = GoldParse(tokens, annot_tuples, make_projective=True)
                  loss += nlp.parser.train(tokens, gold)
                              
 
</s> remove                     tokens = nlp.tokenizer.tokens_from_list(annot_tuples[1])
 </s> add                     words = add_noise(annot_tuples[1], corruption_level)
                    tokens = nlp.tokenizer.tokens_from_list(words) </s> remove def add_noise(c, noise_level):
 </s> add def _corrupt(c, noise_level):
                    raw_text = add_noise(raw_text, corruption_level)
                      words = add_noise(annot_tuples[1], corruption_level)
                      tokens = nlp.tokenizer.tokens_from_list(words)
                  else:
                    raw_text = add_noise(raw_text, corruption_level)
                      tokens = nlp.tokenizer(raw_text)
                  nlp.tagger(tokens)
                  gold = GoldParse(tokens, annot_tuples, make_projective=True)
                  loss += nlp.parser.train(tokens, gold)
                              
keep keep add keep keep keep keep keep
 * Update input corruption method to work with lists as well as trings 
bin/parser/train.py