Exemplo n.º 1
0
 def Query(self):
     self.dir_name = self.ann_combobox.get()
     file_list = os.listdir('./Multi_Annotator/' + self.dir_name)
     file_num = len(file_list)
     result_matrix = np.ones((file_num, 2))
     for idx in range(file_num):
         temp1, temp2 = utils.getNum('./Multi_Annotator/' + self.dir_name +
                                     '/' + file_list[idx])
         result_matrix[idx][0] = temp2
         result_matrix[idx][1] = temp1
     list_matrix = utils.Matrix2List(result_matrix)
     self.table3 = ttk.Treeview(self.win2,
                                show="headings",
                                columns=['File', 'Certain',
                                         'Uncertain'])  # 列数 是否显示表头
     self.table3.column('File', anchor='center')
     self.table3.column('Certain', anchor='center')
     self.table3.column('Uncertain', anchor='center')
     self.table3.heading("File", text="File")
     self.table3.heading("Certain", text="Certain")
     self.table3.heading("Uncertain", text="Uncertain")
     self.table3.grid(row=1, column=0, columnspan=3, sticky=NSEW, rowspan=4)
     self.vbar = Scrollbar(self.win2,
                           orient=VERTICAL,
                           command=self.table3.yview)
     self.vbar.grid(row=1, column=4, sticky=NSEW, rowspan=4)
     self.table3.configure(yscrollcommand=self.vbar.set)
     for idx in range(file_num):
         self.table3.insert("",
                            idx,
                            values=[file_list[idx]] + list_matrix[idx])
     self.table3.bind("<Control-a>", self.ManModify)
Exemplo n.º 2
0
 def SA(self):
     dirs = utils.Check()
     ann_num = [len(os.listdir('./Multi_Annotator/' + i)) for i in dirs]
     if len(set(ann_num)) != 1:
         tkinter.messagebox.showerror('错误', '标注者文件数目不同')
     # 不确定实体统计
     Annotator_num = len(dirs)
     File_num = list(ann_num)[0]
     result_matrix = np.ones((File_num + 1, Annotator_num + 1))
     for idy in range(Annotator_num):
         files = os.listdir('./Multi_Annotator/' + dirs[idy])
         for idx in range(len(files)):
             tmp1, tmp2 = utils.getNum(path='./Multi_Annotator/' +
                                       dirs[idy] + '/' + files[idx])
             # print('./Multi_Annotator/'+dirs[idy]+'/'+files[idx])
             # print(tmp1,tmp2)
             result_matrix[idx][idy] = tmp1
     # 统计sum
     for idy in range(Annotator_num):
         temp = 0
         for idx in range(File_num):
             temp += result_matrix[idx][idy]
         result_matrix[File_num][idy] = temp
     # 求mean
     for idx in range(File_num):
         temp = 0
         for idy in range(Annotator_num):
             temp += result_matrix[idx][idy]
         result_matrix[idx][Annotator_num] = int(temp / Annotator_num)
     file_list = os.listdir('./Multi_Annotator/' + dirs[0])
     list_matrix = utils.Matrix2List(result_matrix)
     self.ChildWindow(dirs, file_list, list_matrix)
 def next(self, instance, input):
     print(input)
     if input is None or input == '':
         return UnknownAnswer()
     else:
         answer = utils.getNum(input)
         if answer == '' or answer == ' ':
             return UnknownAnswer()
         instance.group_size = int(answer)
         return CheckGroup()
Exemplo n.º 4
0
 def SA(self):
     dirs = apputils.Check()
     ann_num = [len(os.listdir('./Multi_Annotator/' + i)) for i in dirs]
     if len(set(ann_num)) != 1:
         tkinter.messagebox.showerror('错误', '标注者文件数目不同')
     # 不确定实体统计
     Annotator_num = len(dirs)
     File_num = list(ann_num)[0]
     uncertain_matrix = np.ones((File_num + 1, Annotator_num + 1))
     certain_matrix = np.ones((File_num + 1, Annotator_num + 1))
     for idy in range(Annotator_num):
         files = os.listdir('./Multi_Annotator/' + dirs[idy])
         for idx in range(len(files)):
             tmp1, tmp2 = apputils.getNum(path='./Multi_Annotator/' +
                                          dirs[idy] + '/' + files[idx])
             uncertain_matrix[idx][idy] = tmp1
             certain_matrix[idx][idy] = tmp2
     # 统计sum
     for idy in range(Annotator_num):
         temp1 = 0
         temp2 = 0
         for idx in range(File_num):
             temp1 += uncertain_matrix[idx][idy]
             temp2 += certain_matrix[idx][idy]
         uncertain_matrix[File_num][idy] = temp1
         certain_matrix[File_num][idy] = temp2
     # 求mean
     for idx in range(File_num):
         temp1 = 0
         temp2 = 0
         for idy in range(Annotator_num):
             temp1 += uncertain_matrix[idx][idy]
             temp2 += certain_matrix[idx][idy]
         uncertain_matrix[idx][Annotator_num] = int(temp1 / Annotator_num)
         certain_matrix[idx][Annotator_num] = int(temp2 / Annotator_num)
     file_list = os.listdir('./Multi_Annotator/' + dirs[0])
     un_list_matrix = apputils.Matrix2List(uncertain_matrix)
     cer_list_matrix = apputils.Matrix2List(certain_matrix)
     self.ChildWindow(dirs, file_list, un_list_matrix, cer_list_matrix)
Exemplo n.º 5
0
        directoryName = os.path.join(os.path.join(
            'レース分析', split_detail[0] + split_detail[1].zfill(2) + split_detail[2].zfill(2)), race + race_name)
        os.makedirs(directoryName, exist_ok=True)
        print(race)
        race_level = getLevel(str(race_data.find(class_='RaceData02')))
        textFileName = 'レース分析.txt'
        with open(os.path.join(directoryName, textFileName), 'w') as f:
            f.write(link + '\n')
        race_data01_class = str(race_data.find_all(class_='RaceData01')).split('m')[0]
        distance = int(race_data01_class[-4:])
        course = race_data01_class[-5]
        if course == '障':
            continue
        horse_tag_list = race_data.find_all(class_='HorseName')
        weight_list = race_data.select('td[class="Txt_C"]')
        link = link.replace('shutuba', 'data_top')
        track_list = ['札幌', '函館', '福島', '新潟', '東京', '中山', '中京', '京都', '阪神', '小倉']
        with open(os.path.join(directoryName, '平均指数表.csv'), 'w', newline='', encoding='cp932') as f:
            writer = csv.writer(f)
            writer.writerow(['馬名', '分析レース数', '平均トータル指数', '平均先行指数', '平均スタミナ指数', '平均上がり指数', '高速平均トータル指数', '中速平均トータル指数', '低速平均トータル指数',
                             '枠複勝率良', '種牡馬複勝率良', '枠複勝率稍', '種牡馬複勝率稍', '枠有利度重', '種牡馬有利度重', '枠有利度不', '種牡馬有利度不'])
        for i, horse_tag in enumerate(horse_tag_list):
            link = getLink(horse_tag)
            horse_name = getTitle(horse_tag)
            if i != 0:
                horse_weight = getRowElement(weight_list[i - 1], 0)[1]
                num = getNum(i, len(horse_tag_list) - 1)
            if link[0] and horse_name[0]:
                calc(directoryName, distance, course, horse_name[1], link[1], track_list[int(
                    trackId) - 1], num, float(horse_weight), race_level)