TensorFlow 和 TensorFlow Text 如何用于分词字符串数据?


Tensorflow text 可以借助“WhitespaceTokenizer”来分词字符串数据,这是一个创建的标记器,之后在字符串上调用“WhitespaceTokenizer”中存在的“tokenize”方法。

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

所有标记器都返回 RaggedTensors,其最内层维度是映射到原始单个字符串的标记。结果形状的秩增加 1。以下是一个示例

示例

print("Whitespace tokenizer is being called")
tokenizer = text.WhitespaceTokenizer()
tokens = tokenizer.tokenize(['everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("The tokenized data is converted to a list")
print(tokens.to_list())

代码来源 −https://tensorflowcn.cn/tutorials/tensorflow_text/intro

输出

Whitespace tokenizer is being called
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py:201: batch_gather (from tensorflow.python.ops.array_ops) is deprecated and will be removed after 2017-10-25.
Instructions for updating:
`tf.batch_gather` is deprecated, please use `tf.gather` with `batch_dims=-1` instead.
The tokenized data is converted to a list
[[b'everything', b'not', b'saved', b'will', b'be', b'lost.'], [b'Sad\xe2\x98\xb9']]

解释

  • 以上代码实现了基本的标记器。

  • 此标记器根据 ICU(Unicode 国际组件)定义的空格字符拆分 UTF-8 字符串。

更新于: 2021 年 2 月 22 日

190 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.