如何使用 UnicodeScriptTokenizer 对 Tensorflow 文本进行数据编码?

tensorflowserver side programmingprogramming更新于 2025/5/21 12:37:17

‘UnicodeScriptTokenizer’ 可用于对数据进行标记。可以获得每个句子中每个单词的开始和结束偏移量。

阅读更多: 什么是 TensorFlow,以及 Keras 如何与 TensorFlow 配合使用来创建神经网络?

我们将使用 Keras Sequential API,它有助于构建用于处理普通层堆栈的顺序模型,其中每个层都有一个输入张量和一个输出张量。

包含至少一个层的神经网络称为卷积层。我们可以使用卷积神经网络构建学习模型。

TensorFlow Text 包含可与 TensorFlow 2.0 一起使用的文本相关类和操作的集合。TensorFlow Text 可用于预处理序列建模。

我们正在使用 Google Colaboratory 运行以下代码。 Google Colab 或 Colaboratory 可帮助在浏览器上运行 Python 代码,无需配置,并可免费访问 GPU(图形处理单元)。Colaboratory 建立在 Jupyter Notebook 之上。

标记化是将字符串分解为标记的方法。这些标记可以是单词、数字或标点符号。

重要的接口包括 Tokenizer 和 TokenizerWithOffsets,每个接口分别具有单个方法 tokenize 和 tokenize_with_offsets。有多个标记器,每个标记器都实现 TokenizerWithOffsets(扩展了 Tokenizer 类)。这包括一个获取原始字符串中字节偏移量的选项。这有助于了解创建标记的原始字符串中的字节。

示例

print("Unicode script tokenizer is being called")
tokenizer = text.UnicodeScriptTokenizer()
(tokens, start_offsets, end_offsets) = tokenizer.tokenize_with_offsets(['everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("The tokenized data is converted to a list")
print(tokens.to_list())
print("The beginning offsets of characters are stored in a list ")
print(start_offsets.to_list())
print("The ending offsets of characters are stored in a list ")
print(end_offsets.to_list())

代码来源 −https://www.tensorflow.org/tutorials/tensorflow_text/intro

输出

Unicode script tokenizer is being called
The tokenized data is converted to a list
[[b'everything', b'not', b'saved', b'will', b'be', b'lost', b'.'], [b'Sad', b'\xe2\x98\xb9']]
The beginning offsets of characters are stored in a list
[[0, 11, 15, 21, 26, 29, 33], [0, 3]]
The ending offsets of characters are stored in a list
[[10, 14, 20, 25, 28, 33, 34], [3, 6]]

解释

  • 对字符串进行标记时,了解标记源自原始字符串的哪个位置非常重要。

  • 因此,每个实现 TokenizerWithOffsets 的标记器都有一个 tokenize_with_offsets 方法。

  • 此方法随标记一起返回字节偏移量。

  • start_offsets 将告知每个标记在原始字符串中的起始字节数。

  • end_offsets 将告知每个标记结束点之后的字节数。

  • 需要注意的是,起始偏移量是包含在内的,而结束偏移量是排除在内的。


相关文章