我想使用Tensorflow进行序列标记,即语音标记.我尝试使用此处概述的相同模型: http://tensorflow.org/tutorials/seq2seq/index.md(其中概述了将英语翻译为法语的模型).
由于在标记中,输入序列和输出序列具有完全相同的长度,因此我配置了桶以使输入和输出序列具有相同的长度,并尝试在ConLL 2000上使用此模型学习POS标记器.
然而,似乎解码器有时输出比输入序列短的标记序列(似乎感觉EOS标签过早出现)
例如:
他估计9月份经常账户赤字将缩减至仅18亿.
上面的句子被标记为有18个令牌被填充到20(由于分组).
当要求解码上述内容时,解码器会发出以下信息:
PRP VBD DT JJ JJ NN MD VB到VB DT NN IN NN. _EOS. _EOS CD CD
所以这里它结束了15个令牌之后的序列(EOS)而不是18.
如何强制序列了解解码序列应与我的场景中编码序列的长度相同.
最佳答案 如果你的输入和输出序列长度相同,你可能想要比seq2seq模型更简单的东西(因为处理不同的序列长度是它的优势之一)
您是否尝试过培训(word – > tag)?
注意:对于像pos标记这样的东西,任何一方都有来自令牌的明确信号,你肯定会从双向网中获益.
如果你想疯狂,那么你也会有一些有趣的角色等级变体,你只会在令牌边界发出标签(理由是pos标记会受益于角色等级特征;例如像词汇名称之类的东西).尝试这么多变种! :d