Example #1
0
 def _predict(self,text_list):
     if type(text_list)==type(""):
         text_list=[text_list]
     text_list = CategoryDataUtils.textListPreprocess(text_list) #clean str 
     vec=np.array(list(self.vocabproc.transform(text_list))) 
     feed_dict={
         self.rcnn.input_text: vec,
         self.rcnn.dropout_keep_prob:1.0 
         }
     predictions,prob = self.sess.run([self.rcnn.predictions,self.rcnn.prob], feed_dict)
     result=[]
     for item in prob:
         cur_article={}
         for i in range(len(item)):
             cur_article[self.idx2cat[i]]=item[i]
         result.append(cur_article)
     return result 
Example #2
0
 def predict_split(self,text_list):
     if type(text_list)==type(""):
         text_list=[text_list]
     text_list = CategoryDataUtils.textListPreprocess(text_list) #clean str 
     _vec=list(self.vocabproc.transform(text_list))
     partNum=1
     partSize=int(400/partNum)
     vec=[]
     for item in _vec: 
         for i in range(partNum):
             tmp=item.copy()
             for j in range(400):
                 if j>partSize*i and j< partSize*(i+1):
                     tmp[j]=0 
             vec.append(tmp)
     vec=np.array(vec)
     print(len(vec))
     result=[]
     print("[*]transform success");
     for i in range(0,len(vec),500):
         feed_dict={
             self.rcnn.input_text: vec[i:i+500],
             self.rcnn.dropout_keep_prob:1.0 
             }
         predictions,prob = self.sess.run([self.rcnn.predictions,self.rcnn.prob], feed_dict) 
         for item in prob:
             cur_article={}
             for j in range(len(item)):
                 cur_article[self.idx2cat[j]]=item[j]
             result.append(cur_article)
         print("[*]progress:%d/%d" %(i,len(vec)))
     #merge
     _result=[]
     for i in range(0,len(result),partNum):
         _result.append(merge_result_mean(result[i:i+partNum]))
         
     return _result