Exemplo n.º 1
0
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)
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
        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)
Exemplo n.º 5
0
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]
Exemplo n.º 6
0
# 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")

Exemplo n.º 7
0
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)