def get_curr_first_prev_last_parse_path(arg_clauses, clause_index, parse_dict): DocID = arg_clauses.DocID sent_index = arg_clauses.sent_index if clause_index - 1 < 0: return "NONE" parse_tree = parse_dict[DocID]["sentences"][sent_index]["parsetree"].strip( ) syntax_tree = Syntax_tree(parse_tree) curr_first_index = arg_clauses.clauses[clause_index][0][0] prev_last_index = arg_clauses.clauses[clause_index - 1][0][-1] curr_first_node = syntax_tree.get_leaf_node_by_token_index( curr_first_index) prev_last_node = syntax_tree.get_leaf_node_by_token_index(prev_last_index) path = syntax_tree.get_node_to_node_path(curr_first_node, prev_last_node) if path.find("<") != -1: path_1 = path[:path.find("<")] path_2 = path[path.find("<"):] return util.get_compressed_path_tag( path_1, ">") + util.get_compressed_path_tag(path_2, "<") else: return util.get_compressed_path_tag(path, ">")
def get_curr_first_prev_last_parse_path(arg_clauses, clause_index, parse_dict): DocID = arg_clauses.DocID sent_index = arg_clauses.sent_index if clause_index - 1 < 0: return "NONE" parse_tree = parse_dict[DocID]["sentences"][sent_index]["parsetree"].strip() syntax_tree = Syntax_tree(parse_tree) curr_first_index = arg_clauses.clauses[clause_index][0][0] prev_last_index = arg_clauses.clauses[clause_index - 1][0][-1] curr_first_node = syntax_tree.get_leaf_node_by_token_index(curr_first_index) prev_last_node = syntax_tree.get_leaf_node_by_token_index(prev_last_index) return syntax_tree.get_node_to_node_path(curr_first_node, prev_last_node)
def get_curr_first_prev_last_parse_path(arg_clauses, clause_index, parse_dict): DocID = arg_clauses.DocID sent_index = arg_clauses.sent_index if clause_index - 1 < 0: return "NONE" parse_tree = parse_dict[DocID]["sentences"][sent_index]["parsetree"].strip( ) syntax_tree = Syntax_tree(parse_tree) curr_first_index = arg_clauses.clauses[clause_index][0][0] prev_last_index = arg_clauses.clauses[clause_index - 1][0][-1] curr_first_node = syntax_tree.get_leaf_node_by_token_index( curr_first_index) prev_last_node = syntax_tree.get_leaf_node_by_token_index(prev_last_index) return syntax_tree.get_node_to_node_path(curr_first_node, prev_last_node)
def get_curr_first_to_prev_last_path(arg_clauses, clause_index, parse_dict): if clause_index == 0: return "NULL" DocID = arg_clauses.DocID sent_index = arg_clauses.sent_index parse_tree = parse_dict[DocID]["sentences"][sent_index]["parsetree"].strip() syntax_tree = Syntax_tree(parse_tree) if syntax_tree.tree == None: return "NOTREE" curr_first_index = arg_clauses.clauses[clause_index][0][0] prev_last_index = arg_clauses.clauses[clause_index - 1][0][-1] curr_first_node = syntax_tree.get_leaf_node_by_token_index(curr_first_index).up prev_last_node = syntax_tree.get_leaf_node_by_token_index(prev_last_index).up path = syntax_tree.get_node_to_node_path(curr_first_node, prev_last_node) return path
def get_curr_first_prev_last_parse_path(arg_clauses, clause_index, parse_dict): DocID = arg_clauses.DocID sent_index = arg_clauses.sent_index if clause_index - 1 < 0: return "NONE" parse_tree = parse_dict[DocID]["sentences"][sent_index]["parsetree"].strip() syntax_tree = Syntax_tree(parse_tree) curr_first_index = arg_clauses.clauses[clause_index][0][0] prev_last_index = arg_clauses.clauses[clause_index - 1][0][-1] curr_first_node = syntax_tree.get_leaf_node_by_token_index(curr_first_index) prev_last_node = syntax_tree.get_leaf_node_by_token_index(prev_last_index) path = syntax_tree.get_node_to_node_path(curr_first_node, prev_last_node) if path.find("<") != -1: path_1 = path[:path.find("<")] path_2 = path[path.find("<"):] return util.get_compressed_path_tag(path_1, ">") + util.get_compressed_path_tag(path_2, "<") else: return util.get_compressed_path_tag(path, ">")