https://cs.nyu.edu/faculty/davise/ai/bayesText.html
public void normalize() {
//
// 拉普拉斯校正:一般通过将所有的计数+1来进行。see: http://cs.nyu.edu/faculty/davise/ai/bayesText.html
for (int r = 0; r < numberOfState; r++) {
boolean gotZeroCount = false;
for (int c = 0; c < numberOfState; c++) {
if(table[r][c] == 0) {
gotZeroCount = true;
break;
}
}
if (gotZeroCount) {
for (int c = 0; c < numberOfState; c++) {
table[r][c] += 1;
}
}
}
// normalize
for (int r = 0; r < numberOfState; r++) {
double rowSum = getRowSum(r);
for (int c = 0; c < numberOfState; c++) {
table[r][c] = table[r][c] / rowSum;
}
}
}