void ComputeEmissionProbsForDoc(_Doc d) { for (int i = 0; i < d.getSenetenceSize(); i++) { _Stn stn = d.getSentence(i); Arrays.fill(emission[i], 0); int start = 0, end = this.number_of_topics; if (i == 0 && d.getSourceType() == 2) { // first sentence is specially handled for newEgg // get the sentiment label of the first sentence int sentimentLabel = stn.getSentenceSenitmentLabel(); if (sentimentLabel == 0) { // positive sentiment in the first half end = this.number_of_topics / 2; for (int k = end; k < this.number_of_topics; k++) emission[i][k] = Double.NEGATIVE_INFINITY; } else if (sentimentLabel == 1) { // negative sentiment in the second half start = this.number_of_topics / 2; for (int k = 0; k < start; k++) emission[i][k] = Double.NEGATIVE_INFINITY; } } for (int k = start; k < end; k++) { for (_SparseFeature w : stn.getFv()) { emission[i][k] += w.getValue() * topic_term_probabilty[k][w.getIndex()]; // all in log-space } } } }