code: def masi_distance(label1, label2):
      """Distance metric that takes into account partial agreement when multiple
      labels are assigned.
  
      >>> from nltk.metrics import masi_distance
      >>> masi_distance(set([1, 2]), set([1, 2, 3, 4]))
      0.665
  
      Passonneau 2006, Measuring Agreement on Set-Valued Items (MASI)
      for Semantic and Pragmatic Annotation.
      """
  
      len_intersection = len(label1.intersection(label2))
      len_union = len(label1.union(label2))
      len_label1 = len(label1)
      len_label2 = len(label2)
      if len_label1 == len_label2 and len_label1 == len_intersection:
          m = 1
      elif len_intersection == min(len_label1, len_label2):
          m = 0.67
      elif len_intersection > 0:
          m = 0.33
      else:
          m = 0
  
      return 1 - len_intersection / len_union * m
  
file_path: nltk/nltk/metrics/distance.py
imports: import operator
  import warnings
label_desc: Use image node_id 9 for calling a global function with example usage: masi_distance(label1, label2) and returns: unknown