Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions plsa-service/plsa/plsa.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,10 @@ def train(td,
axis1 = range(1, len(logL) + 1)
plt.plot(axis1, logL)
plt.savefig(logL_pic)
with open(logL_pic[:-4]+'.txt','w') as f:
for l in logL:
f.write(str(l))
f.write('\n')



Expand Down Expand Up @@ -327,6 +331,10 @@ def train(self, td, Z, maxiter=maxiter2, eps=eps2, folding_in=False,beta=beta2,m
plt.plot(axis1, logL_c_list)
# print('logL_pic=',self.logL_pic)
plt.savefig(self.logL_pic)
with open(logL_pic[:-4] + '.txt', 'w') as f:
for l in logL_c_list:
f.write(str(l))
f.write('\n')

return self.get_model()

Expand Down
10 changes: 5 additions & 5 deletions service_spec/topic_analysis.proto
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ message PLSARequest {
sint64 num_topics = 2;
sint64 topic_divider = 3;
sint64 maxiter = 4;
float beta = 5;
double beta = 5;
}


message FloatRow{

repeated float floatRow = 1;
repeated double doubleValue = 1;
}

message PLSAResponse{
Expand All @@ -25,9 +25,9 @@ message PLSAResponse{
repeated string docs_list = 3;
repeated string topics = 4;
repeated FloatRow topicByDocMatirx = 5;
repeated float topicProbabilities = 6;
repeated float wordByTopicConditional = 7;
repeated float logLikelihoods = 8;
repeated double topicProbabilities = 6;
repeated FloatRow wordByTopicConditional = 7;
repeated double logLikelihoods = 8;


}
Expand Down
6 changes: 6 additions & 0 deletions snet_test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,12 @@ def try_plsa():
print('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^')
print(resp.topicByDocMatirx)
print('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^')
print(resp.topicProbabilities)
print('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^')
print(resp.wordByTopicConditional)
print('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^')
print(resp.logLikelihoods)
print('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^')



Expand Down
36 changes: 27 additions & 9 deletions topic_analysis_grpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ def PLSA(self,request,context):
topics = f.read().splitlines()

topic_by_doc = []
word_by_topic_conditional = []
logLikelihoods = []
docs_list = []

with open(s.PLSA_PARAMETERS_PATH+'topic-by-doc-matirx.csv') as csv_file:
Expand All @@ -97,19 +99,35 @@ def PLSA(self,request,context):
docs_list = next(csv_reader)[1:]

for row in csv_reader:
topic_by_doc.append(topic_analysis_pb2.FloatRow(floatRow=list((np.array(row[1:])).astype(np.float))))
topic_by_doc.append(topic_analysis_pb2.FloatRow(doubleValue=list((np.array(row[1:])).astype(np.float))))

resp = topic_analysis_pb2.PLSAResponse(status=True,message='success',docs_list=docs_list,topics=topics,topicByDocMatirx=topic_by_doc)
# resp = topic_analysis_pb2.PLSAResponse(status=True,message='success',topics=topics)

with open(s.PLSA_PARAMETERS_PATH+'topic_probability_pz','r') as f:
topic_probabilities = f.read().splitlines()

topic_probabilities = list((np.array(topic_probabilities)).astype(np.float))

# resp = network_analytics_bipartite_pb2.BipartiteGraphResponse(status=ret[0], message=ret[1], output=graph_resp)
#
#
# print('status:',resp.status)
# print('message:',resp.message)
# print('Waiting for next call on port 5000.')

with open(s.PLSA_PARAMETERS_PATH+'word_by_topic_conditional.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')

for row in csv_reader:
word_by_topic_conditional.append(topic_analysis_pb2.FloatRow(doubleValue=list((np.array(row[:-1])).astype(np.float))))

with open(s.PLSA_PARAMETERS_PATH+'logL.txt','r') as f:
logLikelihoods = f.read().splitlines()

logLikelihoods = list((np.array(logLikelihoods)).astype(np.float))


resp = topic_analysis_pb2.PLSAResponse(status=True,message='success',docs_list=docs_list,topics=topics,topicByDocMatirx=topic_by_doc,topicProbabilities=topic_probabilities,wordByTopicConditional=word_by_topic_conditional,logLikelihoods=logLikelihoods)




print('status:',resp.status)
print('message:',resp.message)
print('Waiting for next call on port 5000.')

return resp

Expand Down