导入需要的库
1 | from __future__ import absolute_import |
下载并读取语料库中的数据
首先运行如下代码,下载语料库。
1 | # 第一步: 在下面这个地址下载语料库 |
运行如下代码,将语料库转化为列表,并打印语料库单词长度以及前100个单词。
1 | # 将语料库解压,并转换成一个word的list |
语料库预处理,制作词表
1 | # 第二步: 制作一个词表,将不常见的词变成一个UNK标识符 |
说明:
data : 转化为索引的数据集
count : 词频统计
dictionary : 单词到索引的映射
reverse_dictionary : 索引到单词的映射
CBOW
定义模型生成 batch 的函数
1 | # 第三步:定义一个函数,用于生成cbow模型用的batch |
训练
1 | num_steps = 100001 |
可视化
1 | # Step 6: 可视化 |
完整代码
1 | # coding: utf-8 |
Skip-gram
制作训练集
1 | # 我们下面就使用data来制作训练集 |
我们运行如下代码,试着打印一下生成的训练集的 batch
1 | # 默认情况下skip_window=1, num_skips=2 |
建立模型
1 | # 第四步: 建立模型. |
训练
1 | # 第五步:开始训练 |
我们可以看到最近一次的训练结果,词语的相似度越大,语义约接近
可视化
1 | # Step 6: 可视化 |
完整代码
1 | # coding: utf-8 |