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))
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