def create_file_input(self, message): fileUtil = FileUtil() lst_char = message[:] all_message = '' for j in range(len(lst_char)): if j == 0: ans = 'B' else: ans = 'I' message_model = lst_char[j]+' '+self.get_group(lst_char[j])+' '+ans+'\n' all_message = all_message+message_model fileUtil.write_newfile('crf.test.data', all_message)
def crfpp(self, msg): crf = CRF() fileUtil = FileUtil() crf.create_file_input(msg) os.system('crf_test -m model1 crf.test.data > crf.result') lst = fileUtil.read_file('crf.result') # lst = [a for a in lst if a != u'\n'] # str_ans = reduce(lambda x,y:x+y, [a.split('\t')[0] for a in lst]) # ans = reduce(lambda x,y:x+y, [a.split('\t')[3][:-1] for a in lst]) # lst_col3 = [a.split('\t')[3][:-1] for a in lst] lst_col3, str_ans = self.process_ans(lst) lst_ans = [n for (n, e) in enumerate(lst_col3) if e == 'B'] result_lst = [] for i in range(len(lst_ans) - 1): a = lst_ans[i] b = lst_ans[i + 1] result_lst.append(str_ans[a:b]) result_lst.append(str_ans[b:len(str_ans)]) return result_lst
def create_file_output(self, message): result = [] fileUtil = FileUtil()