初始化词汇表外(OOV)令牌

时间:2017-08-03 21:58:12

标签: tensorflow embedding word-embedding

我正在为NLP任务构建TensorFlow模型,我正在使用预训练的Glove 300d字矢量/嵌入数据集。

显然,一些令牌不能被解析为嵌入,因为未包含在用于单词矢量嵌入模型的训练数据集中,例如,罕见的名字。

我可以用0的向量替换这些标记,但不是将这些信息丢弃在地板上,我更喜欢以某种方式编码并包含在我的训练数据中。

说,我有'raijin'这个词,无法解析为嵌入向量,用Glove嵌入数据集一致地编码它的最佳方法是什么?将它转换为300d矢量的最佳方法是什么?

谢谢。

2 个答案:

答案 0 :(得分:6)

不是将所有Out of Vocabulary标记分配给公共UNK向量(零),而是为它们分配唯一的随机向量。至少这种方式当你发现它们与任何其他单词之间的相似性时,它们中的每一个都是唯一的,模型可以从中学到一些东西。在UNK case中,它们都是相同的,因此所有UNK单词都将被视为具有相同的上下文。

我尝试了这种方法,并使用Quora Duplicate question pair detection模型在LSTM数据集上获得了3%的准确度提升。

答案 1 :(得分:1)

通过生成嵌入来查看关于处理'oov'令牌的EMNLP论文是很好的

Mimicking Word Embeddings using Subword RNNs