李妹
(福州职业技术学院 福建省福州市 350001)
随着社会经济的发展,民众的维权意识逐渐提高,引起了相关部门的广泛关注。例如,2017年首都“智慧信访”大数据分析平台和2019年的全国信访局会议都提及了信访业务智能建设。信访工作的处理过程中引入大数据技术,能够有效推动、改进信访数据处理工作[1]。
信访大数据已经引起了国内外研究者的关注,李青云[2]从环境信访的角度阐述了大数据平台对于信访工作的必要性;李晓菊[3]讨论了信访任务在地方环保督察中的重要作用,并进一步明确了加强海量信访数据分析的必要性;丁大勇等人[4]从物联网和人工智能应用角度出发,提出了一套信访服务平台运行机制,有效降低了信访工人的工作量。信访大数据研究可应用于信访调查、访情预测、绩效考核管理、办理企业决策和记载历史[5]。研究者们关于信访大数据的研究涉及环境、司法、反腐、民调、管理等多个方面[6-12]。陈海郎[13-14]通过构建信访大数据平台,对信访量趋势进行分析和预测,能够有效预测各个区域的信访量。然而,他的研究缺乏对信访数据做更深层次的分析与挖掘。在信访大数据平台中,对海量数据进行过滤并采取分类处理技术可以有效地提高信访办事人员的效率。然而,在真实环境中,信访数据通常为短文本记录,具有严重的稀疏性和复杂的语义,人工辨别、标注有效的信访数据需要耗费大量的人力物力且效率非常低下。为此,本文将预处理之后的信访数据通过潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)映射成统一维度的向量,然后送入神经网络模型进行训练。为了验证所提出方法的有效性,本文采用了真实的文本数据进行实验。实验结果证明所提出的方法能有效的处理信访数据。
在自然语言处理领域,如何将句子、段落或文档类信息映射到向量空间中是一个重要的研究课题。常用的方法有词袋模型(Bag of Visual Words,BOVW)、TF-IDF(Term Frequency-Inverse Document Frequency)、权重向量模型和LDA 主题模型等。然而,这些传统的模型没有充分考虑到单词出现的顺序,疏忽了单词的语义信息。word2vec 模型考虑单词上下文语境,可以获取高质量的词向量。word2vec 是一个开源的Google 工具包,开发语言是Python。word2vec 大致分为两种不同的模型:连续词袋模型(Continuous Bag-of-Words,CBOW)和Skip-Gram。在CBOW 模型训练过程中,模型的输入端是某个词对应的上下文向量,输出是这个词的词向量。与CBOW 相反的是,Skip-Gram 模型的输入端是特定词的词向量,输出端是该词对应的上下文向量。CBOW 的模型框架如图1所示。
图1:CBOW 的训练模型框架
图2:算法模型框架
其中,输入层为上下文单词的onehot 映射向量,所有onehot向量分别与共享输入权重矩阵W 相乘,得到中间向量,然后加权平均后得到一个隐含层向量值,再将该值乘以输出权重矩阵,经过激活函数后得到一个关于单词的概率分布,概率最高的词是当前预测的中间词。word2vec 能够有效提取词向量,并且在很多任务中有着优异的表现,然而它无法将这些词汇向量有效的整合成一个文档向量。
在word2vec 基础上,Mikolov 提出无监督学习算法相关的Doc2vec(Paragraph Vector)模型。该模型没有限定句子长度,允许不同长度的句子做训练样本,就可以预测一个向量来表示不同的文档。因此,该方法可以用于文本分类之前的降维处理。句向量和词向量的训练算法是类似的。在Doc2vec 中,每一句话用矩阵D的某一列(向量)表示,每一个词用矩阵W 的某一列(向量)来表示。从一句话中平滑采集固定长度的词,任意选取其中一个词作为预测词而其它的作为输入词。该模型的是输入词对应的词向量和该句话对应的句子向量,将句子向量和词向量累加构成一个新的向量X 或累加后求平均值,新的向量X 就可以用来预测后续的词。词向量训练的关键点是可以根据每个单词的上下文进行预测,而Doc2vec 也可以用同样的方法进行训练。
实际场景中,单条数据的维度可能成千上万,直接对这样的数据进行处理会造成维数灾难,从而导致训练速度慢,影响模型的性能。因此,在数据特征维数较多(如中文语言处理分类)的情况下,研究者们通常会对原始数据进行降维。然后,通过对降维后的数据进行处理达到分类、聚类等目的。
LDA的核心思想是,给定一些文档集合。其中ω 表示可观测的变量,α和β 表示先验参数,z、θ 和φ 是未知的隐含变量,是词分布。按照LDA 的概率图模型,可以推导出所有变量的联合分布:
通过贝叶斯原理我们可以分析得到每个文档上主题的后验分布和每个主题下的词的后验表示如下:
通过LDA 主题模型计算得到每个文档在k 个主题下的向量分布,即任何一个文档可以映射到一个固定长度为k 的向量并通过这个长度为k 的向量进行语义特征表征。此时,对k 维主题向量矩阵的分类即为对文档的分类。
如图2所示,以信访数据中混有微博数据为例,模型框架的主要任务是通过主题模型将数据进行降维表征,通过神经网络技术构建分类器进行训练,并最终实现信访记录的有效识别,具体步骤如下:
Step1:获取语料库数据,如获取信访数据和微博数据;
Step2:对语料库进行分词,每一条文本记录切分成多个单词;
Step3:通过分词后的语料库构建停用词词表;
Step4:通过停用词词表对分词后的语料库进行停用词过滤;
Step5:构建LDA 主题模型或者Doc2vec 等降维模型,确定映射主题数或者文档向量空间特征维度k;
Step6:通过吉布斯采样进行主题模型训练,并获取到文档-主题分布;
Step7:构建神经网络分类器,并确定节点数、层数等参数;
Step8:通过短文本记录映射到固定k 维的向量表征进行分类器训练;
Step9:通过测试集进行测试;
Step10:指标评估,结束。
图3:信访记录主题分布
图4:结果对比图
分类器部分可以选择的部分有很多,如决策树,随机森林,朴素贝叶斯,神经网络等。以神经网络为例,每个神经元都包含权重值、偏置值和激活函数,将输入信号进行加权处理之后经过激活函数可以得到输出信号。通过神经网络构建分类器可以有效地学习到特征的关系并对数据进行拟合,通过设置、调节节点个数及层数、激活函数类型、学习率等可以加快识别率。在得到每一个文档的向量表征之后,通过构建神经网络模型可以进行分类器训练,有效的过滤掉非信访数据。
通过某市从2017年7月26日到2019年5月31日的在线申请信访数据(共计35 万条),并采样等量微博数据,在信访数据中抽取信访内容字段,微博数据中抽取微博文本内容(忽略数据集中的时间、地点等信息),构成实验语料库。通过收集得到的数据进行整理之后得到语料库,对语料库进行分词,语料库中包含几十万不同的单个词语,分词得到的文本记录数据由一个个的单词组成,即任意一条文本信息可以映射成多维单词构成的向量。此时,文本中混有一些不规则单词,如不规则单词(‘sss’,‘aaa’等)常用词以及不包含具体信息的单词(如‘你’,‘我’,‘我们’,‘去’等),统一称为停用词,并依据单词词频进行停用词词表构建(共计30 万停用词)。
表1:降维方法分类效果对比
表2:多分类准确率
表3:fastText 实验结果
停用词词表构建完成之后,通过将文本语料分词得到的数据进行停用词过滤,得到新的语料数据,但此时文本语料的单词数目仍然较大,不能直接构建特征并采用传统数据挖掘方法进行分析挖掘,故引进主题模型方法。在对文本进行聚类的同时得到每条文本数据在低维空间的投射。信访记录映射到k 维空间中的主题分布如图3所示。
从图3 中可以观查到,每个主题都具有一定的含义,如主题一(Topic 0)更倾向于工作人员的回复、答复,主题6(Topic 5)更倾向于体现学校相关的语义等等。
本文收集信访数据20 万条、微博数据20 万条进行处理之后,进行类别标注。通过LDA 模型可以获取每个文本在隐藏空间的一个映射向量,通过获取的向量特征对模型进行训练(随机选取60%的数据作为训练集,剩下40%作为测试集)。训练好的模型可以对微博数据和信访数据进行分类。具体的实验结果如图4所示。
将Doc2word 映射后的向量和LDA 降维后的向量分别输入给分类器,从表1 的具体数值结果可以得出当前语料库下LDA 表现更好。
在实际应用场景中,判定完有效信访信息后,需要进一步将信访信息进行归类,这一过程涉及到多个类别,通过文本挖掘手段可以有效的加速这一任务,即文本多分类任务。本文在信访数据中抽样得到35 万多条样本数据,共计包含12 个类别,分为测试集和训练集进行多分类任务。同样地,先将文本语料进行空间映射,然后进行多分类。在映射空间维度D=10 的情况下,结果如表2。
文本分类问题中,相比深度网络的训练方法,快速文本方法在精度相同的情况下,可以大量介绍训练时间。为了进一步优化信访数据和微博数据二分类任务以及信访数据多分类任务,本文比较了快速文本方法和LDA+分类器方法。实验结果如表3。
其中,LDA+分类器的结果均选取对应分类任务的最优结果,从结果中我们可以看出,不论在信访数据或者微博数据的二分类任务上还是信访数据的多分类任务上,快速文本的性能更优。
有效识别、过滤信访记录并且及时对舆情进行分析对于了解并解决民众生活中难点具有重大意义。针对短文本记录的特殊性,本文提出了基于LDA 主题模型和神经网络分类器构成的模型框架。通过LDA 进行文本数据降维,可以有效解决信访数据的稀疏性和语义复杂性问题。通过神经网络分类器可以有效的学习降维后的数据,到达对原始数据记录的过滤和分析。然后,通过快速文本对文本挖掘方法进行进一步的优化。通过对真实世界中信访数据与微博数据进行验证,所提出模型可以有效的识别出信访数据。