如何embedding?
build_vocab()
只是一个建立索引的过程(生成了Vocab)对象,方便查表( word_embedding 的 matrix)
所以训练的时候,对每个field
, 只要 build_vocab(train_data, vali_data)
就好了。
(其实就是建立语料库,并生成索引;训练完成之后,模型的语料库就建好了,就不用添加了)
测试的时候就比如对测试集的每一个example(句子)做类似如下的操作:
[[text_field.vocab.stoi[x] for x in test_sentence]]
就可以了。
换句话说,我们输入Model的一句话都是一些词的索引列表,
在model内部我们定义的embedding函数会去做查表这件事
网友评论