Tensorflow如何使用Python将Illiad数据集中的标记化单词转换为整数?
Tensorflow是Google提供的一种机器学习框架。它是一个开放源代码框架,可与Python结合使用,以实现算法,深度学习应用程序等等。它用于研究和生产目的。
可以使用下面的代码行在Windows上安装'tensorflow'软件包-
pip install tensorflow
Tensor是TensorFlow中使用的数据结构。它有助于连接流程图中的边缘。该流程图称为“数据流程图”。张量不过是多维数组或列表。
可以使用三个主要属性来标识它们-
等级-讲述张量的维数。可以理解为张量的顺序或已定义的张量中的维数。
类型-它告诉与张量元素关联的数据类型。它可以是一维,二维或n维张量。
形状-它是行和列的总数。
我们将使用Illiad的数据集,其中包含来自WilliamCowper,Edward(德比伯爵)和SamuelButler的三本翻译作品的文本数据。当给出单行文本时,训练模型以识别翻译器。使用的文本文件已经过预处理。这包括删除文档的页眉和页脚,行号和章节标题。
我们正在使用Google合作实验室来运行以下代码。GoogleColab或Colaboratory可以帮助通过浏览器运行Python代码,并且需要零配置和对GPU(图形处理单元)的免费访问。合作已建立在JupyterNotebook的基础上。
示例
以下是代码片段-
keys = vocab
values = range(2, len(vocab) + 2) #为填充保留0,为OOV保留1
print("Map the tokens to integers")
init = tf.lookup.KeyValueTensorInitializer(
keys, values, key_dtype=tf.string, value_dtype=tf.int64)
num_oov_buckets = 1
vocab_table = tf.lookup.StaticVocabularyTable(init, num_oov_buckets)
print("A function has been defined to standardize, tokenize and vectorize the dataset using
tokenizer and lookup table")
def preprocess_text(text, label):
standardized = tf_text.case_fold_utf8(text)
tokenized = tokenizer.tokenize(standardized)
vectorized = vocab_table.lookup(tokenized)
return vectorized, label代码信用-https://www.tensorflow.org/tutorials/load_data/text
输出结果
Map the tokens to integers A function has been defined to standardize, tokenize and vectorize the dataset using tokenizer and lookup table
解释
vocab集用于创建StaticVocabularyTable。
令牌映射到[2,vocab_size+2]范围内的整数。
数字0用于指示填充,数字1用于指示语音外(OOV)令牌。