基于CNN字符级别模型的电信自动甩单类型识别案例研发及BERT模型探索
2019-10-21段智华
段智华
摘 要 本文对字符级CNN深度神经网络在中国电信上海公司的自动甩单类型识别案例进行了研究。我们使用电信自动甩单数据集,通过与传统的机器学习算法比较,实验表明字符级CNN卷积神经网络在文本分类预测中具有竞争力的结果。
关键词 电信自动甩单;CNN;BERT模型
1 背景
本论文是中国电信上海公司自动甩单类型识别内部竞赛的案例,训练数据集来自中国电信上海公司的甩单数据,内部竞赛分为2个阶段,初赛根据甩单数据,预测分类是生成一张订单还是多张订单;复赛在预测订单为单订单或多订单的基础上,进一步预测生成订单的具体数量、行项目数量和业务类型。
传统的机器学习文本分类算法首先提取文本的特征(Bag、TF-IDF等),然后将抽取的文本特征输入模型进行训练,常用的机器学习分类器模型包括Bag Naive Bayes、TF-IDF Naive Bayes、TF-IDF SVM、TF-IDF LGB、TF-IDF XGB、Model Ensemble等算法;深度学习算法在文本分类的应用,包括CNN等模型;我们采用的是CNN深度学习模型,在此次内部竞赛中荣获鼓励奖。
2 中文字符级别的CNN卷积模型
本案例中整个CNN模型架构包括6层,包括嵌入字向量层、CNN卷积层,最大池化层、2层全连接层及Softmax多分类层。
2.1 字向量映射层embedding(字符级别的向量编码)
新建字向量嵌入表embedding的维度为 [字汇表大小vocab_size,字向量维度embedding_dim],对于每一个输入的甩单特征文本[数据批次大小, 句子长度],我们读入甩单数据文本的信息,从字向量嵌入表查找对应索引位置的字向量,字向量映射层计算输出的大小为:[batch_size, seq_length ,embedding_dim]。
2.2 CNN卷积层
使用一层卷积层提取甩单文本字向量特征,卷积层输出的维度是[batch_size, seq_length - kernel_size +1, num_filters]。……
