def METHOD_NAME(self, predict_start_ids, predict_end_ids, label_start_ids, label_end_ids):
    """
    evaluate position extraction (start, end)
    return num_correct, num_infer, num_label
    input: [1, 2, 10] [4, 12] [2, 10] [4, 11]
    output: (1, 2, 2)
    """
    pred_set = get_span(predict_start_ids, predict_end_ids)
    label_set = get_span(label_start_ids, label_end_ids)
    num_correct = len(pred_set & label_set)
    num_infer = len(pred_set)
    # For the case of overlapping in the same category,
    # length of label_start_ids and label_end_ids is not equal
    num_label = max(len(label_start_ids), len(label_end_ids))
    return (num_correct, num_infer, num_label)