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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
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()