@@ -47,30 +47,45 @@ import model.labeled_lda as llda
4747# data
4848labeled_documents = [("example example example example example", ["example"]),
4949 ("test llda model test llda model test llda model", ["test", "llda_model"]),
50- ("example test example test example test example test", ["example", "test"])]
50+ ("example test example test example test example test", ["example", "test"]),
51+ ("good perfect good good perfect good good perfect good ", ["positive"]),
52+ ("bad bad down down bad bad down", ["negative"])]
5153
5254# new a Labeled LDA model
55+ # llda_model = llda.LldaModel(labeled_documents=labeled_documents, alpha_vector="50_div_K", eta_vector=0.001)
56+ # llda_model = llda.LldaModel(labeled_documents=labeled_documents, alpha_vector=0.02, eta_vector=0.002)
5357llda_model = llda.LldaModel(labeled_documents=labeled_documents)
5458print llda_model
5559
5660# training
57- llda_model.training(iteration=10, log=True)
61+ # llda_model.training(iteration=10, log=True)
62+ while True:
63+ print("iteration %s sampling..." % (llda_model.iteration + 1))
64+ llda_model.training(1)
65+ print "after iteration: %s, perplexity: %s" % (llda_model.iteration, llda_model.perplexity)
66+ if llda_model.is_convergent:
67+ break
5868
5969# update
6070print "before updating: ", llda_model
61- update_labeled_documents = [("good perfect good good perfect good good perfect good ", ["positive"]),
62- ("bad bad down down bad", ["negative"]),
63- ("new example test example test example test example test", ["example", "test"])]
71+ update_labeled_documents = [("new example test example test example test example test", ["example", "test"])]
6472llda_model.update(labeled_documents=update_labeled_documents)
6573print "after updating: ", llda_model
6674
6775# train again
68- llda_model.training(iteration=10, log=True)
76+ # llda_model.training(iteration=10, log=True)
77+ while True:
78+ print("iteration %s sampling..." % (llda_model.iteration + 1))
79+ llda_model.training(1)
80+ print "after iteration: %s, perplexity: %s" % (llda_model.iteration, llda_model.perplexity)
81+ if llda_model.is_convergent:
82+ break
6983
7084# inference
7185# note: the result topics may be different for difference training, because gibbs sampling is a random algorithm
72- document = "test example llda model test example test example good perfect good perfect good perfect"
73- topics = llda_model.inference(document=document, iteration=10, times=10)
86+ document = "example llda model example example good perfect good perfect good perfect"
87+ # topics = llda_model.inference(document=document, iteration=10, times=10)
88+ topics = llda_model.inference_multi_processors(document=document, iteration=10, times=10)
7489print topics
7590
7691# save to disk
0 commit comments