def constructTreeFromRulesFile(self, rulesFileP): ''' #----------------------------------------------------------- # rdrpostaggerv1.1: New implementation scheme: using FWObject # Build tree from file containing rules #----------------------------------------------------------- ''' self.root = Node(FWObject(False), "NN", None, None, None, [], 0) currentNode = self.root currentDepth = 0 rulesFile = open(rulesFileP, "r") lines = rulesFile.readlines() for i in (range(1, len(lines))): line = lines[i] depth = 0 for c in line: if c == '\t': depth = depth + 1 else: break line = line.strip() if len(line) == 0: continue temp = line.find("cc") if temp == 0: continue condition = getCondition(line.split(" : ", 1)[0].strip()) conclusion = getConclusion(line.split(" : ", 1)[1].strip()) node = Node(condition, conclusion, None, None, None, [], depth) #print line #print condition.toStr(), conclusion if depth > currentDepth: currentNode.exceptChild = node elif depth == currentDepth: currentNode.elseChild = node else: while currentNode.depth != depth: currentNode = currentNode.father; currentNode.elseChild = node node.father = currentNode; currentNode = node; currentDepth = depth;