void LdaApp() { long t1; (void) time(&t1); seedMT(t1); float em_converged = 1e-4; int em_max_iter = FLAGS_em_iterate; int em_estimate_alpha = 1; //1 indicate estimate alpha and 0 use given value int var_max_iter = FLAGS_var_iterate; double var_converged = 1e-6; double initial_alpha = FLAGS_alpha; int topic = FLAGS_topic_num; Corpus train; Corpus test; train.LoadData(FLAGS_cor_train); test.LoadData(FLAGS_cor_test); LOG(INFO) << train.Len()<< " " << test.Len(); LdaModel m; LDA lda; lda.Init(em_converged, em_max_iter, em_estimate_alpha, var_max_iter, var_converged, initial_alpha, topic); Str type = "seeded"; lda.RunEM(type, train, test, &m); VVReal gamma; VVVReal phi; lda.Infer(test, m, &gamma, &phi); WriteStrToFile(Join(gamma, " ", "\n"), "./model/gamma"); WriteStrToFile(Join(m.log_prob_w, topic, train.num_terms), "./model/beta"); WriteStrToFile(Join(phi, " ", "\n", "\n\n"), "./model/phi"); }
void App() { long t1; (void) time(&t1); seedMT(t1); float em_converged = 1e-4; int em_max_iter = 20; int em_estimate_alpha = 1; //1 indicate estimate alpha and 0 use given value int var_max_iter = 30; double var_converged = 1e-6; double initial_alpha = 0.1; int n_topic = 30; LDA lda; lda.Init(em_converged, em_max_iter, em_estimate_alpha, var_max_iter, var_converged, initial_alpha, n_topic); Corpus cor; //Str data = "../../data/ap.dat"; Str data = "lda_data"; cor.LoadData(data); Corpus train; Corpus test; double p = 0.8; SplitData(cor, p, &train, &test); Str type = "seeded"; LdaModel m; lda.RunEM(type, train, test, &m); LOG(INFO) << m.alpha; VVReal gamma; VVVReal phi; lda.Infer(test, m, &gamma, &phi); WriteStrToFile(Join(gamma, " ", "\n"), "gamma"); WriteStrToFile(Join(phi, " ", "\n", "\n\n"), "phi"); }
void MGRTMApp() { ml::Converged converged; converged.em_converged_ = 1e-4; converged.em_max_iter_ = 100; converged.var_converged_ = 1e-4; converged.var_max_iter_ = 10; int rho = 3; VarMGRTM var; var.Init(converged,rho); var.Load(FLAGS_net_path, FLAGS_cor_path, FLAGS_neg_times); Str path(FLAGS_cor_path); Corpus cor; cor.LoadData(path); MGRTM m; m.Init(2, FLAGS_local_topic, FLAGS_global_topic, cor.TermNum(), 1, 0.01, 0.01); var.RunEM(&m); }