def get_bot_response(): userText = request.args.get('msg') userText = userText.lower() try: return str(mapping(userText)) except Exception as e: return "I am having trouble understanding. Please refine your query ! <br> " + str( e)
class Order(object): steps = { 'preproccessing': preproccessing(), 'map': mapping(), 'score': metric(), 'SVM': SVM(), } def __init__(self, start_proccess): self.start_proccess = start_proccess def next_proccess(self, proccess_name): return Order.proccess.get(proccess_name) def preproccessing(self): return self.next_proccess(self.start_proccess)
def get_sentences(_path, labelpath, corpuspath, maptype=True): FLAGMODE = False if "SARD" in _path: FLAGMODE = True for filename in os.listdir(_path): if (filename.endswith(".txt") is False): continue if filename == "error.txt": continue print(filename) filepath = os.path.join(_path, filename) f1 = open(filepath, 'r') if FLAGMODE: slicelists = f1.read().split("------------------------------") else: slicelists = f1.read().split("-------------------------") f1.close() if slicelists[0] == '': del slicelists[0] if slicelists[-1] == '' or slicelists[-1] == '\n' or slicelists[ -1] == '\r\n': del slicelists[-1] lastprogram_id = 0 program_id = 0 index = -1 file_name = 0 slicefile_corpus = [] slicefile_labels = [] slicefile_focus = [] slicefile_func = [] slicefile_filenames = [] focuspointer = None for slicelist in slicelists: slice_corpus = [] focus_index = 0 flag_focus = 0 index = index + 1 sentences = slicelist.split('\n') if sentences[0] == '\r' or sentences[0] == '': del sentences[0] if sentences == []: continue if sentences[-1] == '': del sentences[-1] if sentences[-1] == '\r': del sentences[-1] label = int(sentences[-1]) focuspointer = sentences[0].split(" ")[-2:] sliceid = index file_name = sentences[0] if FLAGMODE: program_id = sentences[0].split(" ")[1].split( '/')[5] + sentences[0].split(" ")[1].split( '/')[6] + sentences[0].split(" ")[1].split('/')[7] else: program_id = sentences[0].split(" ")[1].split("/")[7] if lastprogram_id == 0: lastprogram_id = program_id if not (lastprogram_id == program_id): folder_path = os.path.join(corpuspath, str(lastprogram_id)) savefilename = folder_path + '/' + filename[:-4] + '.pkl' if lastprogram_id not in os.listdir(corpuspath): os.mkdir(folder_path) if savefilename not in os.listdir(folder_path): f1 = open(savefilename, 'wb') pickle.dump([ slicefile_corpus, slicefile_labels, slicefile_focus, slicefile_func, slicefile_filenames ], f1) else: f1 = open(savefilename, 'rb') data = pickle.load(f1) f1.close() f1 = open(savefilename, 'wb') pickle.dump([ slicefile_corpus + data[0], slicefile_labels + data[1], slicefile_focus + data[2], slicefile_func + data[3], slicefile_filenames + data[4] ], f1) f1.close() slicefile_corpus = [] slicefile_focus = [] slicefile_labels = [] slicefile_filenames = [] slicefile_func = [] lastprogram_id = program_id sentences = sentences[1:] for sentence in sentences: if sentence.split( " ")[-1] == focuspointer[1] and flag_focus == 0: flag_focus = 1 sentence = ' '.join(sentence.split(" ")[:-1]) start = str.find(sentence, r'printf("') if start != -1: start = str.find(sentence, r'");') sentence = sentence[:start + 2] fm = str.find(sentence, '/*') if fm != -1: sentence = sentence[:fm] else: fm = str.find(sentence, '//') if fm != -1: sentence = sentence[:fm] sentence = sentence.strip() list_tokens = create_tokens(sentence) if flag_focus == 1: if "expr" in filename: focus_index = focus_index + int(len(list_tokens) / 2) flag_focus = 2 slicefile_focus.append(focus_index) else: if focuspointer[0] in list_tokens: focus_index = focus_index + list_tokens.index( focuspointer[0]) flag_focus = 2 slicefile_focus.append(focus_index) else: if '*' in focuspointer[0]: if focuspointer[0] in list_tokens: focus_index = focus_index + list_tokens.index( focuspointer[0].replace('*', '')) flag_focus = 2 slicefile_focus.append(focus_index) else: flag_focus = 0 else: flag_focus = 0 if flag_focus == 0: focus_index = focus_index + len(list_tokens) if maptype: slice_corpus.append(list_tokens) else: slice_corpus = slice_corpus + list_tokens if flag_focus == 0: continue slicefile_labels.append(label) slicefile_filenames.append(file_name) if maptype: slice_corpus, slice_func = mapping(slice_corpus) slice_func = list(set(slice_func)) if slice_func == []: slice_func = ['main'] sample_corpus = [] for sentence in slice_corpus: list_tokens = create_tokens(sentence) sample_corpus = sample_corpus + list_tokens slicefile_corpus.append(sample_corpus) slicefile_func.append(slice_func) else: slicefile_corpus.append(slice_corpus) folder_path = os.path.join(corpuspath, str(lastprogram_id)) savefilename = folder_path + '/' + filename[:-4] + '.pkl' if lastprogram_id not in os.listdir(corpuspath): os.mkdir(folder_path) if savefilename not in os.listdir(folder_path): f1 = open(savefilename, 'wb') pickle.dump([ slicefile_corpus, slicefile_labels, slicefile_focus, slicefile_func, slicefile_filenames ], f1) else: f1 = open(savefilename, 'rb') data = cPickle.load(f1) f1.close() f1 = open(savefilename, 'wb') pickle.dump([ slicefile_corpus + data[0], slicefile_labels + data[1], slicefile_focus + data[2], slicefile_func + data[3], slicefile_filenames + data[4] ], f1) f1.close()
line2 = indexall[line][1] for i in xrange(1000): if text[line2-i].startswith('# brcond'): para1 = text[line2-i].split()[2].split(',')[0] para2 = text[line2-i].split()[2].split(',')[1] #print out the result, the line begins at 0 print line2-i,para1 print line2-i,para2 break elif text[line2-i].startswith('@'): break print 'ERROR!!!' SourceFile = "./qemu019_5/qemu019_5_ins2.log" BrcondFile = "./qemu019_5/diff_line_5.txt" f0 = open(SourceFile) text = f0.readlines() f0.close() f1 = open(BrcondFile) lines = f1.readlines() f1.close() indexall = mapping(text) get_brcond_para(lines,text,indexall)
from mapping import * DataSource = "./qemu019_5/qemu019_5_ins2.log" f = open(DataSource, "r") text = f.readlines() f.close() index = {} index = backmapping(text) index2 = mapping(text) print index[245] print index[254] print index2[6]
# print(lensamsung(dict_data['samsung'])) # each brand pattern_dict = {} for brand in arr_brand: pattern_dict[brand] = [] for name in dict_data[brand]: product = {} product['pattern_name'] = name for rom in set_rom: product['rom'] = rom for ram in set_ram: product['ram'] = ram pattern_dict[brand].append(product) # print(len(pattern_dict['nokia'])) pattern_lazada = mapping('aliscrapy/data_b4/tgdd.json') # # print(pattern_lazada) # partern_tgdd = mapping('aliscrapy/data_b4/tgdd.json') # # print(partern_tgdd) def compare(dict_product_a, dict_product_b): if dict_product_a['pattern_name'] == dict_product_b['pattern_name']: print("trung ten", dict_product_a, "\n", dict_product_b) if dict_product_a['rom'] == dict_product_b['rom']: print("trung", dict_product_a, "\n", dict_product_b) else: pass # print("cho no khac nhau")
DataSource = "./qemu019_5/qemu019_5_ins.log" f = open(DataSource, "r") text = f.readlines() f.close() BlockSource = "./qemu019_5/qemu019_5_slicing_cut_block.log" f = open(BlockSource, "r") text2 = f.readlines() f.close() index = mapping(text) #index2 = backmapping(text) text3 = [] for line in text2: tmp = index[int(line)] #tuple text3.append(text[tmp[0]-1]) for i in xrange(tmp[0],tmp[1]+1): text3.append(text[i]) f2 = open("./qemu019_5/qemu019_5_subset2.log","w") for line in text3: f2.write(line)