深入了解中文标点预测算法(一)

目前查找到的算法大多基于bert模型,对于bert模型进行微调,由于BERT论文中提供了序列标注的思路,所以单纯使用原论文的bert模型跑一下就可以得到比较满意的结果,目前我查找到的几个思路:

1、使用原论文中的bert模型

论文:
BERT:Pre-training of Deep Bidirectional Transformer for Language Understanding

2、使用bert模型+微调

项目:入口

思想:
在预训练的BERT掩码语言模型(BertForMaskedLM)的顶部添加了一个额外的线性层。BertForMaskedLM为每个(掩码)令牌输出一个logit向量。logit向量的大小为30522,与BERT token词汇表相对应。额外的线性层映射到可能的标点符号(比如:逗号,句点,问号和无标点)。

3、BiGRU+Attention

论文:
Bidirectional Recurrent Neural Network with Attention Mechanism for Punctuation Restoration

github:
GitHub项目入口

模型思想
输入通过BiGRU得到Ht,在通过一个单向GRU得到St,St对Ht做了attention,然后进行Late fusion,公式如下:
深入了解中文标点预测算法(一)
然后通过sorftMax算t时刻的各种分类的概率:
深入了解中文标点预测算法(一)
模型的结构图如下:
深入了解中文标点预测算法(一)

参考资料:
https://www.zhihu.com/question/263726115/answer/455680235