docs: public void train() throws Exception {
  
  		loadData();
  		/**
  		 * 
  		 * 更新参数的准则
  		 */
  		Update update;
  		// viterbi解码
  		Inferencer inference;
  
  		HammingLoss loss = new HammingLoss();
  		if (standard) {
  			inference = new LinearViterbi(templets, labels.size());
  			update = new LinearViterbiPAUpdate((LinearViterbi) inference, loss);
  		} else {
  			inference = new HigherOrderViterbi(templets, labels.size());
  			update = new HigherOrderViterbiPAUpdate(templets, labels.size(), true);
  		}
  
  		OnlineTrainer trainer;
  
  		if(cl!=null){
  			trainer = new OnlineTrainer(cl, update, loss, factory,iterNum, c);
  		}else{
  			trainer = new OnlineTrainer(inference, update, loss,
  					factory, iterNum, c);
  		}
  
  		cl = trainer.train(trainSet, testSet);
  
  		if(cl!=null&&newmodel!=null)
  			saveTo(newmodel);
  		else
  			saveTo(model);
  
  	}