code: def edge_betweenness_centrality(
      G, k=None, normalized=True, weight=None, seed=None
  ):
      r"""Compute betweenness centrality for edges.
  
      Betweenness centrality of an edge $e$ is the sum of the
      fraction of all-pairs shortest paths that pass through $e$
  
      .. math::
  
         c_B(e) =\sum_{s,t \in V} \frac{\sigma(s, t|e)}{\sigma(s, t)}
  
      where $V$ is the set of nodes, $\sigma(s, t)$ is the number of
      shortest $(s, t)$-paths, and $\sigma(s, t|e)$ is the number of
      those paths passing through edge $e$ [2]_.
  
      Parameters
      ----------
      G : graph
        A NetworkX graph.
  
      k : int, optional (default=None)
        If k is not None use k node samples to estimate betweenness.
        The value of k <= n where n is the number of nodes in the graph.
        Higher values give better approximation.
  
      normalized : bool, optional
        If True the betweenness values are normalized by $2/(n(n-1))$
        for graphs, and $1/(n(n-1))$ for directed graphs where $n$
        is the number of nodes in G.
  
      weight : None or string, optional (default=None)
        If None, all edge weights are considered equal.
        Otherwise holds the name of the edge attribute used as weight.
        Weights are used to calculate weighted shortest paths, so they are
        interpreted as distances.
  
      seed : integer, random_state, or None (default)
          Indicator of random number generation state.
          See :ref:`Randomness<randomness>`.
          Note that this is only used if k is not None.
  
      Returns
      -------
      edges : dictionary
         Dictionary of edges with betweenness centrality as the value.
  
      See Also
      --------
      betweenness_centrality
      edge_load
  
      Notes
      -----
      The algorithm is from Ulrik Brandes [1]_.
  
      For weighted graphs the edge weights must be greater than zero.
      Zero edge weights can produce an infinite number of equal length
      paths between pairs of nodes.
  
      References
      ----------
      .. [1]  A Faster Algorithm for Betweenness Centrality. Ulrik Brandes,
         Journal of Mathematical Sociology 25(2):163-177, 2001.
         https://doi.org/10.1080/0022250X.2001.9990249
      .. [2] Ulrik Brandes: On Variants of Shortest-Path Betweenness
         Centrality and their Generic Computation.
         Social Networks 30(2):136-145, 2008.
         https://doi.org/10.1016/j.socnet.2007.11.001
      """
      betweenness = dict.fromkeys(G, 0.0)  # b[v]=0 for v in G
      # b[e]=0 for e in G.edges()
      betweenness.update(dict.fromkeys(G.edges(), 0.0))
      if k is None:
          nodes = G
      else:
          nodes = seed.sample(list(G.nodes()), k)
      for s in nodes:
          # single source shortest paths
          if weight is None:  # use BFS
              S, P, sigma, _ = _single_source_shortest_path_basic(G, s)
          else:  # use Dijkstra's algorithm
              S, P, sigma, _ = _single_source_dijkstra_path_basic(
                  G, s, weight
              )
          # accumulation
          betweenness = _accumulate_edges(betweenness, S, P, sigma, s)
      # rescaling
      for n in G:  # remove nodes to only return edges
          del betweenness[n]
      betweenness = _rescale_e(
          betweenness,
          len(G),
          normalized=normalized,
          directed=G.is_directed(),
      )
      if G.is_multigraph():
          betweenness = _add_edge_keys(G, betweenness, weight=weight)
      return betweenness
  
file_path: networkx/networkx/algorithms/centrality/betweenness.py
imports: from collections import deque
  from heapq import heappop, heappush
  from itertools import count
  import networkx
  from networkx.algorithms.shortest_paths.weighted import _weight_function
  from networkx.utils import py_random_state
  from networkx.utils.decorators import not_implemented_for
label_desc: Use image node_id 2 for calling a global function with example usage: edge_betweenness_centrality(G, k, normalized, weight, seed) and returns: betweenness