为什么我们要在 NLP 任务中进行填充?

Gab*_*Chu 2 nlp deep-learning

在 NLP 任务中,人们用 SOC(句首)和 EOC(句尾)注释一个句子是很常见的。他们为什么这样做?

它是依赖于任务的性能吗?例如,您在 NER 问题中进行填充的原因与您为翻译问题进行填充的原因不同?就像在 NER 问题中一样,您进行填充以从上下文中提取更多有用的特征,但是在翻译问题中,您进行填充以识别句子的结尾,因为解码器是逐句训练的。

Pan*_*hin 6

为什么NLP 中有输出结束填充?

假设我们想使用 RNN(循环神经网络)为我们完成一个句子。让我们给它句子“如果起初你没有成功,”。我们希望它输出“再试一次”然后知道要停止。重要的是停下来。如果我们只使用句点,那么我们不能使用相同的 RNN 来输出多句响应。

如果我们使用 RNN 来回答问题,那么答案可能有多个句子。

为什么NLP 中有输出开始填充?

假设我们在诗歌上训练 RNN,我们希望它以我们训练它的方式制作原创诗歌。我们将不得不给它第一个标记来开始诗歌。我们可以给它第一个词,...或者我们可以直接说start。如果我们训练 RNN总是从一个唯一的标记开始(比如输出标记的开始),那么 RNN 可以选择要使用的第一个单词。

概括

事物的开始和结束对我们来说是如此直观,以至于我认为很容易忘记,在某一时刻我们必须学习何时足够(结束标记)以及何时或如何开始(开始标记),但是两者这些都是 RNN 必须学习的。