View source on GitHub

Split elements of input based on sep.

Let N be the size of input (typically N will be the batch size). Split each element of input based on sep and return a SparseTensor or RaggedTensor containing the split tokens. Empty tokens are ignored.


print(tf.compat.v1.strings.split(['hello world', 'a b c']))
SparseTensor(indices=tf.Tensor( [[0 0] [0 1] [1 0] [1 1] [1 2]], ...),
             values=tf.Tensor([b'hello' b'world' b'a' b'b' b'c'], ...),
             dense_shape=tf.Tensor([2 3], shape=(2,), dtype=int64))
print(tf.compat.v1.strings.split(['hello world', 'a b c'],
<tf.RaggedTensor [[b'hello', b'world'], [b'a', b'b', b'c']]>

If sep is given, consecutive delimiters are not grouped together and are deemed to delimit empty strings. For example, input of "1<>2<><>3" and sep of "<>" returns ["1", "2", "", "3"]. If sep is None or an empty string, consecutive whitespace are regarded as a single separator, and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace.

Note that the above mentioned behavior matches python's str.split.

input A string Tensor of rank N, the strings to split. If rank(input) is not known statically, then it is assumed to be 1.
sep 0-D string Tensor, the delimiter character.
maxsplit An int. If maxsplit > 0, limit of the split of the result.
result_type The tensor type for the result: one of "RaggedTensor" or "SparseTensor".
source alias for "input" argument.
name A name for the operation (optional).

ValueError If sep is not a string.

A SparseTensor or RaggedTensor of rank N+1, the strings split according to the delimiter.