TensorFlow Text提供了一个与文本相关的类和操作的集合,可以与TensorFlow 2.0一起使用。
该库可以执行基于文本的模型所需的常规预处理,
在您的文本预处理中使用这些操作的好处是,它们是在TensorFlow图中完成的。
您不需要担心训练中的标记化与推理时的标记化不同,也不需要管理预处理脚本。
安装
pip install -q tensorflow-text
代码
# -*- coding: utf-8 -*-
"""
Created on 2020/11/23 11:01
@Author: CY
@email: 5844104706@qq.com
"""
# TensorFlow Text提供了一个与文本相关的类和操作的集合,可以与TensorFlow 2.0一起使用。
# 该库可以执行基于文本的模型所需的常规预处理,
# 在您的文本预处理中使用这些操作的好处是,它们是在TensorFlow图中完成的。
# 您不需要担心训练中的标记化与推理时的标记化不同,也不需要管理预处理脚本。
import tensorflow as tf
# 需要 tensorflow 2.0 pip install -q tensorflow-text
import tensorflow_text as text
##大多数操作都希望字符串是UTF-8的。如果你使用不同的编码,
# 你可以使用核心的 tensorflow transcode op来转码成UTF-8。
# 如果你的输入可能是无效的,你也可以使用同样的操作来强迫你的字符串转为结构上有效的UTF-8。
docs = tf.constant([u'Everything not saved will be lost.'.encode('UTF-16-BE'), u'Sad☹'.encode('UTF-16-BE')])
utf8_docs = tf.strings.unicode_transcode(docs, input_encoding='UTF-16-BE', output_encoding='UTF-8')
print('#标记')
# 标记是将一个字符串分解成标记的过程。通常,这些标记是单词、数字和/或标点符号。
# 主要的接口是 Tokenizer 和 TokenizerWithOffsets,它们分别有一个方法 tokenize 和 tokenize_with_offsets。现在有多个tokenizer可以使用,
# 每个tokenizer都实现了TokenizeWithOffsets。
# 每一个Tokenizer 都实现了TokenizerWithOffsets (扩展了Tokenizer),它包含了一个选项来获取原始字符串中的字节偏移量。这让调用者可以知道原始字符串中的字节数。
# 所有的tokenizer都会返回RaggedTensors,token的最内层维度会映射到原始的单个字符串。因此,生成的形状的等级会增加一个。如果您不熟悉它们
tokenizer = text.WhitespaceToken