keras - LSTM - 使用 word2vec 完成句子
问题描述
我想创建一个可以预测句子中缺少的单词的模型(句子有一个需要填充的整体)
我的数据集由~1000 个句子组成,最短的句子长度=6,最长的句子长度~120000。数据集的词汇量仅为 90。
模型具有 onehot 编码或预训练的 word2vec (gensim) 模型是否会产生巨大差异?我在 keras 嵌入层中使用预训练的权重:“冻结”(不可训练)该层的意义是什么,因为它对我的情况的准确性没有任何影响?
我尝试了两种表示方法,我的测试数据的准确性似乎没有区别。我达到的最高准确率是正确预测的 55%。
我是在正确的轨道上还是执行该任务的方法错误?我的机器非常慢,这使得参数实验变得如此困难和耗时。
我将不胜感激任何建议或提示!
解决方案
它会有所作为吗?是的,当然可以,但仅限于您词汇表中的 90 个单词。将 word2vec 与冻结一起使用的优势在于,您的模型可以用它以前见过的单词填充句子,但可能与它训练过的单词相似。
冻僵的感觉是什么?Word2vec 接受了数百万个标记的训练,但您的数据集中只有 90 个。因此,如果您不冻结您的模型,则只会修改 90 个可能失去与其他词的关系的词。例如,如果您有电视但没有电视,那么根据您的数据集,电视的含义可能会相对于电视发生变化。
推荐阅读
- python - 如何计算客户状态变化的次数
- tensorflow - 获取BERT最后4层的输出(Tensorflow)
- python - 如何使用python将变量插入MySQL表
- excel - 获取表格列Excel VBA的范围(或值)
- python - pycharm 无法在 Windows 10 上安装 Tensorflow
- html - 如何跨页面保存嵌入代码中的会话
- raspberry-pi3 - 有没有办法同时“打印”两个加速器的值?
- android - 在没有android studio布局编辑器的情况下通过xml创建android布局
- azure - 如何从我的单元测试代码中读取 azure DevOps 管道变量
- ruby-on-rails - Rails 使用条件连接嵌套表并阻止 N+1 查询