code: def __call__(self, nodes):
      walks = node2vec_walk(
          self.graph, nodes, self.walk_len, self.p, self.q
      )
      src_list, pos_list = [], []
      for walk in walks:
          s, p = skip_gram_gen_pair(walk, self.win_size)
          src_list.append(s), pos_list.append(p)
      src = [s for x in src_list for s in x]
      pos = [s for x in pos_list for s in x]
      src = (np.array(src, dtype=np.int64),)
      pos = np.array(pos, dtype=np.int64)
      src, pos = np.reshape(src, [-1, 1]), np.reshape(pos, [-1, 1])
  
      neg_sample_size = [len(pos), self.neg_num]
      if self.neg_sample_type == "average":
          negs = np.random.randint(
              low=0, high=self.graph.num_nodes, size=neg_sample_size
          )
      elif self.neg_sample_type == "outdegree":
          pass
          # negs = alias_sample(neg_sample_size, alias, events)
      elif self.neg_sample_type == "inbatch":
          pass
      else:
          raise ValueError
      dsts = np.concatenate([pos, negs], 1)
      # [batch_size, 1] [batch_size, neg_num+1]
      return src, dsts
  
file_path: PGL/examples/graph_based_clustering_demo/dataset.py
imports: import os
  import paddle
  import numpy
  from pgl import graph_kernel
  from pgl.utils.logger import log
  from pgl.utils.data import Dataset
  from pgl.sampling import node2vec_walk
  from pgl.graph_kernel import skip_gram_gen_pair
label_desc: Use image node_id 2 for calling the BatchNode2vecWalk obj's underlying member method code with example usage: obj.__call__(nodes) and returns: src,  dsts