□李丽蓉
(山西警察学院,山西 太原 030401)
随着互联网技术的快速发展和网民数量的日益增长,网络媒体逐渐成为一种主流信息传播形式,占据主导地位。网络媒体具有全球性、开放性、便捷性、互动性、隐蔽性等特点,在给信息传播带来便捷的同时,也使得网络舆情传播走向放大化和无序化,容易引发舆情热点和敏感话题,有时会造成巨大负面影响。因此,及时准确地发现并监控热点和敏感话题,有针性地做出反应,对构建和谐网络舆论环境,维护社会稳定具有积极的作用。
网络舆情检测系统主要包括舆情采集、舆情预处理、舆情分析和舆情处理四部分。
舆情采集主要是对web页面信息采集,通过网络爬虫工具定时、自动从被监测网站上采集信息。“当前主要的爬虫技术有通用型爬虫、主题爬虫和分布式爬虫”,[1]只有高质量的信息采集才能保证后续舆情分析的可靠性和及时性。
舆情预处理指初步整理采集的web页面信息,包括文本分词、去除停用词、数据清洗等过程,经过结构化处理将原始的半结构化或非结构化数据转换成规范的结构化数据集,存储到舆情数据库中,便于后续的舆情分析使用。
舆情分析是系统的核心部分,指对经过预处理后的舆情信息进行热点挖掘,产生出热点话题,并对话题进行敏感性分析,包括特征提取、话题聚类、热点分析等过程。
舆情处理包括舆情预警和舆情报告,系统根据分析统计得到的舆情信息及相关网络舆情预警指标,实施舆情报警,提交舆情报告。
对经过预处理后的文本数据,采用TF-IDF算法进行特征提取。把每篇文档按照标题向量化后表示为d=(t1,t2,…,ti,…,tm),其中ti为文档d标题经过预处理后的词。某词在文档中的重要性越大,它的TF-IDF值就越大。计算文档中每个词的TF-IDF值,然后按照TF-IDF值降序排列,选择排在前面的几个词,一般它们就是这篇文档的特征词。具体算法描述如下:
步骤1:计算词频
(1)
步骤2:计算逆文档频率
(2)
步骤3:计算TF-IDF
TF-IDF= 词频(TF)×逆文档频率(IDF)
(3)
话题聚类可以有效地提取各类信息,从而发现热点话题。根据网站的影响力和热点时效性,对各个网站设置相应权重,按照权重和发布时间对采集到的网页数据降序排序。默认一个热点关键词表征一个热点话题,然后以关键词为线索对热点话题进行聚类,采用夹角余弦公式计算本页面文本与已有热点话题的相似度。
1.K-Means算法
K-Means算法是一种常用的基于划分的聚类算法,它的基本思想是:首先对于给定的样本集D,根据一定策略选择K个点作为每个簇的初始中心,将其余样本划分到距离最近的簇中。然后在生成的新簇中,重新计算K个簇的中心,再重新进行划分,使簇内的点尽量紧密地放在一起,使簇间的距离尽量大。具体步骤如下:
步骤1:在样本集D中随机选择K个簇初始中心点。
步骤2:分别计算每个样本到K个簇中心点的距离,把每个样本划分到距离最近的簇中。
步骤3:重新计算各个簇中的样本到该簇中心点距离的平均值,作为簇的新中心点。
重复步骤2和3,直到簇中心点不发生改变或是达到最大的迭代次数。
K-Means算法具有简单有效,收敛速度快,簇内相似度高等优点,但也有一定的局限性:需要提前设定划分簇数K。最常用方法是随机选择K,K的取值不同在一定程度上会导致聚类结果波动性大,容易受到噪声数据和离群数据点的干扰。
2.差分进化算法
“差分进化(Differential Evolution,DE)算法是用于求解优化问题的一种启发式搜索算法”[2],用于求解多维空间中全局最优解。它的基本思想是:首先利用种群个体的差异进行重组,得到中间种群。然后根据适应度值选择表现较好的个体作为下一代种群个体,经过反复迭代向问题的最优解逼近。具体算法描述如下:
种群表示为:
(4)
(5)
步骤1:种群初始
(6)
xj,max和xj,min是j维向量的上下限,rnd是0到1之间的随机数。
步骤2:变异
(7)
步骤3:交叉
(8)
式中Pcr是杂交概率,Pcr∈[0,1]。
步骤4:选择
3.改进的K-Means算法
为了克服K-Means算法的缺陷,采用改进的差分进化算法对K-Means算法进行优化。它的基本思想是:首先,从数据集中随机选择K个聚类中心,构建初始种群。然后,采用差分进化算法的变异、交叉和选择等操作获得最优个体。最后,利用最优个体获得最优初始聚类中心并进行文本聚类。具体算法描述如下:
步骤1:种群初始化
在数据集D中随机选择N个个体作为初始种群,每个个体由K个聚类中心向量组成。
(9)
(10)
步骤3:变异操作
(11)
步骤4:交叉操作
(12)
式中Pcr是杂交概率,Pcr∈[0,1]。
步骤5:选择操作
步骤7:从输出的最优个体得到最优聚类簇中心集K,将种群中所有个体划分到距离最近的簇中。
根据新闻、论坛、博客等各自的特点设计相应的热点分析模型。
1.新闻热点分析
不同网站中新闻的可靠性不同,新闻的浏览人数和评论条数也能反映其热度,设计如式(13)热点分析模型。
Weight(f(pni,cni))
(13)
式中HotValues(t)表示话题t的热度值,n表示话题t的新闻个数,Weight(Si)表示新闻i所在网站的权重,Weight(f(pni,cni))表示新闻i的浏览次数与评论条数的权重,pni表示新闻i的浏览次数,cni表示新闻i的评论条数,f(pni,cni)=αpni+βcni,其中α∈(0,1),β∈(0,1),α+β=1。
2.论坛与博客热点分析
论坛与博客除了采用新闻所在网站中的网站权重、浏览次数与评论条数的权重外,还增加了帖子i的转载次数权重Weight(dni),如式(14)。
Weight(f(pni,cni))×Weight(dni)
(14)
系统采用常用的“误检率、漏检率和耗费函数作为网络舆情话题检测算法优劣的评判标准”。[3]误检率指语料库中检测错误的该话题不相关文本数目与该话题不相关文本总数的比值,漏检率指语料库中未检测出的该话题相关文本数目与所有该话题相关文本总数的比值。耗费函数C是错误识别代价,是建立在误检率和漏检率之上的总体性能损失。假设语料库中所有与该话题相关文本总数为A,不相关文本总数为B,其中从A中检测出的文本相关数为A1,从B中检测出的文本相关数为B1,漏检率、误检率和耗费函数表示为:
PM=(A-A1)/A
(15)
PF=B1/B
(16)
C=CMPMP+CFPF(1-P)
(17)
式中PM和PF是漏检率和误检率,C是耗费函数,CM和CF是漏检率和误检率的代价系数,P是文本属于某话题类的先验概率。设定CM=1,CF=0.1,P=0.02。
网络舆情分析系统基于Hadoop开发,系统选择新闻、论坛及微博作为信息源,利用网络爬虫技术对2019 年内的新闻报道和帖子爬取数据,再从这些信息中随机选取了翟天临事件、大学生网贷、乘客进驾驶舱、上海垃圾分类和凉山森林火灾等5个话题,为每个话题选择100 篇相关的文本信息作为语料库,共 500 篇,使用Eclipse设计舆情分析算法,后台数据库采用 MySQL,进行舆情分析实验。基于K-Means算法与改进的K-Means算法的话题检测统计结果如表1与表2所示。从实验结果来看,提出的网络舆情分析算法快速有效,话题检测准确率较高。
表1 K-Means算法聚类结果
表2 改进的K-Means算法聚类结果
本文研究的是文本聚类算法在网络舆情话题检测中的实际应用,将具有结构简单、易于实现、控制参数较少、收敛速度较快等优点的差分进化算法与K-Means聚类算法相结合,实验结果表明,与K-Means聚类算法相比,改进算法明显提高了初始聚类中心的选择优化能力,全局搜索能力更强,收敛速度更快,聚类结果质量更高。