当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.strings.unicode_decode_with_offsets用法及代码示例


将每个字符串解码为具有起始偏移量的代码点序列。

用法

tf.strings.unicode_decode_with_offsets(
    input, input_encoding, errors='replace', replacement_char=65533,
    replace_control_characters=False, name=None
)

参数

  • input 一个 N 维度可能参差不齐的 string 张量,形状为 [D1...DN]N 必须是静态已知的。
  • input_encoding 用于解码每个字符串的 unicode 编码的字符串名称。
  • errors 指定无法使用指示的编码转换输入字符串时的响应。之一:
    • 'strict' :为任何非法子字符串引发异常。
    • 'replace' :用 replacement_char 替换非法子字符串。
    • 'ignore' :跳过非法子串。
  • replacement_char errors='replace' 时用于代替 input 中的无效子字符串的替换代码点;并在 replace_control_characters=True 时代替 input 中的 C0 控制字符。
  • replace_control_characters 是否将 C0 控制字符 (U+0000 - U+001F) 替换为 replacement_char
  • name 操作的名称(可选)。

返回

  • 一个元组N+1维张量(codepoints, start_offsets).
    • codepoints 是一个 int32 张量,形状为 [D1...DN, (num_chars)]
    • offsets 是一个 int64 张量,形状为 [D1...DN, (num_chars)]

    如果 input 是标量,则返回的张量为 tf.Tensor ,否则为 tf.RaggedTensor

此操作类似于 tf.strings.decode(...) ,但它还返回其各自字符串中每个字符的起始偏移量。此信息可用于将字符与原始字节序列对齐。

返回一个元组 (codepoints, start_offsets) 其中:

  • codepoints[i1...iN, j] 是使用 input_encoding 解码时 input[i1...iN] 中第 j 字符的 Unicode 代码点。
  • start_offsets[i1...iN, j] 是使用 input_encoding 解码时 input[i1...iN] 中第 j 字符的起始字节偏移量。

例子:

input = [s.encode('utf8') for s in (u'G\xf6\xf6dnight', u'\U0001f60a')]
result = tf.strings.unicode_decode_with_offsets(input, 'UTF-8')
result[0].to_list()  # codepoints
[[71, 246, 246, 100, 110, 105, 103, 104, 116], [128522]]
result[1].to_list()  # offsets
[[0, 1, 3, 5, 6, 7, 8, 9, 10], [0]]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.strings.unicode_decode_with_offsets。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。