Beispiel #1
0
def output_to_bits(filename):
    os.mkdir("bits")
    with open('bits/input', 'w') as inp, open('bits/output', 'w') as oup:
        cursor,conn = util.make_sqlite_cursor(filename)
        fields = []
        for feature_id, name in cursor.execute("select * from feature_name"):
            if feature_id in "respid,budget_F,step1_budget".split(","):
                continue
            # step 1 and 7 don't have value names, use numbers
            if feature_id == "step1":
                for i in range(1,10): # 9 motor choices
                    fields.append("step1="+str(i))
                continue
            if feature_id.startswith("s7_"):
                fields.append(feature_id+"=1")
                continue
            for val, in conn.cursor().execute("select value_id from value_name where feature_id='{}'".format(feature_id)):
                fields.append(feature_id+"="+str(val))
        fieldToInx=dict([(e,i) for (i,e) in enumerate(fields)])
        with io.open('bits/header', 'w', encoding='utf-8') as head:
            head.write(u"bit positions:\nby id:\n{}\nby names:\n{}".format(
                u"\n".join(fields), u"\n".join(map(lambda id: util.ele_to_str(filename, id), fields))))
        fieldCount = len(fields)
        conn.close()
        lastNum=None
        for car_id,transaction in util.read_baskets_from_sqlite(filename, budget=False):
            if car_id%1000==0: print(car_id)
            respondent = int((car_id-1)/4)
            car_num = ((car_id-1)%4) +1
            info = [0]*fieldCount
            for item in transaction:
                info[fieldToInx[item]] = 1
            if info[9:13] == [0,0,0,0]:
                # not configured, ignore
                continue
            if lastNum == None:
                pass
            elif car_id == lastNum + 1:
                oup.write("1\n")
            elif car_num == 1:
                oup.write("0\n")
            else:
                raise "wat"
            #if car_num != 4: inp.write('car {} of person {}: {}\n'.format(car_num, respondent,''.join(map(str,info))))
            if car_num != 4:
                inp.write(''.join(map(str,info)))
                inp.write('\n')
                lastNum = car_id
            else:
                lastNum = None
        oup.write("0\n") # last car does not have successor
Beispiel #2
0
algo = sys.argv[1]

transactions = []
calculate_interestingness = False

def filter_fun(feature_id, value_id):
    return True#feature_id.startswith("s7_")

def filter_fun_str(item):
    feat, val = item.split("=")
    val_id = int(val)
    return filter_fun(feat, val_id)

if from_sql:
    print("reading from sql", file=sys.stderr)
    transactions = [x for (car, x) in util.read_baskets_from_sqlite(db, false, filter_fun)]
else:
    print("reading from file", file=sys.stderr)
    for line in  open('baskets.basket'):
        transactions.append([x for x in line.rstrip('\n').split(',') if filter_fun_str(x) ])

trcount = len(transactions)
print(trcount)
transactions = filter(lambda x: len(x) >= 1, transactions)
print(len(transactions))

def ele_to_str(ele):
    global db
    return util.ele_to_str(db, ele)

sets = map(set, transactions)
Beispiel #3
0

def filter_fun(feature_id, value_id):
    return True  #feature_id.startswith("s7_")


def filter_fun_str(item):
    feat, val = item.split("=")
    val_id = int(val)
    return filter_fun(feat, val_id)


if from_sql:
    print("reading from sql", file=sys.stderr)
    transactions = [
        x for (car, x) in util.read_baskets_from_sqlite(db, false, filter_fun)
    ]
else:
    print("reading from file", file=sys.stderr)
    for line in open('baskets.basket'):
        transactions.append(
            [x for x in line.rstrip('\n').split(',') if filter_fun_str(x)])

trcount = len(transactions)
print(trcount)
transactions = filter(lambda x: len(x) >= 1, transactions)
print(len(transactions))


def ele_to_str(ele):
    global db