程小刚 安梦佳 郭韧
摘 要: 网络舆情具有时效性强、传播迅速、涉及方面杂而广、意见指向性特征明显、泛娱化特征明显等特点。因此,提出对LDA输入数据采用TF-IDF算法加强特征词筛选的方法。选取 “巴黎圣母院大火”事件,采集作为网络舆情重要来源的微博数据,进行LDA建模,引入TF-IDF算法进行特征词的筛选,能较准确地分析出该事件的主题分布。
关键词: 网络舆情; 主题提取; LDA; TF-IDF
Abstract: Network public opinion has the characteristics of strong timeliness, rapid dissemination, wide and miscellaneous involved aspect, obvious directional feature of opinion, and obvious characteristics of pan-entertainment. Therefore, TF-IDF algorithm is proposed to enhance the feature word filtering for LDA input data. Select "Notre Dame Fire in Paris" event, collect micro-blog data, which is an important source of public opinion on the network, model it with LDA, and introduce TF-IDF algorithm to select the feature words, it is found that the subject distribution of the event can be analyzed more accurately.
0 引言
相对传统舆情,网络舆情传播互动更加迅捷,影响扩散更敏感,带有网友的主观性,直接以多种形式发布在互联网上。各类社交平台的出现,缓解了网民在网络信息上作为传播者和受传者角色上的不平等,网民可以发布和传播一手信息,网络信息的真实性失去严格的把控,大量偏差甚至虚假信息横行网络,而网民的情绪又极易被煽动,若无法针对舆论事件及时作出反应,就会出现一些不理智的言论,可能加速事件恶化,让相关单位的公信力受挫。及时、准确地收集舆论信息,提取出舆情事件的主题,并针对主题给出具有针对性、行之有效的解决方案,不仅能够为未来相关主题事件的解决做准备,更提高了解决效率,遏制了事件的恶化。网络舆情的研究主要集中在网络舆情概念理论、传播特征及途径、舆情传播影响因子、舆情引导策略等[1-2]方面,利用云计算、相关算法、聚类技术进行网络舆情的热点发现、情感分析、观点挖掘、监测模式分析、主题演化等[3-4]的研究。网络的开放性让人们越来越容易表达自己,网络舆情的监测控制变得重要。准确发现和提取网络舆情的主题,对舆情的监测和疏导有着积极的意义。
1 主题提取模型和算法
判断两篇文档是否相关,通常不仅仅取决于其在字面上的词语重复程度,还很大程度上取决于文本中所隐含的主题是否类似。在文本创作中,作者通常先确定文章的主旨,再根据要涉及到的每个主题,选取相应词汇,以突出主题、构成文章。在文本挖掘中,可模拟文本创作过程,先从主题集合中选取一些主题,再从每个主题下选取一些词语,这些词语构成了最终的文档。对一篇文档判断其主题分布,便是上述过程的逆过程。而也是由上述过程可知判断一篇文档的主题分布,关键便是得到文档-主题分布、主题-词分布。LDA(潜在狄利克雷分配主题)模型针对每篇文档,文档-主题矩阵、主题-词矩阵都是不确定的,通过贝叶斯方法估计词分布和主题分布的两个未知量,提高了文档处理的灵活性。
文本经数据预处理之后,成为一系列对文档主题有贡献的词,每个词的对主题的贡献率不同。TF-IDF算法便是用来评估词汇在所在文档中的重要程度,算法结果是得出每个词的权重。词权重不仅取决于其在文章中出现的次数多少,还取决于该词常见与否。当某个词较为少见却在一篇文章中出现频繁时,那么该词很可能反映了该篇文章的特点。算法步骤如下。
第一步,计算词频。TF=某词在文章中出现的次数/文章的总词数。
第二步,计算逆文档频率,用于衡量该词在所分析的语言环境中的常见程度。IDF=log(文档集D的文档总数/(包含该词的文档数+1))。一个词在所分析的语言环境中越常见,则IDF值越小。
第三步,计算TF-IDF。TF-IDF=词频(TF)× 逆文档频率(IDF)。
2 网络舆情主题模型构建
网络舆情的时效性较强,对主题提取的及时性有着较高的要求,网络舆情所涉及的民众角度多而杂,口语化表达较多,构建的LDA模型时需加强数据输入的代表性。TF-IDF算法能够计算出每个特征词的权重,值较小的词则对文档主题的贡献率较低,如不去除必然影响主题提取的准确率。在数据预处理阶段引入TF-IDF算法对分词结果进行过滤,使其转化为更具代表性的特征词。
2.1 语料库构建
语料库是由文档集提取而来,一个好的文档集中每篇文档涉及的主题较为广泛,不仅利于事件主题提取的准确性,还提高了训练出的LDA模型的在事件类型的适用性。结合网络舆情表现形式,将某一网络热点事件的舆情在文本形式上分为两大类:字数超800字的文章式分析型和字數较少的短文本评论型,参与范围较广的是后者,若想更广泛更全面了解民意,其更具主题提取价值。
网络舆情无论发布在哪个网站平台,人们针对某一特定事件的态度及评论的方式总是不变的,不同之处仅在于由于不同网站转发回复形式不同,使得采集的原始数据的预处理过程有些相异之处。多数微博用户所发博文内容字数不超过500字,属于短文本评论型,可在微博上选取10位以上微博博文内容“时事评论纯度高”,即博文内容涉及其他无关舆情主题较少的时事评论人,每个评论人所有博文内容构成一篇文档,以此构成文档集。采取这些时评人的微博内容用以训练模型不仅由于其涉及面广,而且因为该文本内容在表达形式上接近网友评论,同时这些时评人具有一定的权威性,其表达的观点较普通大众更为准确客观,更利于主题分类。
2.2 事件文档构建
网民参与度较高的表现为短文本评论,其表现为热门新闻下的评论、热门帖子或博文下的跟帖评论、单独开帖发表观点等。而对于所分析事件文檔构建,若要更真实地了解民意,需主题提取的更有效,应抓取事件热门新闻下的评论数据,或用于表达个人观点的微博博文数据等。前者是客观的新闻内容及评论区,其合情合理地成为舆论观点聚集地,后者毋庸置疑亦是属于舆情的重要来源。这两者纳入同一篇文档即构成所分析事件的舆情数据。
2.3 网络舆情主题模型
LDA模型是基于贝叶斯模型的,如图1所示。
θd表示第d篇文档的主题分布,用向量表示,θd,k表示第k个主题在第d个文档中的比例;Zd表示第d篇文档的主题分布全体,Zd,n表示文档中第n个词的主题;Wd表示第d篇文档的全体特征词,Wd,n是第d个文档中第n个词;N表示第d篇文档的特征词总数,d篇文档构成要生成的文档集D;K代表所有主题的集合,βk表示第k个主题中词的分布;α、η表示语料参数,p (θd|α)表示参数为α时第d篇文档的主题分布,p(βk|η)表示参数为η时第k个主题中词的分布。
LDA是在PLSA的参数上引入先验分布并进行贝叶斯改造所形成的,而LDA的Dirichlet先验分布则体现在语料参数α、η上:α代表文档中隐含主题之间的先验参数,η代表主题内部词语分布的先验参数,二者均服从Dirichlet分布。根据Xing Wei和W. Bruce Croft[5]等的研究,先验参数α、η可由经验确定,α=50/T、η=0.01,其中T为主题个数。LDA的联合概率公式为:
3 舆情主题分析及实证研究
3.1 微博舆情数据采集和处理
3.1.1 数据采集
利用网络爬虫技术,通过八爪鱼数据采集器实现数据爬取。语料库数据方面,选取了10个权威时事评论人:陈迪Winston、连鹏、敬一山、唐有讼、陈纯Camus、石述思、乔凯文、杨文战律师、吕频、韩东言。这10个时评人的关注事件角度均较为广泛,涉及医疗、教育、国际关系、女性权利、刑事、科技生活等众多能够引起广泛舆论讨论的方面。本文对该10个时评人微博主页中2019年内的微博数据进行了爬取,共抓取10054条有效微博博文数据。
舆情事件数据方面,选取“巴黎圣母院大火”事件。当地时间2019年4月15日下午6点50分左右,法国巴黎圣母院发生大火,整座建筑损毁严重,这座拥有人们集体记忆的“全人类的伟大遗产之一”受到如此重创,新闻一出,舆论哗然。利用八爪鱼通过微博关键字“巴黎圣母院大火”的搜索,共搜集1000条微博数据,6557条评论数据。
3.1.2 数据预处理
对爬取到的数据进行标准化、结构化,转化为LDA模型可输入的数据形式。数据预处理过程主要包括三个阶段:对提取到的内容做分词处理——去除分词结果中的无用词——TF-IDF算法提取特征词。
⑴ 文本分词:对于英文分词来说,基本只需要按照空格基于区分,而中文分词将一个个汉字组成的序列切割成一个个单独的词,也即将一个连续的字序列按照一定的规范重新组合成一系列词的过程。中文文本之间不但是彼此连续的,而且还有常用词、词性、成语等许多语法现象,需要借助一些特定的中文分词模块。本文采用Python中jieba分词工具。
⑵ 去停用词:分词结果中存在较多无意义的符号,与其他词相比没有具体的实际含义,但由于在磁盘中占用空间较大,为提高检索效率,可将其剔除。在文本处理中,一旦遇到该类词就停止处理,将其扔掉。停用词一般包括英文字符、数学字符、数字、标点符号、使用频率很高的单汉字等。本文引入来自于网络的较为全面的停用词表对分词结果进行处理,其内容涵盖了哈工大停用词、四川大学机器智能实验室停用词库、百度停用词等常见的停用词表,分词表共含1893个词符。在python中对前一步分词结果,引入停用词表进行处理后。
过滤掉停用词后,事件文本数据中仍存在大量词汇,词汇数目过多,输入到LDA模型中,产生的文档-词汇矩阵映射到向量空间时,信息过多、维数过大,不利于事件舆情主题提取的及时性和有效性。
⑶ TF-IDF提取特征词:通过在python中编写TF-IDF函数,共提取了前300个关键词。得关键词及其权重值如图2所示。
3.2 LDA实证建模及结果分析
在Python中引入gensim包,调用其LdaModel方法,输入已经预处理好的文档集作为corpus语料库、文档-词矩阵转化而来的数据字典及所欲得到的主题个数。输入得主题个数能够直接影响LDA模型的好坏,通过困惑度(perplexity)确定LDA模型主题个数:
其中,分母为测试集总长度,即文档集所有词汇数,p(w)指测试集中每个单词出现的概率,,p(z|d)指每个文档中每个主题的概率,p(w|z)指每个词汇在该主题下的概率。困惑度越低,说明LDA模型建的越好,而必然主题数越多,文档所属主题的不确定性也即困惑度越低。但主题数目过多,不但主题提取失去意义,更是容易出现模型的过拟合。由于对所分析事件最终共提取300个关键词,对LDA模型主题数从1-300的困惑度均进行了计算,通过Python完成上述过程,并对计算结果绘制了折线图。如图3所示。
主题数在178个附近时,困惑度达到最小,而>178,困惑度趋于平缓。然而,当将topic-number=178输入LDA模型时,得到的主题-词汇矩阵中存在大量主题的词汇相同,出现过拟合现象,经过主题数调整,最终确定topic-number=20时,困惑度最低且无过拟合现象。将新文档带入LDA模型,得到的主题分布如图4所示。
选取其中几个话题进行分析:
Topic2:作为全人类共同文化遗产的巴黎圣母院,如今被烧得几乎没了屋顶,大多数人表示痛心难过,更是希望法国政府彻底调查出起火原因,加强文物保护。