def generate_random_state(self): # type: () -> SynState if self.init_states is None: positive_df = pandas_util.all_positive_rows_df( self.sent_pool_df, self.col_names.tag, cn.pos_tags) self.init_states = map( lambda (idx, text_state): cn.ss_type(idx, self.sent_pool_df, self.col_names), positive_df[self.col_names.text].iteritems()) return random.sample(self.init_states, 1)[0] # not used in hill climbing
def __init__(self, sent_df, col_names, init_text_state=None): # type: (pd.DataFrame, ColumnNames, str) -> None super(BestInstanceProblem, self).__init__() cn.inst_count += 1 self.sent_pool_df = sent_df self.col_names = col_names cn.add_experiment_param(cn.ss_type.__name__) if init_text_state is not None: init_row = sent_df[sent_df[col_names.text] == init_text_state] assert len(init_row) != 0, "init_text_state not in send_df" # initial_state is used in BestInstanceProblem self.initial_state = cn.ss_type(init_row.index[0], self.sent_pool_df, col_names) self.init_states = None