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)
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()
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)
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)