Функция strings.unicode_decode
Функция strings.unicode_decode выполняет
декодирование строк, представленных в виде
байтовых последовательностей в кодировке UTF-8,
в последовательности кодовых точек Unicode.
Первым параметром функция принимает тензор
со строками. Вторым параметром можно передать
имя входной кодировки. Третьим параметром
задается символ замены для некорректных
последовательностей. Четвертым параметром
можно указать тип данных для результирующих
кодовых точек.
Синтаксис
tf.strings.unicode_decode(input, [input_encoding], [errors], [replacement_char], [output_type])
Пример
Давайте декодируем строку
'abcde' в последовательность
кодовых точек Unicode:
import tensorflow as tf
t = tf.constant(['abcde'])
res = tf.strings.unicode_decode(t, 'UTF-8')
print(res)
Результат выполнения кода:
<tf.RaggedTensor [[97, 98, 99, 100, 101]]>
Пример
Давайте декодируем строку
'model.keras' и выведем
полученные коды в виде обычного массива:
import tensorflow as tf
t = tf.constant(['model.keras'])
res = tf.strings.unicode_decode(t, 'UTF-8')
print(res.to_list())
Результат выполнения кода:
[[109, 111, 100, 101, 108, 46, 107, 101, 114, 97, 115]]
Пример
Давайте декодируем несколько строк разной длины и посмотрим на форму полученного тензора:
import tensorflow as tf
t = tf.constant(['abcde', 'model.keras'])
res = tf.strings.unicode_decode(t, 'UTF-8')
print(res)
print(res.shape)
Результат выполнения кода:
<tf.RaggedTensor [[97, 98, 99, 100, 101], [109, 111, 100, 101, 108, 46, 107, 101, 114, 97, 115]]>
(2, None)
Пример
Давайте укажем тип данных результата
tf.int64:
import tensorflow as tf
t = tf.constant(['abcde'])
res = tf.strings.unicode_decode(t, 'UTF-8', output_type=tf.int64)
print(res.dtype)
Результат выполнения кода:
<dtype: 'int64'>
Смотрите также
-
функцию
unicode_encode,
которая кодирует кодовые точки в строку -
функцию
unicode_split,
которая разбивает строку на подстроки -
функцию
bytes_split,
которая разбивает байтовые строки -
функцию
to_number,
которая преобразует строки в числа