如何在 Python 中使用空格分词器与 Tensorflow text 结合?


Tensorflow text 可以通过调用“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 类)。这包括获取原始字符串中字节偏移量的选项。这有助于了解创建标记时原始字符串中的字节。

N-gram 是当给定大小为 n 的滑动窗口时,连续的单词。当组合标记时,支持三种缩减机制。对于文本,可以使用 Reduction.STRING_JOIN。它将字符串附加到彼此。默认分隔符字符为空格,但可以通过 string_separater 参数更改。

其他缩减方法用于数值,它们是 Reduction.SUM 和 Reduction.MEAN。

示例

print("Whitespace tokenizer is being called")
tokenizer = text.WhitespaceTokenizer()
tokens = tokenizer.tokenize(['Everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])
print("Here, n is 2, hence it is bigram")
bigrams = text.ngrams(tokens, 2, reduction_type=text.Reduction.STRING_JOIN)
print("The bigrams are converted to a list")
print(bigrams.to_list())

输出

Whitespace tokenizer is being called
Here, n is 2, hence it is bigram
The bigrams are converted to a list
[[b'Everything not', b'not saved', b'saved will', b'will be', b'be lost.'], []]

解释

  • 调用空格分词器。
  • “n”的值设置为 2,因此它被称为二元语法。
  • 标记存储在列表中,并在控制台上显示。

更新于: 2021年2月22日

232 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.