初始化词汇表外 (OOV) 标记

问题描述 投票:0回答:2

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

显然有些标记无法解析为嵌入,因为它们没有包含在词向量嵌入模型的训练数据集中,例如罕见的名字。

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

比如说,我有“raijin”一词,它无法解析为嵌入向量,那么将其与 Glove 嵌入数据集一致地编码的最佳方法是什么?将其转换为 300d 矢量的最佳方法是什么?

谢谢你。

tensorflow embedding word-embedding oov
2个回答
13
投票

与其将所有

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

我尝试了这种方法,并使用

Quora Duplicate question pair detection
模型在
LSTM
数据集上获得了 3% 的准确率提升。


1
投票

最好看看 EMNLP 论文,了解如何通过生成嵌入来处理“oov”标记

使用子词 RNN 模仿词嵌入

© www.soinside.com 2019 - 2024. All rights reserved.