code: def train(X_train, y_train, **kwargs):
      '''
      >>> corpus = CorpusReader('annot.opcorpora.xml')
      >>> X_train, x_test, y_train, y_test = get_train_data(corpus, test_size=0.33, random_state=42)
      >>> crf = train(X_train, y_train)
      '''
      crf = Trainer()
      crf.set_params({
          'c1': 1.0,
          'c2': 0.001,
          'max_iterations': 200,
          'feature.possible_transitions': True,
      })
  
      for xseq, yseq in zip(X_train, y_train):
          crf.append(xseq, yseq)
      crf.train(TOKENIZATION_MODEL_PATH)
      return crf train(X_train, y_train, **kwargs):
      '''
      >>> corpus = CorpusReader('annot.opcorpora.xml')
      >>> X_train, x_test, y_train, y_test = get_train_data(corpus, test_size=0.33, random_state=42)
      >>> crf = train(X_train, y_train)
      '''
      crf = Trainer()
      crf.set_params({
          'c1': 1.0,
          'c2': 0.001,
          'max_iterations': 200,
          'feature.possible_transitions': True,
      })
  
      for xseq, yseq in zip(X_train, y_train):
          crf.append(xseq, yseq)
      crf.train(TOKENIZATION_MODEL_PATH)
      return crf
docs: >>> corpus = CorpusReader('annot.opcorpora.xml')
      >>> X_train, x_test, y_train, y_test = get_train_data(corpus, test_size=0.33, random_state=42)
      >>> crf = train(X_train, y_train)