find_all_loop_node_and_parent

"""
输入: 一个json文件中10段话的子图 -> 生成的所有树的集合

输出:长度大于1的元素(存在环),组成的list

"""

from NLP_Annotation_Stage_One.json_to_all_trees import *


# all_trees_in_json = json_to_all_trees(json_path)


def find_all_roop_tree(all_trees_in_json):
    all_loop_tree_extend = []
    all_loop_tree_append = []

    for sub_graph in all_trees_in_json:
        sub_graph_roop_tree = find_roop_tree(sub_graph)
        all_loop_tree_extend.extend(sub_graph_roop_tree)  # 注意这里不能使用append, 需要使用extend, 把10个图的结果作为list加入,不行
        all_loop_tree_append.append(sub_graph_roop_tree)  # 如果需要使用append,它可以用来单独计算每段话中,有多少个环。
    return all_loop_tree_append


def find_roop_tree(all_trees_in_json_01):
    roop_tree_list = []
    for i in all_trees_in_json_01:
        if len(i) > 1:
            roop_tree_list.append(i)
    return roop_tree_list


# all_loop_tree = find_all_roop_tree(all_trees_in_json)


# 汇总上面的步骤:
def find_all_roop_tree_total(json_path):
    all_trees_in_json = json_to_all_trees(json_path)
    all_loop_tree = find_all_roop_tree(all_trees_in_json)
    return all_loop_tree


# 【测试开始】:
json_path = "../python_test_data/json_file/annotation37529-37538.json"
all_loop_tree = find_all_roop_tree_total(json_path)


print(all_loop_tree)
print(len(all_loop_tree))  # 使用extend时候结果len = 35, 说明一共10段话中,出现了35个环, 集合已打印出来, 使用append时,结果len=10, 因为一共add了10次,10段话中的结果
print('------------------\n')

# print(all_loop_tree[0])
# print(len(all_loop_tree[0]))  # 结果len = 3, 说明第一段话中,出现了3个环
# print('------------------\n')
#
# print(all_loop_tree[1])
# print(len(all_loop_tree[1]))  # 结果len = 3, 说明第一段话中,出现了3个环
# print('------------------\n')




# 找出10段话中,每段话中有几个环,
for i in range(len(all_loop_tree)):
    print('第', i, '段话中,所有带环的子图集合为: ', all_loop_tree[i])
    print('第', i, '段话中,出现环的子图个数为: ', len(all_loop_tree[i]))
    print('\n')
    for j in range(len(all_loop_tree[i])):
        print('第', j, '个子图为:', all_loop_tree[i][j])
        print('第', j, '个子图包含的边个数为: ', len(all_loop_tree[i][j]))

    print('-------------\n')

猜你喜欢

转载自blog.csdn.net/sinat_15355869/article/details/82855786