public void Update(VariationalInferenceParameter varInference, CorpusDocument document) { for (int i = 0; i < CovarianceSufficientStatistic.RowCount; i++) { MuSufficientStatistic[i] = MuSufficientStatistic[i] + varInference.Lambda[i]; for (int j = 0; j < CovarianceSufficientStatistic.ColumnCount; j++) { double tmp = varInference.Lambda[i] * varInference.Lambda[j]; if (i == j) { CovarianceSufficientStatistic[i, j] = CovarianceSufficientStatistic[i, j] + varInference.Nu[i] + tmp; } else { CovarianceSufficientStatistic[i, j] = CovarianceSufficientStatistic[i, j] + tmp; } } } for (int i = 0; i < document.NbTerms; i++) { for (int j = 0; j < BetaSufficientStatistic.RowCount; j++) { var word = document.GetWord(i); var count = document.GetCount(i); BetaSufficientStatistic[j, word] = BetaSufficientStatistic[j, word] + count * varInference.Phi[i, j]; } } NData++; }
public Bundle(int k, CorpusDocument document, LLNAModel model, VariationalInferenceParameter inference) { SumPhi = Vector <double> .Build.Dense(k - 1, 0); Document = document; Model = model; VarInference = inference; Init(k); }