def diversified_ranking(self): """use diversified ranking method to rank the charts""" self.error_throw('rank') instance = Instance(self.table_name) instance.addTable( Table(instance, False, '', '')) # 'False'->transformed '',''->no describe yet if self.import_method == 'mysql': instance = self.mysql_handle(instance) elif self.import_method == 'csv': instance = self.csv_handle(instance) instance = self.rank_generate_all_views(instance) instance.getM() instance.getW() instance.getScore() self.instance = instance self.rank_method = methods_of_ranking[3] return
instance.tuple_num = instance.tables[0].tuple_num = cur.execute(sys.argv[2]) instance.tables[0].D = map(list, cur.fetchall()) cur.close() conn.close() #get all views and their score instance.addTables(instance.tables[0].dealWithTable()) begin_id = 1 while begin_id < instance.table_num: instance.tables[begin_id].dealWithTable() begin_id += 1 if instance.view_num == 0: print '{}' sys.exit(0) instance.getM() instance.getW() instance.getScore() #store views into database #new_table_name='#'.join(sys.argv[1:]) #cur.execute('create table `'+new_table_name+'`(id int,data JSON)') order1 = order2 = 1 old_view = '' for i in range(instance.view_num): view = instance.tables[instance.views[i].table_pos].views[ instance.views[i].view_pos] classify = str([]) if view.series_num > 1: classify = str([v[0] for v in view.table.classes]).replace( "u'", '\'').decode("unicode-escape").replace("'", '"') x_data = str(view.X)