如何开始设计微博舆情监控系统

舆情监控对于企业来说,至少有如下三个作用:
1、了解用户的关注点;
2、了解行业热点及竞品动态;
3、快速呈现企业的负面消息,并了解原因,以便快速处理;

大体来说,舆情系统构建的流程包括:数据收集、数据处理、舆情分析、结果呈现。下面以微博信息挖掘为例,快速说明一下舆情系统的构建步骤,每一个步骤内容都有很多学问,这里仅抛砖引玉。

首先,定义问题。微博上时常有对其公司的负面消息,需要对其进行有效地回复以处理。但是,之前人工在网上逐条排查的方式,不仅较消耗人力,而且时而完成处理的时间较晚,造成负面的进一步传播。于是,我们希望能将负面微博自动识别,并将结果第一时间提供给运营或客服团队。

第二,收集数据。文本数据可以通过公司自身的业务数据、第三方接口、爬虫等方式获取。本例中,我们通过爬虫的方式,来爬取相关的微博内容。同时,我们还需要这些微博对应的标识(是否负面),以供之后的训练模型中使用,标识可由运营或客服团队来添加。

第三,数据清洗。对一些确定和问题无关的数据,进行规则过滤。如,负面微博为用户自发发出,来自公司应用分享的微博可能性不大,而且这部分量也很大,则可考虑进行过滤。确定过滤规则需要数据人员对业务和具体问题的理解,很多时候,也应与业务团队讨论确定。虽然我们可以通过算法尽可能的排除不合理数据的干扰,但好的数据作用往往大于好的算法。

第四,中文分词。对于英文文本来说,没有这个问题,而微博必然包含大量的中文,因此分词这步骤必不可少。一般来说,可以通过词库分词,或者隐马尔科夫模型进行自动分词,也可以两者一起使用,如优先词库匹配分词,再通过隐马尔科夫模型做新词发现。中文分词还有很多注意点,这里就不展开了。

第五,构建词袋。就是对分词后的文本进行向量化,以便算法进行调用计算。其中一种做法是,先计算词频,形成由频数构成的矩阵,维度是我们之前的各个分词,因此,往往会形成多维的稀疏矩阵。同时,有些词虽然出现频率很高,但对于结果并没多大影响,如果确定,这些可以通过添加停用词列表来过滤,更一般的做法是,进行tf-idf变换,tf-idf认为,在该文本出现多,但在整个语料库出现较少的词,对应该文本的重要性更高,tf-idf的权值也更高。

第六,训练模型。为了更好地验证模型的泛化能力,不会将全部样本进行训练,我们将样本分为训练集和测试集,这里常用留出法或交叉验证的方式。文本分类识别的常用算法有贝叶斯模型、LDA、神经网络等。依据上文所说的词袋构建规则,这里我们尝试可以选用多项式贝叶斯算法,在训练集上来进行微博的二分类训练。

第七,模型评估。用测试集在刚刚训练好的模型上进行预测。二分类模型的常用评估指标有:精确率(precision)和召回率(recall),F1值、ROC等。这里特别注意,精确率(precision)和召回率(recall)往往无法同时提高,需要权衡,对于本例中的负面消息识别,我们会对召回率有更高的要求。

第八,生成模型并保存。在确定好选择的算法和参数后,我们再用全部样本进行训练,生成最终的模型,并保存。需要保存的不仅是算法模型,还包括过程中的其他transformer,如构建词袋和tf-idf的转换方式。这些全部transformer就可以用来预测新微博是否是负面微博了。

第九,结果呈现。这里,多数情况下需要前端产品,模块可包括:1、负面微博的清晰展现,并提供对应的微博链接,以便快速定位;2、负面微博若要求全部处理,则要提供勾选是否已处理的选项;3、为了快速了解负面微博的焦点,可根据之前的tf-idf权值,制作词云或排序表格;4、自动识别的微博,并非能保证识别出全部负面消息,因此额外可提供全部微博的列表,供人工查询。同时,提供微博负面标记的功能,类似邮件系统里的垃圾邮件标识,这些可以再次投入训练,这样,我们的系统会越用越智能。

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注