/**
   * @Title: classifyResult @Description: 多项式朴素贝叶斯分类结果 P(C_i|w_1,w_2...w_n) = P(w_1,w_2...w_n|C_i) *
   * P(C_i) / P(w_1,w_2...w_n) = P(w_1|C_i) * P(w_2|C_i)...P(w_n|C_i) * P(C_i) / (P(w_1) * P(w_2)
   * ...P(w_n))
   *
   * @param @return
   * @return BigDecimal
   * @throws
   */
  public static Map<String, BigDecimal> classifyResult(Set<String> words) {

    Map<String, BigDecimal> resultMap = new HashMap<String, BigDecimal>();
    Set<String> classifierSet = TrainSampleDataManager.getAllClassifiers();
    for (String classifier : classifierSet) {
      BigDecimal probability = new BigDecimal(1.0);
      for (String word : words) {
        probability =
            probability
                .multiply(classConditionalProbability(classifier, word))
                .multiply(zoomFactor);
      }
      resultMap.put(classifier, probability.multiply(priorProbability(classifier)));
    }
    classifierResult = resultMap;
    return resultMap;
  }