code: def tokenize(self, tokenizer):
      space_tokenization = self.text.split()
      target_tokenization = tokenizer.tokenize(self.text)
      (
          normed_space_tokenization,
          normed_target_tokenization,
      ) = normalize_tokenizations(
          space_tokenization, target_tokenization, tokenizer
      )
      aligner = retokenize.TokenAligner(
          normed_space_tokenization, normed_target_tokenization
      )
      target_span = aligner.project_token_span(
          self.span[0], self.span[1]
      )
      return TokenizedExample(
          guid=self.guid,
          tokens=target_tokenization,
          span=target_span,
          span_text=" ".join(
              target_tokenization[target_span[0] : target_span[1]]
          ),
          label_ids=[
              self.task.LABEL_TO_ID[label] for label in self.labels
          ],
          label_num=len(self.task.LABELS),
      )
  
imports: from abc import ABC
  import numpy
  import torch
  from dataclasses import dataclass
  from typing import List, Tuple
  from jiant.tasks.core import BaseExample, BaseTokenizedExample, BaseDataRow, BatchMixin, Task, TaskTypes
  from jiant.tasks.lib.templates.shared import create_input_set_from_tokens_and_segments, add_cls_token
  from jiant.tasks.utils import ExclusiveSpan, truncate_sequences
  from jiant.utils import retokenize
  from jiant.utils.tokenization_normalization import normalize_tokenizations
label_desc: Use image node_id 2 for calling the Example obj's underlying member method code with example usage: obj.tokenize(tokenizer) and returns: TokenizedExample