class_docstr: An implementation of `"Label Propagation Clustering" <https://arxiv.org/abs/0709.2938>`_
  from the Physical Review '07 paper "Near Linear Time Algorithm to Detect Community Structures
  in Large-Scale Networks". The tool executes a series of label propagations with unique labels.
  The final labels are used as cluster memberships.
  
  Args:
      seed (int): Random seed. Default is 42.
      iterations (int): Propagation iterations. Default is 100.
docstr: Choosing a neighbor from a propagation source node.
  
  Arg types:
      * **neigbours** *(list)* - Neighbouring nodes.
docstr_tok: ["Choosing","a","neighbor","from","a","propagation","source","node",".","Arg","types",":","*","*","*","neigbours","*","*","*","(","list",")","*","-","Neighbouring","nodes","."]
code: def _make_a_pick(self, neighbors):
      """
      Choosing a neighbor from a propagation source node.
  
      Arg types:
          * **neigbours** *(list)* - Neighbouring nodes.
      """
      scores = {}
      for neighbor in neighbors:
          neighbor_label = self._labels[neighbor]
          if neighbor_label in scores.keys():
              scores[neighbor_label] = scores[neighbor_label] + 1
          else:
              scores[neighbor_label] = 1
      top = [
          key
          for key, val in scores.items()
          if val == max(scores.values())
      ]
      return random.sample(top, 1)[0]
  
file_path: karateclub/karateclub/community_detection/non_overlapping/label_propagation.py
imports: import random
  import networkx
  from typing import Dict
  from karateclub.estimator import Estimator
label_desc: Use image node_id 2 for calling the LabelPropagation obj's underlying member method code with example usage: obj._make_a_pick(neighbors) and returns: random