# 为 word2vec 模型准备数据 我们将使用流行的 PTB 和 text8 数据集进行演示。 **Penn Treebank** ( **PTB** )数据集是在 UPenn 进行的[ Penn Treebank 项目](https://catalog.ldc.upenn.edu/ldc99t42)的副产品。 PTB 项目团队在华尔街日报三年的故事中提取了大约一百万字,并以 Treebank II 风格对其进行了注释。 PTB 数据集有两种形式: 基本示例,大小约为 35 MB, 高级示例,大小约为 235 MB。我们将使用由 929K 字组成的简单数据集进行训练,73K 字用于验证,82K 字用于测试。建议您浏览高级数据集。有关 PTB 数据集的更多详细信息,[请访问此链接](http://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz) 。 [可以从此链接下载 PTB 数据集](http://www.fit.vutbr.cz/~imikolov/rnnlm/rnn-rt07-example.tar.gz)。 **text8** 数据集是一个较短的清理版本的大型维基百科数据转储,大小约为 1 GB。有关如何创建 text8 数据集的过程,[请参见此链接](http://mattmahoney.net/dc/textdata.html)。 [text8 数据集可以从此链接下载](http://mattmahoney.net/dc/text8.zip)。 使用我们的自定义库`datasetslib`中的`load_data`代码加载数据集: `load_data()`函数执行以下操作: 1. 如果数据集的 URL 在本地不可用,它将从数据集的 URL 下载数据存档。 2. 由于`PTB`数据有三个文件,它首先从训练文件中读取文本,而对于`text8`,它从归档中读取第一个文件。 3. 它将训练文件中的单词转换为词汇表,并为每个词汇单词分配一个唯一的数字,word-id,将其存储在集合`word2id`中,并准备反向词典,这样我们就可以从 ID 中查找单词,并将其存储在集合`id2word`中。 1. 它使用集合`word2id`将文本文件转换为 ID 序列。 2. 因此,在`load_data`的末尾,我们在训练数据集中有一系列数字,在集合`id2word`中有一个 ID 到字的映射。 让我们看一下从 text8 和 PTB 数据集加载的数据: