(content_file, node_map, total_label, fea_len, train_num)
| 68 | return fea_map |
| 69 | |
| 70 | def gen_node(content_file, node_map, total_label, fea_len, train_num): |
| 71 | node_ids = [] |
| 72 | type = [] |
| 73 | label = [] |
| 74 | feature = [] |
| 75 | with open(os.path.realpath(content_file), 'r') as f: |
| 76 | for line in f: |
| 77 | if len(line.strip().split('\t')) == 2: |
| 78 | continue |
| 79 | if line.strip().startswith('cat=1,2,3'): |
| 80 | feature_map = gen_feature_map(line.strip()) |
| 81 | else: |
| 82 | features = line.strip().split('\t') |
| 83 | node_ids.append(node_map[features[0]]) |
| 84 | label.append(int2onehot(int(features[1].split('=')[1])-1, total_label)) |
| 85 | one_features = np.zeros(len(feature_map), dtype=float) |
| 86 | for one_fea in features[2:-1]: |
| 87 | fea_name = one_fea.split('=')[0] |
| 88 | fea_val = one_fea.split('=')[1] |
| 89 | one_features[feature_map[fea_name]] = fea_val |
| 90 | feature.append(one_features) |
| 91 | if (node_map[features[0]]) > train_num: |
| 92 | type.append("test") |
| 93 | else: |
| 94 | type.append("train") |
| 95 | return node_ids, type, label, feature |
| 96 | |
| 97 | def parse_graph_file(file_dir, total_label, graph_name, fea_len, train_num): |
| 98 | content_file = os.path.join(file_dir, "data", graph_name + ".NODE.paper.tab") |
no test coverage detected