基于BERT模型的政策条件识别研究
2020-05-18顾佳怡
顾佳怡
摘 要
企业想要从近年国家推出的各种惠企政策中找到适合自身的优惠政策需要花费大量的时间,为了节省时间成本以及实现惠企政策更好的推送,本文利用BERT+DNN模型的方式,使用BERT将政策文本向量化,从而赋予句子一定的含义。而后向DNN网络输送数据,训练出分类模型使其能够自动识别政策文件中企业申领补贴所要达到的条件。在仅仅解读了166篇文件的情况下,最终得出大多数分类的准确率都达到了80%以上,而且可知DNN所获取的训练数据越多,分类就会越准确。更精准的模型能够节省很大时间成本与人力成本解读政策并且为后续任务提供支持。
关键词
自然语言处理;TF-IDF;Single-Pass聚类;热点问题提取
中图分类号: F626;TP391.1 文献标识码: A
DOI:10.19694/j.cnki.issn2095-2457.2020.07.093
0 引言
近几年国家推出许多惠企政策,用以降低企业经营负担;鼓励、扶持企业创办;援助、恢复企业生产力等。针对不同地区、不同类型的企业会推出不同的政策;同一个政策文件中有对企业申领补贴的条件、补贴的项目、申报的材料等各字段。面对各类惠企政策,很多企业难以分散出精力去研究自身能够获得哪些补贴。为了能够让企业获得更多的实惠,判定企业可以获取哪些政策给予的补贴。首先要判定该企業是否满足政策的补贴申领条件。
本文基于福建省福州市地方政府出台的各类政策,利用BERT模型结合DNN训练出的分类模型用以识别政策的中的各种条件。为后续给企业推送、政策匹配以及给企业做出政策申请的诊断做技术铺垫。
1 理论模型
1.1 BERT模型
使用计算机从政策中提取条件之前,首先要让计算机识别政策中哪些字段属于条件,BERT模型是由Google公司训练的,可以将字、句子进行向量化并且赋予字向量、句子向量一定意义的模型,其最大的特点在于能够在不同的语境赋予字不同的意义并且以句子为单位将整句话的意义融合到句子开头的符号中。本文将用于政策中的句子输入到BERT模型,得到可以用于后续任务的词向量与句向量。
1.2 DNN模型
DNN即为深度神经网络,是包含输入层、隐藏层和输出层的神经网络。网络会通过自身的神经元进行复杂的运算,整合出输入数据与输出数据的关系。从而发现事物的特征以及事物之间的内在关联,并以参数的形式存储下来。新的数据进入模型,根据已经存储下来的参数进行计算可以自动分类。
2 政策条件识别实证研究
2.1 研究流程
首先收集福州工信局、福州市人民政府、福州市政府公开信息栏这三个门户网站发布的政策。第二,将收集好的政策按照句子为单位拆分。第三,依据企业标签体系将政策中的企业申报补贴条件打上对应的标签值。第四,将所得句子输入到BERT模型,获取句子的句向量。第五,将数据分为训练集与验证集,并将训练集输入到DNN模型中进行训练。最后利用验证集检验模型分类效果。
2.2 数据预处理
2.2.1 政策文件的收集与处理
首先,本文利用网络爬虫技术,收集了来自福州工信局、福州市人民政府、福州市政府公开信息栏三个政府门户网站的166个政策文件。然后,设定规则将政策文件按照句字拆分并清理掉无用的符号,总共得到8465句话。最后将数据输入到GOOGLE训练好的专用于中文词向量化的BERT模型中,得到句子向量化后的数据。并将数据分为训练集与测试集。
2.2.2 企业标签的获取
本文设定9个维度去刻画一家企业,分别为:基础信息、经营状况、企业绩效、企业发展、经营风险、知识产权、社会贡献、舆情信息、企业法人群体。政策文件中对企业申领补贴的条件会与这9个维度的标签相对应。所以政策文件中属于申领补贴条件的句子会被打上标签值为1-9的标签;若政策文件句子不属于任何维度则标签值为0。
2.2.3 数据的分布
整理本文得到各类条件的占比以及分类如表1。
2.3 基于BERT模型输出结果说明
本文使用的BERT模型,是由GOOGLE发布的用中文训练所得模型。将数据输入模型得到每个句子的向量,输出的结果中包含的信息如下:
●整个BERT模型由12层transformer构成,本文结果从倒数第二层取出。
●结果中包含8465个条目,每个条目与训练前的句子一一对应。
●每个条目中都有名为CLS的向量,其维度为768维,包含了整句话的所有信息。
●各条目中包含了原句的单个字的信息,每个字都被训练为768维度的向量。
本文旨在从政策文件中提取出是条件的句子以及给条件分类,所以后续任务中用到拥有每个句子所有信息的CLS来进行分类即可。
2.4 基于DNN网络分类结果分析
得到包含政策句子的句向量后,需要搭建DNN神经网络模型进行多分类,本文利用Python编程,使用keras深度学习框架搭建神经网络。网络的参数如下:
●输入层,神经元个数24、输入维度768、激活函数为relu.
●隐藏层1,神经元个数16、激活函数为relu.
●隐藏层2,神经元个数12、激活函数为relu.
●输出层,神经元个数10、激活函数为softmax.
随机抽取80%的数据放入网络中训练,剩下20%的数据对模型的结果进行验证,最终得到的验证集结果如表2。
从表2可以看到,各类别分类结果参差不齐。结果最好的为‘非条件类别,准确率高达98.51%;结果最差的为‘舆情信息类别,准确率只有63.26%;不过总体来看分类效果还不错,除‘经营状况、‘舆情信息以外其他类别的准确率都在80%以上。
并且可以很明显的看出,准确率低的类别数据量都较少,准确率高的类别数据量都较大,所以有理由认为随着数据量的增多,政策条件识别的准确率会随之增加。
3 结论
本文采用的数据为福州市政府门户网站的公开惠企政策,共计166个,政策内容均为文本形式。将政策文本拆分为以句为单位,利用BERT将句子转为向量,结合DNN深度神经网络分类器对政策文本条件进行识别得出以下结论:
第一:人为对惠企政策进行解读的话文本中有的条件是可以直观得到的,但有的条件会与别的条件产生耦合,个人长时间对政策进行解读的话很容易产生误判,利用机器对政策条件进行识别会大大提高效率和准确率。
第二:机器对政策识别的准确率需要大量数据的支撑,从表2的结果也可以看出,随着数据量的增大,分类的准确率也会增高。
第三:效率的提高,如果训练出来的分类模型效果比较好。后续政策条件的提取就会大大节省人工成本以及时间成本。
最后:本文将网络爬虫、数据处理、模型迁移、分类模型的搭建等技术都利用Python编程自动化实现。之后可将其封装成为一个模块部署在政策检索的系统中帮助系统提升性能。为后续的任务如:政策推荐、政策匹配、政策分析等提供有力的支撑。