if options.rhs != None and ',' in options.rhs:
        rhs_list = [opt.strip() for opt in options.rhs.split(',')]
        rhs = frozenset(rhs_list)
        print(rhs)
    elif options.rhs != None:
        rhs = frozenset([options.rhs])
    else:
        rhs = frozenset([])

    print("""Parameters: \n - filePath: {} \n - mininum support: {} \n - mininum confidence: {} \n - rhs: {}\n""".\
          format(filePath,minSupp,minConf, rhs))

    # Run and print
    objApriori = Apriori(minSupp, minConf)
    itemCountDict, freqSet = objApriori.executeApriori(filePath)

    for key, value in freqSet.items():
        print('frequent {}-term set:'.format(key))
        print('-' * 20)
        for itemset in value:
            print(list(itemset))
        print()

    # Return rules with regard of `rhs`
    rules = objApriori.getSpecRules(rhs)
    print('-' * 20)
    print('rules refer to {}'.format(list(rhs)))
    for key, value in rules.items():
        print('{} -> {}: {}'.format(list(key), list(rhs), value))
예제 #2
0
def execute_apriori():
    if request.method == 'POST':
        # print(request.form.get('support_val'))
        # print(request.form.get('confidence_val'))
        # print(request.form.get('rhsValue'))
        # print(request.form.get('filename'))

        minSupp = float(request.form.get('support_val'))
        minConf = float(request.form.get('confidence_val'))
        rhsValue = request.form.get('rhsValue')
        filename = request.form.get('filename')

        filePath = './' + filename
        # Run Apriori algorithm here and respond back the rules
        return_obj = dict()

        # Come up with the reaponse data type to wrap all data to respond
        if rhsValue != None and ',' in rhsValue:
            rhs_list = [opt.strip() for opt in rhsValue.split(',')]
            rhs = frozenset(rhs_list)

            print(rhs)
        elif rhsValue != None:
            rhs = frozenset([rhsValue])
        else:
            rhs = frozenset([])

        print("""Parameters: \n - filePath: {} \n - mininum support: {} \n - mininum confidence: {} \n - rhs: {}\n""".\
            format(filePath,minSupp,minConf, rhs))

        # Run and print
        objApriori = Apriori(minSupp, minConf)
        # freqSet is actually dictionary
        itemCountDict, freqSet = objApriori.executeApriori(filePath)

        # print('------itemCountDict-------')
        # print(itemCountDict)
        # print('-------freqSet-----------')
        # print(freqSet)
        frequencyObj = {}

        for key, value in freqSet.items():
            temp = []
            print('frequent {}-term set:'.format(key))
            print('-' * 20)
            for itemset in value:
                print(list(itemset))
                temp.append(list(itemset))
            frequencyObj[key] = temp

        return_obj['frequencySetInfo'] = frequencyObj

        # Return rules with regard of `rhs`
        rules = objApriori.getSpecRules(rhs)
        print('-' * 20)
        print('rules refer to {}'.format(list(rhs)))

        rulesObj = {}
        count = 1
        for key, value in rules.items():
            rulesObj[count] = [list(key), value]
            print('{} -> {}: {}'.format(list(key), list(rhs), value))

            count += 1

        return_obj['rules'] = rulesObj

        print(return_obj)

        return_string = json.dumps(return_obj)

        return return_string