def __init__(self, label, children): Tree.__init__(self, label, children) if len(children) > 1: self.max_depth = max([child.max_depth for child in children]) + 1 self.length = sum([child.length for child in children]) else: self.max_depth = 0 self.length = 1
def __init__(self, node, children=None): NLTKTree.__init__(self, node, children) self.num_subtrees = {} self.path_to_leaves = {} self.path_to_nodes = {} self.path_to_inner_nodes = {} self.path_to_inner_nodes_indices = {} # Pre-cache leaves lazily. These attributes will be set when needed. self.path_to_leaves_indices = None self.path_to_num_leaves = None self._leaves_cached = None self._leaf_to_index = None
def __init__(self, length, operators, digits): if length < 1: print 'whatup?' if length == 1: Tree.__init__(self, 'digit', [random.choice(digits)]) else: left = random.randint(1, length - 1) right = length - left children = [ mathExpression(l, operators, digits) for l in [left, right] ] operator = random.choice(operators) children.insert(1, Tree('operator', [operator])) Tree.__init__(self, operator, children)
def __init__(self, length, operators, digits): answer = [None] while answer[0] not in voc: tree = mathExpression(length, operators, even) answer = Tree('digit', [str(tree.solve())]) Tree.__init__(self, 'is', [tree, Tree('operator', ['is']), answer])