介绍
前文介绍了许多方法来获取静态词向量,本文介绍使用lstm来训练词向量。
模型
1 | class RNNLM(nn.Module): |
数据处理
1 | # 读取文本数据,构建FFNNLM训练数据集(n-grams) |
数据来自reuters,在dataset那里是将前面词预测后面一个词,可以具体看dataset的处理方式。
不过有一个点需要注意,我用了1080Ti竟然跑不起来,参数量太大了,所以我改动了load_reuters代码,将词出现频次低于5的就忽略掉。代码如下。
1 | def load_reuters(): |
完整代码
1 | # Defined in Section 5.1.3.3 |