如何使用 Python 中的 unicode_split() 将 Tensorflow 文本按字符拆分字符串?

tensorflowpythonserver side programmingprogramming

可以使用‘unicode_split’方法将 Tensorflow 文本按字符拆分字符串,方法是先对拆分的字符串进行编码,然后将函数调用分配给变量。此变量保存函数调用的结果。

阅读更多: 什么是 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 类)。这包括一个将字节偏移量获取到原始字符串中的选项。这有助于了解创建 token 的原始字符串中的字节。

示例

print("编码字符被拆分")
tokens = tf.strings.unicode_split([u"仅今年前".encode('UTF-8')], 'UTF-8')
print("标记化的数据已转换为列表")
print(tokens.to_list())

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

输出

编码字符被拆分
标记化的数据已转换为列表
[[b'\xe4\xbb\x85', b'\xe4\xbb\x8a', b'\xe5\xb9\xb4', b'\xe5\x89\x8d']]

解释

  • 所有标记器都返回 RaggedTensors,其中标记的最内层维度映射到原始单个字符串。

  • 结果形状的等级增加了一个。

  • 在不使用空格来分割单词的情况下对语言进行标记时,通常按字符进行拆分。

  • 这可以使用 Tensorflow 核心中的 unicode_split 操作来完成。

  • 一旦调用 unicode_split,标记化的数据就会添加到列表中。


相关文章