                  if len(annot_tuples[1]) == 1:
                      continue
                  score_model(scorer, nlp, raw_text, annot_tuples)
                  if raw_text is None:
                      tokens = nlp.tokenizer.tokens_from_list(annot_tuples[1])
                  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 def add_noise(c, noise_level):
 </s> add def _corrupt(c, noise_level):
                    words = add_noise(annot_tuples[1], corruption_level)
                    tokens = nlp.tokenizer.tokens_from_list(words)
                  if len(annot_tuples[1]) == 1:
                      continue
                  score_model(scorer, nlp, raw_text, annot_tuples)
                  if raw_text is None:
                    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)
keep keep keep keep replace keep keep keep keep keep
 * Update input corruption method to work with lists as well as trings 
bin/parser/train.py