如何使用Python和TensorFlow从伊利亚特数据集的标记化单词中构建词汇表?


TensorFlow是由Google提供的机器学习框架。它是一个开源框架,与Python结合使用,可以实现算法、深度学习应用程序等等。它用于研究和生产目的。它具有优化技术,有助于快速执行复杂的数学运算。这是因为它使用了NumPy和多维数组。这些多维数组也称为“张量”。该框架支持使用深度神经网络。

张量是TensorFlow中使用的数据结构。它有助于连接流图中的边。此流图称为“数据流图”。张量只不过是多维数组或列表。

我们将使用伊利亚特数据集,其中包含威廉·考珀、爱德华(德比伯爵)和塞缪尔·巴特勒三位译者的三个译文文本数据。该模型经过训练,可以在给出单行文本时识别翻译者。所使用的文本文件已进行预处理。这包括删除文档页眉和页脚、行号和章节标题。

我们使用Google Colaboratory运行以下代码。Google Colab或Colaboratory有助于在浏览器上运行Python代码,无需任何配置,并且可以免费访问GPU(图形处理单元)。Colaboratory构建在Jupyter Notebook之上。

示例

以下是代码片段:

print("Build a vocabulary using the tokens")
tokenized_ds = configure_dataset(tokenized_ds)
vocab_dict = collections.defaultdict(lambda: 0)
for toks in tokenized_ds.as_numpy_iterator():
   for tok in toks:
   vocab_dict[tok] += 1
print("Sort the vocabulary")
vocab = sorted(vocab_dict.items(), key=lambda x: x[1], reverse=True)
vocab = [token for token, count in vocab]
vocab = vocab[:VOCAB_SIZE]
vocab_size = len(vocab)
print("The vocabulary size is : ", vocab_size)
print("First six vocabulary entries are :", vocab[:6])

代码来源:https://tensorflowcn.cn/tutorials/load_data/text

输出

Build a vocabulary using the tokens
Sort the vocabulary
The vocabulary size is : 10000
First six vocabulary entries are : [b',', b'the', b'and', b"'", b'of', b'.']

接下来,您将通过按频率对标记排序并保留前VOCAB_SIZE个标记来构建词汇表。

解释

  • 根据标记的频率排序后构建词汇表。

  • 控制台中显示了一些词汇表条目。

更新于:2021年1月19日

313 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告