code: def ReadTxtNet(file_path="", undirected=True):
      """Read the txt network file.
      Notations: The network is unweighted.
  
      Parameters
      ----------
      file_path str : path of network file
      undirected bool : whether the edges are undirected
  
      Return
      ------
      net dict : a dict recording the connections in the graph
      node2id dict : a dict mapping the nodes to their embedding indices
      id2node dict : a dict mapping nodes embedding indices to the nodes
      """
      if file_path == "youtube" or file_path == "blog":
          name = file_path
          dir = get_download_dir()
          zip_file_path = "{}/{}.zip".format(dir, name)
          download(
              _get_dgl_url(
                  os.path.join(
                      "dataset/DeepWalk/", "{}.zip".format(file_path)
                  )
              ),
              path=zip_file_path,
          )
          extract_archive(zip_file_path, "{}/{}".format(dir, name))
          file_path = "{}/{}/{}-net.txt".format(dir, name, name)
  
      node2id = {}
      id2node = {}
      cid = 0
  
      src = []
      dst = []
      weight = []
      net = {}
      with open(file_path, "r") as f:
          for line in f.readlines():
              tup = list(map(int, line.strip().split(" ")))
              assert len(tup) in [
                  2,
                  3,
              ], "The format of network file is unrecognizable."
              if len(tup) == 3:
                  n1, n2, w = tup
              elif len(tup) == 2:
                  n1, n2 = tup
                  w = 1
              if n1 not in node2id:
                  node2id[n1] = cid
                  id2node[cid] = n1
                  cid += 1
              if n2 not in node2id:
                  node2id[n2] = cid
                  id2node[cid] = n2
                  cid += 1
  
              n1 = node2id[n1]
              n2 = node2id[n2]
              if n1 not in net:
                  net[n1] = {n2: w}
                  src.append(n1)
                  dst.append(n2)
                  weight.append(w)
              elif n2 not in net[n1]:
                  net[n1][n2] = w
                  src.append(n1)
                  dst.append(n2)
                  weight.append(w)
  
              if undirected:
                  if n2 not in net:
                      net[n2] = {n1: w}
                      src.append(n2)
                      dst.append(n1)
                      weight.append(w)
                  elif n1 not in net[n2]:
                      net[n2][n1] = w
                      src.append(n2)
                      dst.append(n1)
                      weight.append(w)
  
      print("node num: %d" % len(net))
      print("edge num: %d" % len(src))
      assert max(net.keys()) == len(net) - 1, "error reading net, quit"
  
      sm = sp.coo_matrix(
          (np.array(weight), (src, dst)), dtype=np.float32
      )
  
      return net, node2id, id2node, sm
  
imports: import os
  import pickle
  import random
  import time
  import dgl
  import numpy
  import scipy.sparse
  import torch
  from dgl.data.utils import _get_dgl_url, download, extract_archive, get_download_dir
  from torch.utils.data import DataLoader
  from utils import shuffle_walks
label_desc: Use image node_id 1 for calling a global function with example usage: ReadTxtNet(file_path, undirected) and returns: net,  node2id,  id2node,  sm