最近在考虑把大段的无结构文本通过机器学习或深度学习的方法进行分割自然段或子话题段的事情。这是自然语言处理的一个分支,该分支有很大的工业意义。主要应用有语音转录文本分自然段、辅助文本摘要、阅读理解等。
先看今天这个论文。该论文还是在计算上下文相似度的基础上进行文本分段落。直接从论文的第二部分开始,介绍了论文中用到的模型结构。输入是以英文单词为一个token的句子,Fig1中的就是一个单词。中间经过一个双向lstm得到,。其中代表正向lstm每个时间点的输出,代表反向lstm每个时间点的输出。
经过上图的操作之后,对、运用乘以weight加bias进行激活得到、。然后、进行点成并计算两者的相似度。分段的假设就是前文和后文的主题不一样,所以当前单词后面应该分自然段时,前后文的相似度低。正好正向的只包含前文信息,只包含后文信息(这部分的原理可以自己看lstm原理),两者的相似度代表了是否应该分段。计算、两者的相似度方法论文中也提出了两种:Softmin Function、Flipped sigmoid function(可以用softmax及sigmoid替换)。具体实现的时候可以根据论文中的公式进行实现。最后计算loss使用cross-entropy计算。
论文中未提到数据label的标注方式,我理解是标注成0/1,具体0代表分段标志还是1代表分段标志需要结合计算相似度的函数选择(这部分不是很确认),如果读者有更好的理解请评论。