我正在为NLP任务构建TensorFlow模型,我正在使用预训练的Glove 300d字矢量/嵌入数据集。
显然,一些令牌不能被解析为嵌入,因为未包含在用于单词矢量嵌入模型的训练数据集中,例如,罕见的名字。
我可以用0的向量替换这些标记,但不是将这些信息丢弃在地板上,我更喜欢以某种方式编码并包含在我的训练数据中。
说,我有'raijin'这个词,无法解析为嵌入向量,用Glove嵌入数据集一致地编码它的最佳方法是什么?将它转换为300d矢量的最佳方法是什么?
谢谢。
答案 0 :(得分:6)
不是将所有Out of Vocabulary
标记分配给公共UNK
向量(零),而是为它们分配唯一的随机向量。至少这种方式当你发现它们与任何其他单词之间的相似性时,它们中的每一个都是唯一的,模型可以从中学到一些东西。在UNK case
中,它们都是相同的,因此所有UNK单词都将被视为具有相同的上下文。
我尝试了这种方法,并使用Quora Duplicate question pair detection
模型在LSTM
数据集上获得了3%的准确度提升。
答案 1 :(得分:1)
通过生成嵌入来查看关于处理'oov'令牌的EMNLP论文是很好的