code: def _improve_answer_span(
      doc_tokens, input_start, input_end, tokenizer, orig_answer_text
  ):
      """Returns tokenized answer spans that better match the annotated answer."""
      tok_answer_text = " ".join(tokenizer.tokenize(orig_answer_text))
  
      for new_start in range(input_start, input_end + 1):
          for new_end in range(input_end, new_start - 1, -1):
              text_span = " ".join(
                  doc_tokens[new_start : (new_end + 1)]
              )
              if text_span == tok_answer_text:
                  return new_start, new_end
  
      return input_start, input_end
  
imports: import json
  import numpy
  import torch
  from dataclasses import dataclass
  from typing import Union, List, Dict, Optional
  from transformers.models.bert.tokenization_bert import whitespace_tokenize
  from transformers.tokenization_utils_base import TruncationStrategy
  from jiant.tasks.lib.templates.squad_style import utils
  from jiant.shared.constants import PHASE
  from jiant.tasks.core import BaseExample, BaseDataRow, BatchMixin, Task, TaskTypes
  from jiant.utils.python.datastructures import ExtendedDataClassMixin
  from jiant.utils.display import maybe_tqdm
  import logging
label_desc: Use image node_id 5 for calling a global function with example usage: _improve_answer_span(doc_tokens, input_start, input_end, tokenizer, orig_answer_text) and returns: input_start,  input_end, new_start,  new_end