class_docstr: Base class for tokenizers.
code: def _split_name(
      self, message: Message, attribute: Text = INTENT
  ) -> List[Token]:
      orig_text = message.get(attribute)
  
      if (
          self.prefix_separator_symbol is not None
          and self.prefix_separator_symbol in orig_text
      ):
          prefix, text = orig_text.split(
              self.prefix_separator_symbol, maxsplit=1
          )
      else:
          prefix, text = None, orig_text
  
      # for INTENT_RESPONSE_KEY attribute,
      # first split by RESPONSE_IDENTIFIER_DELIMITER
      if attribute == INTENT_RESPONSE_KEY:
          intent, response_key = text.split(
              RESPONSE_IDENTIFIER_DELIMITER
          )
          words = self._tokenize_on_split_symbol(
              intent
          ) + self._tokenize_on_split_symbol(response_key)
  
      else:
          words = self._tokenize_on_split_symbol(text)
  
      if prefix is not None:
          words = self._tokenize_on_split_symbol(prefix) + words
  
      return self._convert_words_to_tokens(words, orig_text)
  
imports: import abc
  import logging
  import re
  from typing import Text, List, Dict, Any, Optional
  from rasa.engine.graph import ExecutionContext, GraphComponent
  from rasa.engine.storage.resource import Resource
  from rasa.engine.storage.storage import ModelStorage
  from rasa.shared.nlu.training_data.training_data import TrainingData
  from rasa.shared.nlu.training_data.message import Message
  from rasa.nlu.constants import TOKENS_NAMES, MESSAGE_ATTRIBUTES
  from rasa.shared.nlu.constants import INTENT, INTENT_RESPONSE_KEY, RESPONSE_IDENTIFIER_DELIMITER, ACTION_NAME
  import rasa.shared.utils.io
label_desc: Use image node_id 7 for calling the Tokenizer obj's underlying member method code with example usage: obj._split_name(message, attribute) and returns: self