code: private POSTaggerCrossValidator getPOSTaggerCrossValidator(
        final TrainingParameters params) {
      final File dictPath = new File(Flags.getDictionaryFeatures(params));
      // features
      if (this.posTaggerFactory == null) {
        throw new IllegalStateException(
            "You must create the POSTaggerFactory features!");
      }
      POSTaggerCrossValidator validator = null;
      if (dictPath.getName().equals(Flags.DEFAULT_DICT_PATH)) {
        if (this.dictCutOff == Flags.DEFAULT_DICT_CUTOFF) {
          validator = new POSTaggerCrossValidator(this.lang, params, null, null,
              null, this.posTaggerFactory.getClass().getName(),
              this.listeners
                  .toArray(new POSTaggerEvaluationMonitor[this.listeners.size()]));
        } else {
          validator = new POSTaggerCrossValidator(this.lang, params, null, null,
              this.dictCutOff, this.posTaggerFactory.getClass().getName(),
              this.listeners
                  .toArray(new POSTaggerEvaluationMonitor[this.listeners.size()]));
        }
      } else {
        if (this.dictCutOff == Flags.DEFAULT_DICT_CUTOFF) {
          validator = new POSTaggerCrossValidator(this.lang, params, dictPath,
              null, null, this.posTaggerFactory.getClass().getName(),
              this.listeners
                  .toArray(new POSTaggerEvaluationMonitor[this.listeners.size()]));
        } else {
          validator = new POSTaggerCrossValidator(this.lang, params, dictPath,
              null, this.dictCutOff, this.posTaggerFactory.getClass().getName(),
              this.listeners
                  .toArray(new POSTaggerEvaluationMonitor[this.listeners.size()]));
        }
      }
      return validator;
    }
docs: Get the postagger cross validator.
  
  @param params
  the training parameters
  @return the pos tagger cross validator