/** * @Title: classConditionalProbability @Description: 多项式朴素贝叶斯类条件概率 * 类条件概率P(tk|c)=(类c下单词tk在各个文档中出现过的次数之和+1)/(类c下单词总数+|V|) V是训练样本的单词表(即抽取单词,单词出现多次,只算一个), * |V|则表示训练样本包含多少种单词。 P(tk|c)可以看作是单词tk在证明d属于类c上提供了多大的证据, 而P(c)则可以认为是类别c在整体上占多大比例(有多大可能性) * * @param @return * @return BigDecimal * @throws */ public static BigDecimal classConditionalProbability(String classifier, String word) { BigDecimal molecular = new BigDecimal(TrainSampleDataManager.wordInClassCount(word, classifier) + 1); BigDecimal denominator = new BigDecimal( TrainSampleDataManager.classWordCount(classifier) + TrainSampleDataManager.sampleWordKindCount()); return molecular.divide(denominator, 10, BigDecimal.ROUND_CEILING); }