def GenerateRules(self, largeItemsets): """Generate rules. gen_rules not really as seen in the Agrawal paper, but similar. largeItemsets -- large itemsets """ psi = pManager.manager.GetStatisticsInterface() for itemset in largeItemsets.GetList(): lUrls = itemset.GetUrls() iCount = itemset.GetCount() for url in lUrls: # create new rule rule = cRule.cRule() # url is consequent rule.SetConsequent(url) # all other urls in lUrls are antecedents lAnts = lUrls[:] index = lAnts.index(url) del lAnts[index] rule.SetAntecedents(lAnts) # FIXME XXX only sets count of itemsets, not real # support or confidence rule.SetSupport(iCount) psi.AddRule(rule)
def SetElement(self, contEl): """Read elements into internal representation. contEl -- elements """ foo = cDOM.cDOM() dAttrs, lEls = foo.GetElementContainerContent(contEl, 'rules', None) for el in lEls: rule = cRule.cRule() rule.SetElement(el) self.lRules.append(rule)
def SetElements(self, lEls): """Read elements into internal representation. lEls -- elements <rule confidenceCount="74" supportCount="45"> <antecedent>http://slashdot.org</antecedent> ... </rule> """ for el in lEls: rule = cRule.cRule() rule.SetElement(el) self.lData.append(rule)
def test(): """Built-in test method for this class.""" assos = cRules() assos.OpenFile('/tmp/foo.xml') urltuple = urlparse.urlparse("http://slashdot.org") urltuple2 = urlparse.urlparse("http://harth.org") # add urls in tuple notation rule = cRule.cRule() rule.SetSupport(1) rule.SetConfidence(2) rule.SetAntecedents([urltuple,urltuple2]) rule.SetConsequent(urltuple) assos.AddRule(rule) # add urls in tuple notation rule = cRule.cRule() rule.SetSupport(1) rule.SetConfidence(200) rule.SetAntecedents([urltuple2,urltuple2]) rule.SetConsequent(urltuple2) assos.AddRule(rule) assos.Print() assos.CloseFile() assos2 = cRules() assos2.OpenFile('/tmp/foo.xml') assos2.Print() assos2.file.Print() assos2.CloseFile()