docstr: [summary]
  
  Args:
      gold_instance_list (List[Dict]): [description]
          [
              {
                  'offset': [('Geo-political', (7,)), ('Location', (11,)), ('Geo-political', (14,))],
                  'string': [('Geo-political', 'seattle'), ('Location', 'lot'), ('Geo-political', 'city')]
              },
              {...}, ...
          ]
      pred_instance_list (List[Dict]): [description]
          [
              {
                  'offset': [('Geo-political', (7,)), ('Geo-political', (14,))],
                  'string': [('Geo-political', 'seattle'), ('Geo-political', 'city')]
              }
          ]
      verbose (bool, optional): [description]. Defaults to False.
      match_mode (string, optional): [description]. Defaults to `normal` .
  
  Returns:
      Dict: Result of Evaluation
          (offset, string) X (gold, pred, tp, P, R, F1)
code: def eval_instance_list(
      gold_instance_list: List[Dict],
      pred_instance_list: List[Dict],
      verbose=False,
      match_mode="normal",
  ):
      """[summary]
  
      Args:
          gold_instance_list (List[Dict]): [description]
              [
                  {
                      'offset': [('Geo-political', (7,)), ('Location', (11,)), ('Geo-political', (14,))],
                      'string': [('Geo-political', 'seattle'), ('Location', 'lot'), ('Geo-political', 'city')]
                  },
                  {...}, ...
              ]
          pred_instance_list (List[Dict]): [description]
              [
                  {
                      'offset': [('Geo-political', (7,)), ('Geo-political', (14,))],
                      'string': [('Geo-political', 'seattle'), ('Geo-political', 'city')]
                  }
              ]
          verbose (bool, optional): [description]. Defaults to False.
          match_mode (string, optional): [description]. Defaults to `normal` .
  
      Returns:
          Dict: Result of Evaluation
              (offset, string) X (gold, pred, tp, P, R, F1)
      """
      metrics = {
          "string": Metric(verbose=verbose, match_mode=match_mode),
          "offset": Metric(verbose=verbose, match_mode=match_mode),
      }
      for pred, gold in zip(pred_instance_list, gold_instance_list):
          pre_string_tp, pre_offset_tp = (
              metrics["string"].tp,
              metrics["offset"].tp,
          )
  
          for eval_key in metrics:
              metrics[eval_key].count_instance(
                  gold_list=gold.get(eval_key, []),
                  pred_list=pred.get(eval_key, []),
              )
  
          post_string_tp, post_offset_tp = (
              metrics["string"].tp,
              metrics["offset"].tp,
          )
          if (
              verbose
              and post_offset_tp - pre_offset_tp
              != post_string_tp - pre_string_tp
          ):
              warning_tp_increment(
                  gold=gold, pred=pred, prefix="Entity"
              )
  
      results = dict()
      for eval_key in metrics:
          results.update(
              metrics[eval_key].compute_f1(prefix=eval_key + "-ent-")
          )
  
      return results
  
imports: from collections import defaultdict
  from copy import deepcopy
  from typing import Dict, List
  import sys
label_desc: Use image node_id 3 for calling the EntityScorer obj's underlying member method code with example usage: obj.eval_instance_list(gold_instance_list, pred_instance_list, verbose, match_mode) and returns: results