#!/usr/bin/python import os import sys import pickle prun = 0 runs = {} labels = {} users = pickle.load((open(sys.argv[3]))) recs = map(lambda x:0,users) for line in open(sys.argv[1]): line = line.split(',') try: run = int(line[2]) except: continue user = line[1] if run not in runs: runs[run] = 0 labels[run] = users.index(user) + 1 for line in open(sys.argv[2]): line = line.split(',') try: run = int(line[2]) except: continue user = line[1] rec = ' '.join(line[6].split('@')[0].split('_')) if run != prun and prun > 0: runs[prun] = recs.index(max(recs))+1 recs = map(lambda x:0,users) recs[users.index(rec)] += 1 prun = run t=0.0 tp=0.0 fp=0.0 fn=0.0 for (k,v) in runs.items(): print v,labels[k] if v == 0: fn += 1 elif v != labels[k]: fp += 1 else: tp += 1 t += 1 print runs[167],labels[167] print tp,fp,fn print("True positives: ",tp/t) print("False positives: ",fp/t) print("False negatives: ",fn/t)