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


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


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

用法

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

参数

  • input 一个 N 维度可能参差不齐的 string 张量,形状为 [D1...DN]N 必须是静态已知的。
  • input_encoding 用于解码每个字符串的 unicode 编码的字符串名称。
  • errors 指定无法使用指示的编码转换输入字符串时的响应。之一:
    • 'strict' :为任何非法子字符串引发异常。
    • 'replace' :用 replacement_char 替换非法子字符串。
    • 'ignore' :跳过非法子串。
  • replacement_char errors='replace' 时用于代替 input 中的无效子字符串的替换代码点。
  • 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(...) ,但它还返回其各自字符串中每个字符的起始偏移量。此信息可用于将字符与原始字节序列对齐。

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

  • chars[i1...iN, j]input[i1...iN] 的子字符串,当使用 input_encoding 解码时,它编码其第 j 个字符。
  • 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_split_with_offsets(input, 'UTF-8')
result[0].to_list()  # character substrings
[[b'G', b'\xc3\xb6', b'\xc3\xb6', b'd', b'n', b'i', b'g', b'h', b't'],
 [b'\xf0\x9f\x98\x8a']]
result[1].to_list()  # offsets
[[0, 1, 3, 5, 6, 7, 8, 9, 10], [0]]

相关用法


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