code: def string_split(
      source, sep=None, skip_empty=True, delimiter=None
  ):  # pylint: disable=invalid-name
      """Split elements of `source` based on `delimiter` into a `SparseTensor`.
  
      Let N be the size of source (typically N will be the batch size). Split each
      element of `source` based on `delimiter` and return a `SparseTensor`
      containing the split tokens. Empty tokens are ignored.
  
      If `sep` is an empty string, each element of the `source` is split
      into individual strings, each containing one byte. (This includes splitting
      multibyte sequences of UTF-8.) If delimiter contains multiple bytes, it is
      treated as a set of delimiters with each considered a potential split point.
  
      For example:
      N = 2, source[0] is 'hello world' and source[1] is 'a b c', then the output
      will be
  
      st.indices = [0, 0;
                    0, 1;
                    1, 0;
                    1, 1;
                    1, 2]
      st.shape = [2, 3]
      st.values = ['hello', 'world', 'a', 'b', 'c']
  
      Args:
        source: `1-D` string `Tensor`, the strings to split.
        sep: `0-D` string `Tensor`, the delimiter character, the string should
          be length 0 or 1. Default is ' '.
        skip_empty: A `bool`. If `True`, skip the empty strings from the result.
        delimiter: deprecated alias for `sep`.
  
      Raises:
        ValueError: If delimiter is not a string.
  
      Returns:
        A `SparseTensor` of rank `2`, the strings split according to the delimiter.
        The first column of the indices corresponds to the row in `source` and the
        second column corresponds to the index of the split component in this row.
      """
      delimiter = deprecation.deprecated_argument_lookup(
          "sep", sep, "delimiter", delimiter
      )
  
      if delimiter is None:
          delimiter = " "
      delimiter = ops.convert_to_tensor(delimiter, dtype=dtypes.string)
      source = ops.convert_to_tensor(source, dtype=dtypes.string)
  
      indices, values, shape = gen_string_ops.string_split(
          source, delimiter=delimiter, skip_empty=skip_empty
      )
      indices.set_shape([None, 2])
      values.set_shape([None])
      shape.set_shape([2])
      return sparse_tensor.SparseTensor(indices, values, shape)
  
imports: import numpy
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_parsing_ops
  from tensorflow.python.ops import gen_string_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops.gen_string_ops import *
  from tensorflow.python.util import compat
  from tensorflow.python.util import deprecation
  from tensorflow.python.util import dispatch
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 4 for calling a global function with example usage: string_split(source, sep, skip_empty, delimiter) and returns: sparse_tensor