如何使用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个标记来构建词汇表。
解释
根据标记的频率排序后构建词汇表。
控制台中显示了一些词汇表条目。
广告