code: def classifer_metrics(label, pred):
      
      prediction = np.argmax(pred, axis=1)
      label = label.astype(int)
  
      pred_is_entity = prediction != not_entity_index
      label_is_entity = label != not_entity_index
  
      corr_pred = (prediction == label) == (pred_is_entity == True)
  
      #how many entities are there?
      num_entities = np.sum(label_is_entity)
      entity_preds = np.sum(pred_is_entity)
  
      #how many times did we correctly predict an entity?
      correct_entitites = np.sum(corr_pred[pred_is_entity])
  
      #precision: when we predict entity, how often are we right?
      precision = correct_entitites/entity_preds
      if entity_preds == 0:
          precision = np.nan
  
      #recall: of the things that were an entity, how many did we catch?
      recall = correct_entitites / num_entities
      if num_entities == 0:
          recall = np.nan
      f1 = 2 * precision * recall / (precision + recall)
      return precision, recall, f1
docs: computes f1, precision and recall on the entity class