def train(self,training_raw,training_result,iteration=5): """ 训练 """ for it in range(iteration):#迭代整个语料库 eval=self.Eval()#测试用的对象 sn=0 for line,std in zip(open(training_raw),open(training_result)):#迭代每个句子 sn+=1 #if sn%10==0: # print('('+str(sn)+')',end='') # sys.stdout.flush() line=line.strip() std=std.split() y=std std=pre.gen_std(std) std=[t for _,t in sorted(list(std))] raw,s=self.pre(line) self.schema.candidates=s self.schema.features.candidates=s assert(len(s)==len(std)) _,hat_y=self._learn_sentence(raw,y) eval(y,hat_y) eval.print_result()#打印评测结果 self.actions.average(self.step)
def test(self,test_raw,test_result): """ 测试 """ eval=self.Eval([DiffToHTML(test_result+'.html')]) for line,std in zip(open(test_raw),open(test_result)):#迭代每个句子 line=line.strip() std=std.split() y=std std=pre.gen_std(std) std=[t for _,t in sorted(list(std))] raw,s=self.pre(line) self.schema.candidates=s self.schema.features.candidates=s assert(len(s)==len(std)) hat_y=self(raw) eval(y,hat_y) eval.print_result()#打印评测结果 return eval