Example #1
0
def read_tree_file(treename, name):
    """read tree data from treename
    """
    leaf_to_path = {}
    att_tree = {}
    postfix = ".txt"
    treefile = open('gh/' + treename + postfix, 'rU')
    att_tree['*'] = GenTree('*')
    if __DEBUG:
        print "Reading Tree" + treename
    for line in treefile:
        # delete \n
        if len(line) <= 1:
            break
        line = line.strip()
        temp = line.split(';')
        # copy temp
        temp.reverse()
        for i, t in enumerate(temp):
            isleaf = False
            if i == len(temp) - 1:
                isleaf = True
            # try and except is more efficient than 'in'
            try:
                att_tree[t]
            except:
                att_tree[t] = GenTree(t, att_tree[temp[i - 1]], isleaf)
    if __DEBUG:
        print "Nodes No. = %d" % att_tree['*'].support
    treefile.close()
    return att_tree
Example #2
0
def read_tree_file(treename):
    """read tree data from treename
    """
    leaf_to_path = {}
    att_tree = {}
    prefix = 'data/informs_'
    postfix = ".txt"
    treefile = open(prefix + treename + postfix, 'rU')
    att_tree['*'] = GenTree('*')
    if __DEBUG:
        print "Reading Tree" + treename
    for line in treefile:
        # delete \n
        if len(line) <= 1:
            break
        line = line.strip()
        temp = line.split(';')
        # copy temp
        temp.reverse()
        for i, t in enumerate(temp):
            isleaf = False
            if i == len(temp) - 1:
                isleaf = True
            if t not in att_tree:
                # always satisfy
                att_tree[t] = GenTree(t, att_tree[temp[i - 1]], isleaf)
    if __DEBUG:
        print "Nodes No. = %d" % att_tree['*'].support
    treefile.close()
    return att_tree
def read_tree_file(tree_name):
    """read tree data from tree_name
    """
    leaf_to_path = {}
    att_tree = {}
    prefix = 'data/adult_'
    postfix = ".txt"
    tree_file = open(prefix + tree_name + postfix, 'rU')
    att_tree['*'] = GenTree('*')
    if __DEBUG:
        print "Reading Tree" + tree_name
    for line in tree_file:
        # delete \n
        if len(line) <= 1:
            break
        line = line.strip()
        levels = line.split(';')
        # copy levels
        levels.reverse()
        for level, level_value in enumerate(levels):
            is_leaf = False
            if level == len(levels) - 1:
                is_leaf = True
            # try and except is more efficient than 'in'
            if level_value not in att_tree:
                att_tree[level_value] = GenTree(level_value, att_tree[levels[level - 1]], is_leaf)
    if __DEBUG:
        print "Nodes No. = %d" % att_tree['*'].support
    tree_file.close()
    return att_tree
def init():
    global ATT_TREE
    ATT_TREE = []
    tree_temp = {}
    tree = GenTree('*')
    tree_temp['*'] = tree
    lt = GenTree('1,5', tree)
    tree_temp['1,5'] = lt
    rt = GenTree('6,10', tree)
    tree_temp['6,10'] = rt
    for i in range(1, 11):
        if i <= 5:
            t = GenTree(str(i), lt, True)
        else:
            t = GenTree(str(i), rt, True)
        tree_temp[str(i)] = t
    numrange = NumRange(['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
                        dict())
    ATT_TREE.append(tree_temp)
    ATT_TREE.append(numrange)
Example #5
0
def init_tree():
    global ATT_TREE
    ATT_TREE = {}
    root = GenTree('*')
    ATT_TREE['*'] = root
    lt = GenTree('A', root)
    ATT_TREE['A'] = lt
    ATT_TREE['a1'] = GenTree('a1', lt, True)
    ATT_TREE['a2'] = GenTree('a2', lt, True)
    rt = GenTree('B', root)
    ATT_TREE['B'] = rt
    ATT_TREE['b1'] = GenTree('b1', rt, True)
    ATT_TREE['b2'] = GenTree('b2', rt, True)
Example #6
0
def init_tree():
    global ATT_TREE, NUM_RANGE
    ATT_TREE = {}
    root = GenTree('*')
    ATT_TREE['*'] = root
    lt = GenTree('A', root)
    ATT_TREE['A'] = lt
    ATT_TREE['a1'] = GenTree('a1', lt, True)
    ATT_TREE['a2'] = GenTree('a2', lt, True)
    rt = GenTree('B', root)
    ATT_TREE['B'] = rt
    ATT_TREE['b1'] = GenTree('b1', rt, True)
    ATT_TREE['b2'] = GenTree('b2', rt, True)
    NUM_RANGE = NumRange(['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
                         dict())
Example #7
0
import unittest

from top_down_greedy_anonymization import Top_Down_Greedy_Anonymization, Partition
from utils.read_data import read_data, read_tree
from models.gentree import GenTree
from models.numrange import NumRange
from utils.utility import cmp_str, get_num_list_from_str
import random

GL_K = 10
ROUNDS = 3
QI_LEN = 5
QI_RANGE = [10, 10, 10, 10, 9]
# Build a GenTree object
TREE_TEMP = {}
tree = GenTree('*')
TREE_TEMP['*'] = tree
lt = GenTree('1,5', tree)
TREE_TEMP['1,5'] = lt
rt = GenTree('6,10', tree)
TREE_TEMP['6,10'] = rt
for i in range(1, 11):
    if i <= 5:
        t = GenTree(str(i), lt, True)
    else:
        t = GenTree(str(i), rt, True)
    TREE_TEMP[str(i)] = t
ATT_TREES = [
    TREE_TEMP, TREE_TEMP, TREE_TEMP, TREE_TEMP,
    NumRange([str(t) for t in range(1, 11)], dict())
]