Skip to content

Commit 5b2a1f3

Browse files
committed
ADD: usages of is_convergent and inference_multi_processors
1 parent f563ae7 commit 5b2a1f3

File tree

2 files changed

+39
-11
lines changed

2 files changed

+39
-11
lines changed

README.md

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,30 +47,45 @@ import model.labeled_lda as llda
4747
# data
4848
labeled_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)
5357
llda_model = llda.LldaModel(labeled_documents=labeled_documents)
5458
print 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
6070
print "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"])]
6472
llda_model.update(labeled_documents=update_labeled_documents)
6573
print "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)
7489
print topics
7590
7691
# save to disk

example/example.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@
1414
print llda_model
1515

1616
# training
17-
llda_model.training(iteration=10, log=True)
17+
# llda_model.training(iteration=10, log=True)
18+
while True:
19+
print("iteration %s sampling..." % (llda_model.iteration + 1))
20+
llda_model.training(1)
21+
print "after iteration: %s, perplexity: %s" % (llda_model.iteration, llda_model.perplexity)
22+
if llda_model.is_convergent:
23+
break
1824

1925
# update
2026
print "before updating: ", llda_model
@@ -23,12 +29,19 @@
2329
print "after updating: ", llda_model
2430

2531
# train again
26-
llda_model.training(iteration=10, log=True)
32+
# llda_model.training(iteration=10, log=True)
33+
while True:
34+
print("iteration %s sampling..." % (llda_model.iteration + 1))
35+
llda_model.training(1)
36+
print "after iteration: %s, perplexity: %s" % (llda_model.iteration, llda_model.perplexity)
37+
if llda_model.is_convergent:
38+
break
2739

2840
# inference
2941
# note: the result topics may be different for difference training, because gibbs sampling is a random algorithm
3042
document = "example llda model example example good perfect good perfect good perfect"
31-
topics = llda_model.inference(document=document, iteration=10, times=10)
43+
# topics = llda_model.inference(document=document, iteration=10, times=10)
44+
topics = llda_model.inference_multi_processors(document=document, iteration=10, times=10)
3245
print topics
3346

3447
# save to disk

0 commit comments

Comments
 (0)