(self, walk_length, start_node)
| 36 | return walk |
| 37 | |
| 38 | def node2vec_walk(self, walk_length, start_node): |
| 39 | |
| 40 | G = self.G |
| 41 | alias_nodes = self.alias_nodes |
| 42 | alias_edges = self.alias_edges |
| 43 | |
| 44 | walk = [start_node] |
| 45 | |
| 46 | while len(walk) < walk_length: |
| 47 | cur = walk[-1] |
| 48 | cur_nbrs = list(G.neighbors(cur)) |
| 49 | if len(cur_nbrs) > 0: |
| 50 | if len(walk) == 1: |
| 51 | walk.append( |
| 52 | cur_nbrs[alias_sample(alias_nodes[cur][0], alias_nodes[cur][1])]) |
| 53 | else: |
| 54 | prev = walk[-2] |
| 55 | edge = (prev, cur) |
| 56 | next_node = cur_nbrs[alias_sample(alias_edges[edge][0], |
| 57 | alias_edges[edge][1])] |
| 58 | walk.append(next_node) |
| 59 | else: |
| 60 | break |
| 61 | |
| 62 | return walk |
| 63 | |
| 64 | def node2vec_walk2(self, walk_length, start_node): |
| 65 | """ |
no test coverage detected