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

我们为什么在NLP任务中进行填充?,nlp,deep-learning,Nlp,Deep Learning,在NLP任务中,人们用SOC(句子的开头)和EOC(句子的结尾)注释句子是很常见的。他们为什么这样做 它是一种依赖于任务的性能吗?例如,在NER问题中填充的原因与在翻译问题中填充的原因不同?在NER问题中,您使用填充作为从上下文中提取更多有用的特征,但是在翻译问题中,您使用填充来识别句子的结尾,因为解码器是逐句训练的。为什么NLP中存在输出结尾填充? 假设我们想使用RNN(递归神经网络)为我们完成一个句子。让我们给它一句话“如果一开始你没有成功”。我们希望它输出“重试”,然后知道停止。重要的是停

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

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

为什么NLP中存在输出结尾填充? 假设我们想使用RNN(递归神经网络)为我们完成一个句子。让我们给它一句话“如果一开始你没有成功”。我们希望它输出“重试”,然后知道停止。重要的是停下来。如果我们只使用句点,那么我们就不能使用相同的RNN来输出多句应答

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

为什么NLP中有输出填充的开始? 比如说,我们训练一名RNN学习诗歌,我们想让它以我们训练它的方式创作原创诗歌。我们必须给它一个开始诗歌的标志。我们可以给它第一个词我们可以说开始。如果我们将RNN训练为始终从唯一的标记(如输出标记的开始)开始,则RNN可以选择要使用的第一个字

总结 一件事情的开始和结束对我们来说是如此直观,以至于我认为很容易忘记,在某一点上,我们必须学习什么时候足够(结束标记)以及何时或如何开始(开始标记),但RNN必须学习这两件事