Example #1
0
  public boolean predict(SingleDecision decision) throws MaltChainedException {
    if (getGuide().getGuideMode() == ClassifierGuide.GuideMode.BATCH) {
      throw new GuideException("Can only predict during parsing. ");
    } else if (!(divideFeature.getFeatureValue() instanceof SingleFeatureValue)) {
      throw new GuideException("The divide feature does not have a single value. ");
    }

    // divideFeature.update();
    if (divideModels != null
        && divideModels.containsKey(
            ((SingleFeatureValue) divideFeature.getFeatureValue()).getCode())) {
      return divideModels
          .get(((SingleFeatureValue) divideFeature.getFeatureValue()).getCode())
          .predict(decision);
    } else if (masterModel != null && masterModel.getFrequency() > 0) {
      return masterModel.predict(decision);
    } else {
      getGuide()
          .getConfiguration()
          .getConfigLogger()
          .info(
              "Could not predict the next parser decision because there is "
                  + "no divide or master model that covers the divide value '"
                  + ((SingleFeatureValue) divideFeature.getFeatureValue()).getCode()
                  + "', as default"
                  + " class code '1' is used. ");

      decision.addDecision(1); // default prediction
      // classCodeTable.getEmptyKBestList().addKBestItem(1);
    }
    return true;
  }