def fit(self, stable_antecedents: List[str], flexible_antecedents: List[str], consequent: str, conf: float, supp: float, desired_classes: List[str] = None, desired_changes: List[list] = None, is_nan: bool = False, is_reduction: bool = True, min_stable_antecedents: int = 1, min_flexible_antecedents: int = 1): """ Get action rules. Define antecedent and consequent. - stable_antecedents - List of column names. - flexible_antecedents - List of column names. - consequent - Name of column. Confidence and support. - conf - value in % for confidence of classification rules. - supp - value in % for support of classification rules. Desired classes or desired changes must be entered. - desired_classes - List of decision states. For example ["1"]. DEFAULT: None - desired_changes - List of desired changes. For example [["0", "1"]]. DEFAULT: None Should nan values be used. - is_nan - True means nan values are used, False means nan values are not used. DEFAULT: FALSE Should the reduction table be used. - is_reduction - is reduction table used DEFAULT: TRUE Minimal number of stable and flexible couples - min_stable_antecedents - min. stable couples. DEFAULT: 1 - min_flexible_antecedents - min. flexible couples. DEFAULT: 1 """ if bool(desired_classes) != bool(desired_changes): desired_state = DesiredState(desired_classes=desired_classes, desired_changes=desired_changes) else: raise Exception( "Desired classes or desired changes must be entered") antecedents = stable_antecedents + flexible_antecedents self.decisions.prepare_data_fim(antecedents, consequent) self.decisions.fit_fim_apriori(conf=conf, support=supp) self.decisions.generate_decision_table() stable = self.decisions.decision_table[stable_antecedents] flex = self.decisions.decision_table[flexible_antecedents] target = self.decisions.decision_table[[consequent]] supp = self.decisions.support conf = self.decisions.confidence reduced_tables = Reduction(stable, flex, target, desired_state, supp, conf, is_nan) if is_reduction: reduced_tables.reduce() action_rules = ActionRules( reduced_tables.stable_tables, reduced_tables.flexible_tables, reduced_tables.decision_tables, desired_state, reduced_tables.supp, reduced_tables.conf, is_nan, min_stable_antecedents, min_flexible_antecedents) action_rules.fit() self.action_rules = action_rules.action_rules
def getSummary(): #actually calculate summary opLabel.pack() opEntry.pack() opEntry.config(state='normal' , bg="white" , fg="black") opEntry.delete(1.0,END) opEntry.insert(INSERT,"Generating Summary...") global endTime1,endTime2 startTime = time.time() text = ipEntry.get("1.0", END) ps = PorterStemmer() red_ra=redRatio.get()/100.00 if var1.get(): words = text.split() for w in words: text += ps.stem(w) text += " " if var6.get()==1: r = Reduction() #object of class Red.. reduced_text = r.reduce(text, red_ra) op=' '.join(reduced_text) global opTA opTA=op elif var6.get()==2: m = modelVC.summary() op = m.summarize(text,red_ra) global opPA opPA=op if var2.get()==1: op=shortForm.shortF(op) opEntry.delete(1.0,END) opEntry.insert(INSERT, op) if var6.get()==1: endTime1 = time.time() - startTime print("Time taken: %f secs" %endTime1) if var4.get(): tkMessageBox.showinfo("Statistics", "Time taken to complete: %f secs" %endTime) if var6.get()==2: endTime2 = time.time() - startTime print("Time taken: %f secs" %endTime2) if var4.get(): tkMessageBox.showinfo("Statistics", "Time taken to complete: %f secs" %endTime) if var3.get() == 1: file_f = open("log.txt", "a") lenText=len(text) file_f.write("\nInput length: %d" %lenText) lenText = len(op) file_f.write("\tSummary length: %d" % lenText) file_f.write('\nStemming: %d' %var1.get()) file_f.write('\tShort Forms: %d' %var2.get()) file_f.write('\tReduction Ratio: %d percent' % redRatio.get()) file_f.write('\tModel: %d ' % var6.get()) if var6.get()==1: file_f.write("\nTime taken: %f secs\n" %endTime1) if var6.get()==2: file_f.write("\nTime taken: %f secs\n" %endTime2) file_f.close()