在NLP任务中,人们使用SOC(句子的开头)和EOC(句子的结尾)来注释句子是很常见的。他们为什么这样做?
这是一项依赖任务的表现吗?例如,你在NER问题中填充的原因与你为翻译问题填充的原因不同吗?在NER问题中,你做填充以从上下文中提取更多有用的功能,但是在翻译问题中,你会使用填充来识别句子的结尾,因为解码器是逐句训练的。
答案 0 :(得分:0)
假设我们想要使用RNN(递归神经网络)为我们完成一个句子。让我们给它句子“如果一开始你没有成功”。我们希望输出“再试一次”,然后知道停止。这是重要的一站。如果我们只使用句号,那么我们就不能使用相同的RNN来输出多句话的响应。
如果我们使用RNN来回答问题,那么答案可能有多个句子。
假设我们在诗歌上训练RNN,我们希望它以我们训练它的方式制作原创诗歌。我们必须给它第一个开始诗歌的标记。我们可以给它第一个字,...... 或我们可以说开始。如果我们将RNN训练为始终从唯一令牌(如输出令牌的开头)开始,则RNN可以选择要使用的第一个词。
事情的开始和结束对我们来说是如此直观,我认为很容易忘记,在某一点上我们必须学习足够的时间(结束令牌)以及何时或如何开始(开始令牌) ,但这些都是RNN必须学习的东西。