MCPcopy Create free account
hub / github.com/PKU-ASAL/Simulated-Data / final_graph_taylor

Method final_graph_taylor

src/Sysdig/real-time/ProvGraph.py:332–416  ·  view source on GitHub ↗
(self,g)

Source from the content-addressed store, hash-verified

330 return g
331
332 def final_graph_taylor(self,g):
333 flag = True
334 cnt = 0
335 while flag:
336 remove_nodes_list = set()
337 flag = False
338 for node in g.nodes:
339 if g.degree(node) < 2 or node in remove_nodes_list:
340 continue
341 rbp = RandomBinaryProjections('rbp', 10)
342 engine = Engine(256, lshashes=[rbp])
343 merge_node = defaultdict(list)
344 for i in g.successors(node):
345 if i in remove_nodes_list:
346 continue
347 # print(i,self.GetNodeAttr(i))
348 name = self.GetNodeNewName(i)
349 if name == -1:
350 continue
351 # if name in merge_node:
352 # merge_node[name].append(i)
353 # continue
354 # r = self.if_file_node_merge(name,merge_node)
355 # if r == -1:
356 # merge_node[name].append(i)
357 # else:
358 # merge_node[r].append(i)
359 v = np.array([])
360 if self.GetNodeType(i) == APTLOG_NODE_TYPE.PROCESS:
361 v = self.GetEmbedding(name.split('/'), self.c2v)
362 else:
363 v = self.GetEmbedding(name.split('/'), self.w2v)
364 candidate = engine.neighbours(np.array(v))
365 # print(candidate,v)
366 if len(candidate) != 0 and candidate[0][2] < 0.01:
367 c = candidate[0][1]
368 else:
369 c = name
370 engine.store_vector(np.array(v), name)
371 # if name in merge_node:
372 # merge_node[name].append(i)
373 # continue
374 merge_node[c].append(i)
375 for i in merge_node:
376 if len(merge_node[i]) >= 2:
377 g = self.merge_nodes(g,merge_node[i][1:],merge_node[i][0],remove_nodes_list)
378 remove_nodes_list |= set(merge_node[i][1:])
379 rbp = RandomBinaryProjections('rbp', 10)
380 engine = Engine(256, lshashes=[rbp])
381 merge_node = defaultdict(list)
382 for i in g.predecessors(node):
383 if i in remove_nodes_list:
384 continue
385 name = self.GetNodeNewName(i)
386 if name == -1:
387 continue
388 v = np.array([])
389 if self.GetNodeType(i) == APTLOG_NODE_TYPE.PROCESS:

Callers 1

log_parserFunction · 0.95

Calls 4

GetNodeNewNameMethod · 0.95
GetNodeTypeMethod · 0.95
GetEmbeddingMethod · 0.95
merge_nodesMethod · 0.95

Tested by

no test coverage detected