刘祉燊,张倩,周菠,汪志霖,顾永昊
(山东石油化工学院,山东 东营 257000)
随着网络的发展和技术的提高,人们的精神需求也向更高层次发展,大众表达自我的意愿更为强烈,自媒体平台成为大众表达感情,发表言论的重要渠道。尤其是大学生群体具有勇于表达自己观点,热衷表达自己态度的特点。2021年2月3日中国互联网络信息中心(CNNIC)发布的第47次《中国互联网络发展状况统计报告》显示:截至2020年12月,我国网民规模达9.89亿,手机网民规模达9.86亿,互联网普及率达70.4%。其中,学生网民最多,占比为21.0%[1]。因此,学生网民在网络上的情感表达和舆论观点更值得关注。通过爬取网络大数据中学生的言论并以此文本为依据,挖掘当今大学生的关注话题和情感倾向,分析大学生的所思所想,对于及时掌握高校大学生的思想动态和疏导大学生的不良情绪有重要作用。同时,对高校在学生管理方面具有重要意义。
当今社会已进入大数据时代,手动获取数据已不适合现在的发展趋势,网络爬虫可以很好解决这类问题。网络爬虫是一种能够自动抓取互联网信息的程序或者脚本,广泛应用于网页或网站内容的检索。网络爬虫的实现形式多样,其工作原理也各不相同。典型的网络爬虫有通用网络爬虫和聚焦网络爬虫2类。本文采用通用网络爬虫,其实现基本原理及流程如图1所示。
图1 通用网络爬虫的工作原理
首先,根据初始爬取的网页得到初始统一资源定位系统(uniform resource locator,URL),接着由初始URL爬取网页内容并存储数据,在爬取数据过程中可获得新的URL地址,然后将新的URL地址加入URL列表。根据新URL地址重复以上步骤继续爬取数据,最后直到满足条件的数据爬取完后结束整个过程。
词语是一句话中能够体现独立含义的最小单位,通过词语分析理解文本含义是情感分析和数据挖掘的重要方法。对中文文本的情感分析需要将语句按照一定逻辑关系划分为词语后再进行分析。相比于英文单词在句子中用空格间隔开的自然分割,中文词语之间没有明显的区分标志,因此对中文语句中的词语划分要更加复杂和困难。
对语句分词时采用Python提供的第三方分词库——jieba库,jieba分词是一款开源工具,在中文文本分词方面广泛使用且分词效果较好。jieba分词工具对应有3种不同模式:精确模式、全模式和搜索引擎模式。如:对“山东石油化工学院新增3个本科专业”这句文本用3种模式分词,精确模式分词后为“山东/石油化工/学院/新增/3/个/本科专业”,全模式分词结果为“山东/东石/石油/石油化工/化工/化工学院/工学/工学院/学院/新增/3/个/本科/本科专业/专业”,搜索引擎模式分词结果为“山东/石油/化工/石油化工/学院/新增/3/个/本科/专业/本科专业”。从分词效果可以看出,精确模式可以对语句进行最精确的切分,并且不存在冗余数据,适合做文本分析。
在大数据时代,对文本情感手工分类已无法满足需要,当下通常选择机器学习算法对文本情感分类。常用的机器学习算法有:支持向量机、K近邻算法、朴素贝叶斯和神经网络等。其中,朴素贝叶斯模型是基于贝叶斯定理和特征条件独立假设的一种预测模型,主要应用在文本分类、疾病诊断等领域[2]。该方法简单有效,但在使用时假设属性之间相互独立,在实际应用中往往是不成立的,影响预测结果。神经网络模型包括卷积神经网络、时间递归神经网络和结构递归神经网络等不同模型,卷积神经网络在文本分析方面的优势不及在图像领域,多模型组合是未来神经网络在文本分析领域的改进方向[3]。支持向量机(SVM)在求解过程中避开了局部收敛的缺陷致使所得解准确率同比其他算法更高。因此,SVM算法回归分析所得解具有全局性和高准确性,该算法被广泛应用[4]。
支持向量机是机器学习算法的一种,于1995年由Vapnik等提出。该方法以训练误差为优化问题的约束条件,以置信范围值最小化为训练目标,是一种基于结构风险最小化的学习方法,推广能力优于其他传统学习算法。
支持向量机分类的基本思想是找到能够正确划分训练数据集并且使几何间隔最大的超平面,同时有少许不能准确分类的样本点。假设(xi,yi),xi∈Rm,yi∈{-1,1},i=1,2…m,则得到最有超平面为ω·xi+b=0。要使超平面的分类间隔最大,即求2/||ω||最大的问题,转化为(1/2)||ω||2最小。引入惩罚系数C表示样本点与最优超平面的距离程度。该问题可阐述为
式中:ω为权重向量;C为惩罚系数;ξ为松弛因子。C越大,未落在正确分类的样本对最优超平面的惩罚越大。
SVM提供了不同的核函数。常用的核函数有线性核函数、多项式核函数、径向基核函数和Sigmoid核函数。核函数的选择根据具体使用情境选择,如:是否线性可分、样本数量的多少等。所以,在使用SVM训练时,需经过大量调试,在考虑准确率、运算速度等问题的前提下选择合适的参数。
本文中文文本情感分析的数据来源采用山东石油化工学院官方微博上的评论,用以分析该校学生在日常生活和热点问题上的情绪表达。研究的整体思路如下:首先需要利用网络爬虫对网站数据进行采集,得到的数据集中包含了文字、符号和表情等多种信息,对无用信息进行剔除,并筛选出有效信息,将有用的语句作为文本情感分析的内容,并根据文本的情感倾向标注积极和消极情感标签。该文本为大多为语句式结构,接下来对文本预处理,将语句分词处理,转换为词语的形式,并生成词向量,形成机器学习的数据集和训练集。最后,将精简数据集输入SVM训练器进行分类训练,得到预测结果。中文文本情感分类过程示意图如图2所示。
图2 中文文本情感分类过程示意图
文本数据通过对山东石油化工学院官方微博下方评论数据的爬取获得。除了用户评论内容外,还可得到相应的用户id、用户昵称和评论时间等相关信息。在爬取数据时,首先根据浏览器中的开发者工具查看抓包过程中的相关信息,接着使用Python编程模拟发出网络请求,由于返回的数据是json数据,还需要用Python自带的json库对其进行解析,最后将解析后的数据保存为.csv文件。数据爬取结果如图3所示,为.csv文件中保存的微博评论区获取的用户id、用户昵称、用户所在城市和评论内容等相关数据。
图3 数据爬取结果
直接从网页爬取的数据中存在一定的无效信息,无法直接使用,如存在空白项、重复项和存在表情符号等问题,需先进行数据清洗,过滤掉无用信息。保留下来的中文文本的处理需将整个句子划为单词的形式,包括对中文的分词、去停用词和提取关键词等。文本中含有标点符号、介词和语气词等,这些词对理解文本没有实际意义,应从分词结果中去除,这些词称之为停用词[5]。利用哈尔滨工业大学创建的停用词列表,过滤文本中的停用词,减少停用词对语句分析造成的干扰。过滤后的文本按照语意划分分词,采用开源的jieba分词工具的精确模式切分。
文本向量化是自然语言处理的重要一步。文本向量化即将文本以向量的形式表现出来,这样就把自然语言的分析问题转化为机器学习的问题。通常,以词为基本单位进行文本向量化。本文采用2013年由Google公司提出的生成词向量的神经网络算法“Word2vec”[6]。该算法基于神经网络模型,通过对给定语料库的学习,生成维度不同的词向量空间,由于该方法是基于上下文对词语进行分析处理,因而能够达到本文需要达到的情感倾向性分类目的。
本文将微博评论区爬取的评论文本经过初步筛选和标注,得到积极情感文本329条和消极情感文本406条,共735条。该文本信息作为情感分析的原始信息,将经过处理的文本向量分为训练集和测试集2部分。采用支持向量机模型预测,将训练集和测试集输入支持向量机分类器训练,得到预测的准确率。由于支持向量机的分类效果与所选择的核函数、惩罚因子等有一定关系,所以选择合适的参数是达到良好分类效果的关键。
根据以上分析,经过数据爬取、数据预处理等步骤,将生成的词向量分为训练集和测试集输入SVM进行训练,得到预测模型。SVM的惩罚因子选择默认参数1,核函数分别选择常用的线性核函数、多项式核函数和径向基核函数进行测试。在不同核函数下的分类准确率见表1。
表1 SVM选择不同核函数的分类结果
由表1可知,当核函数选择多项式核函数时,分类效果最好,可达到91.2%,远高于其他2种核函数下的准确率。所以,选择多项式核函数作为中文文本情感分类预测模型的核函数。除了核函数影响分类结果准确率之外,惩罚因子与分类结果密切相关。在选择多项式核函数的前提下,测试不同惩罚因子对分类结果的影响,见表2。
表2 SVM选择不同惩罚因子的分类结果
由表2的分类结果可知,选择惩罚因子为0.8,核函数为多项式核函数能够达到较好的分类效果,分类准确率可达到95.2%。由于本文所采用的文本数量有限,且选取学校官方微博下的评论作为数据集,数据集的内容不够全面,因此,测试结果具有一定的局限性。未来可在该方面继续研究,得到更为广泛适用的预测模型。
本文建立了基于支持向量机的中文文本情感分析模型,通过支持向量机训练对山东石油化工学院微博下的评论进行情感倾向分析,可以达到分类正确率95%以上。该模型的分析,可以得到负面情绪文本内容,以及所对应的用户和话题等信息,可以针对性地分析学生的心理变化,对学校疏导和缓解学生负面情绪有一定的帮助。