如何使用Python和Tensorflow从已分词的Illiad数据集中构建单词词汇表?

如何使用Python和Tensorflow从已分词的Illiad数据集中构建单词词汇表?

Tensorflow是由Google提供的机器学习框架。它是一个开源框架,与Python一起用于实现算法、深度学习应用等等。它被用于研究和生产目的。它拥有优化技术,可以快速执行复杂的数学操作。这是因为它使用NumPy和多维数组。这些多维数组也被称为’tensors’。该框架支持使用深度神经网络的工作。

Tensor是TensorFlow中使用的数据结构。它有助于连接流程图中的边缘。这个流程图称为“数据流图”。Tensors只是一个多维数组或一个列表。

我们将使用Illiad数据集,其中包含来自William Cowper、Edward (Earl of Derby)和Samuel Butler的三个翻译作品的文本数据。当给出一行文本时,该模型被训练为识别翻译者。所使用的文本文件已经过预处理,包括删除文档头和尾部、行号和章节标题。

我们使用Google Colaboratory运行以下代码。Google Colab或Colaboratory可以在浏览器中运行Python代码,无需配置,可以免费访问GPU(图形处理单元)。Colaboratory是基于Jupyter Notebook构建的。

更多Python相关文章,请阅读:Python 教程

示例

以下是代码片段 –

print("使用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("对词汇表进行排序")
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("词汇表的大小是:", vocab_size)
print("前六个词条是:", vocab[:6])

代码来源 – https://www.tensorflow.org/tutorials/load_data/text

输出

使用tokens构建词汇表
对词汇表进行排序
词汇表的大小是:10000
前六个词条是:[b',', b'the', b'and', b"'", b'of', b'.']

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

解释

  • 单词词汇表是在按照它们的频率排序之后构建的。

  • 几个词汇项显示在控制台上。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程