首页> 中国专利> 基于公众人物舆情知识图谱和XGBoost多特征融合情感预警方法

基于公众人物舆情知识图谱和XGBoost多特征融合情感预警方法

摘要

本发明公开了基于公众人物舆情知识图谱和XGBoost多特征融合情感预警方法,采用XGBoost梯度提升决策树和知识图谱结合的方式,从多特征角度对舆情预警值进行分析。首先实时获取微博文本,对每个微博文本进行处理。之后通过LDA实现主题提取,XGBoost进行微博情感分析,公众人物舆情知识图谱的构建,舆情事件热度计算。最后情感预警值计算与等级划分。采用XGBoost梯度提升决策树和知识图谱结合的方法,同时设计提出话题和事件的热度值和情感预警值计算公式,从转发、评论、点赞和情感极性等多维传播特征角度对舆情预警值进行计算,并对话题和事件采用不同的等级划分机制,使得舆情分析更加准确和快速。

著录项

  • 公开/公告号CN112905800A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN202110092936.1

  • 发明设计人 林绍福;任东亮;

    申请日2021-01-25

  • 分类号G06F16/36(20190101);G06F16/35(20190101);G06F16/958(20190101);G06K9/62(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人沈波

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2023-06-19 11:16:08

说明书

技术领域

本发明属于自然语言处理领域,涉及知识图谱构建和舆情预警技术,具体是一种基于公众人物舆情知识图谱和XGBoost多特征融合的情感预警方法。

背景技术

公众人物是指具有广泛的社会知名度和社会影响力的人物。互联网的开放性和即时性,让网络成为了谣言的发源地。一个负面舆论到引发危机,往往只要几分钟,对于公众人物来说,负面舆论获取的及时性相当重要,只有这样才能及时处理,遏制危机的爆发。进行舆论监测可以迅速监测到危害自己声誉的负面新闻,并及时做出应对对策,防止恶性信息的进一步扩散和传播,将负面信息第一时间扼杀在摇篮中,并能够起到及时疏导网情,塑造公信力的作用。

XGBoost的全称是eXtreme Gradient Boosting,它是经过优化的分布式梯度提升库,旨在高效、灵活且可移植。同时XGBoost是大规模并行boosting tree的工具,它是目前最快最好的开源boosting tree工具包,比常见的工具包快10倍以上。在情感分类上有较好的效果。

在大数据环境下,传统舆情分析技术的应用远远不能满足网络舆情管理的实际需要,因此必须要开拓创新,研究更为科学的知识组织技术和智能知识处理技术。知识图谱结构规范,语义丰富以及支持高效查询和复杂的知识计算的特点,能为舆情主题发现、热点跟踪、情感预警分析等提供有力支持。

发明内容

本发明采用XGBoost梯度提升决策树和知识图谱结合的方式,从多特征角度对舆情预警值进行分析。首先实时获取微博文本,对每个微博文本进行处理。之后通过LDA实现主题提取,XGBoost进行微博情感分析,公众人物舆情知识图谱的构建,舆情事件热度计算。最后情感预警值计算与等级划分。

本发明的目的可以通过以下技术方案实现:

S1基于公众人物舆情知识图谱和XGBoost多特征融合情感预警方法,该方法包括如下过程:舆情数据收集和预处理:在微博搜索框中输入指定公众人物名字,获取对应内容网页链接,通过网络爬虫技术将爬取到的数据存储到mysql数据库中,对获取到的数据进行数据清洗。

S2通过LDA模型进行话题提取:将文档集中每篇文档的主题以概率分布的形式给出;通过分析文档集,抽取出主题分布,根据主题分布进行主题聚类或文本分类;在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量k即可。LDA的核心公式如下示为:

P(word|doc)=P(word|topic)*P(topic|doc)

其中doc表示整篇文档内容,word表示文档中的词语,topic表示文章主题。从公式来看,通过文档doc中该词语word出现的次数除以文档中词语总数计算出来。

S3通过XGBoost进行微博情感分析:从数据库加载数据,分出变量X和标签Y;将数据集分为训练集和测试集,训练集来训练模型,测试集来测试模型准确度;直接使用XGBoost封装好的分类器和回归器,使用XGBClassifier建立模型。

S4构建公众人物舆情知识图谱:定义五种实体类别:话题、用户、事件、公众人物、事件情感极性。定义五种实体关系:<事件,属于,话题>、<用户,发布,事件>、<公众人物,参与,事件>、<公众人物,包含,话题>、<事件,表达,情绪>。最后将构建的知识图谱存储在Neo4j图数据库中。

S5通过图谱对热点话题进行热度计算步骤:根据话题热度计算公式WI(Z)=w(label(Z))(retweet(Z)+comment(Z)+likes(Z))和Cypher对图谱查询统计分析话题、事件、事件属性三者关系结合的方式,计算出话题中每一条原始微博的影响力。其中,Z表示多个文档组成的文本簇,w(label(Z))表示Z文本簇中话题类别对应的权重,retweet(Z)表示Z文本簇中所有微博文本的转发数之和,comment(Z)表示Z文本簇中所有微博文本的评论数之和,likes(Z)表示第Z个文本簇里所有微博文本的点赞数之和。

S6通过图谱对热点事件进行热度计算步骤:根据WI(e)=retweet(e)+comment(e)+likes(e)和Cypher对图谱查询统计分析事件、事件属性二者关系结合的方式,计算出每一条博文影响力。其中,e表示热点微博事件,retweet(e)表示微博文本的转发数之和,comment(e)表示微博文本的评论数之和,likes(e)表示微博文本的点赞数之和。

S7多维“传播特征”舆情预警情感值计算:话题情感值TS(Z)=WI(Z)*a+WI(-Z)*a,WI(Z)表示正面话题热度值,WI(-Z)表示负面话题热度值。其中a为常量对应的负面情感极性为-1,正面面情感极性为1。事件情感值ES(e)=WI(e)*c,WI(e)表示事件热度值,其中c为常量对应的负面情感极性为-1,正面面情感极性为1;

S8舆情等级划分步骤:

(1)根据不同舆情预警情感值将话题舆情等级划分为三部分,当舆情值小于-10万橙色预警(一般),当舆情值小于-20万黄色预警(严重),当舆情值小于-40万红色预警(较严重),当达到预警级别会发送短信或者邮件给相关负责人,进行舆情处理。

(2)根据不同舆情预警情感值将事件舆情等级划分为三部分,当舆情值小于-1万橙色预警(一般),当舆情值小于-3万黄色预警(严重),当舆情值小于-5万红色预警(较严重),当达到预警级别会发送短信或者邮件给相关负责人,进行舆情处理。

本发明的创造性主要体现在:

针对目前舆情预警中情感分析准确率低,速度慢。只进行情感分析和简单的事件统计,本文采用XGBoost梯度提升决策树和知识图谱结合的方法,同时设计提出了话题和事件的热度值和情感预警值计算公式,从转发、评论、点赞和情感极性等多维传播特征角度对舆情预警值进行计算,并对话题和事件采用不同的等级划分机制,使得舆情分析更加准确和快速。

说明书附图

图1是本发明的基于公众人物舆情知识图谱和XGBoost多特征融合的情感预警研究方法整体结构图。

图2是本发明的公众人物舆情知识图谱的实体关系图。

图3是本发明的公众人物舆情知识图谱的实体属性图。

图4是本发明的多特征融合的情感预警消息图。

具体实施方式

以下结合附图和实施例对本发明进行详细说明。

本发明采用的技术方案为基于公众人物舆情知识图谱和XGBoost多特征融合情感预警方法。

数据收集的具体步骤:

使用scrapy框架获取数据:找到微博高级搜索的页面,输入公众人物相关事件关键词,页面分析,解构url组成,梳理爬取字段,并用xpath定位提取,多级页面的构造,采用yield Requests形式将新的url传入,进行下一轮的爬取解析。其中爬取的字段有发布用户信息、博文、博文链接、发布时间、博文来源、评论数、点赞数、转发数、事件图片等数据。最后将爬取到的数据保存在mysql数据库中。

数据预处理的具体步骤:

在python中引入jieba包,连接数据库、数据库里的数据存入一个list、去除经常出现的停用词,对上面的列表文本数据通过jiaba分词的精确模式进行中文分词、对分好词的文本数据建立语料词典、对语料进行tfidf计算并对要做相似度的那批文本数据做词典向量转换。

通过LDA模型进行话题提取的具体步骤:

在python中引入gensim包,通过models包下的LdaModel进行模型训练,设置lda的topics数,保存训练好的LDA模型,利用模型获取文档的主题概率,找出主题概率大于0.6的主题分布,将结果保存在mysql数据库中。

通过XGBoost进行微博情感分析步骤:

在python包中导入XGBoost包,从数据库中加载数据,分出变量X和标签Y;将数据集分为训练集和测试集,训练集来训练模型,测试集来测试模型准确度;使用XGBClassifier建立模型和保存模型,加载模型进行情感分类。最后将结果数据保存在mysql数据库中。

构建公众人物舆情知识图谱步骤:

安装neo4j图数据库,建立java项目在Maven中添加spring-data-neo4j和相关依赖,建立五种NodeEntity(节点实体):话题、用户、事件、公众人物、事件情感极性。建立五种RelationshipEntity(关系实体):<事件,属于,话题>、<用户,发布,事件>、<公众人物,参与,事件>、<公众人物,包含,话题>、<事件,表达,情绪>,最后通过Repository进行图谱入库。

通过图谱对热点话题进行热度计算步骤:

根据话题热度计算公式

WI(Z)=w(label(Z))(retweet(Z)+comment(Z)+likes(Z))

和Cypher对图谱查询统计分析话题、事件、事件属性三者关系结合的方式,可以计算出话题中每一条原始微博的影响力。其中,Z表示多个文档组成的文本簇,w(label(Z))表示Z文本簇中话题类别对应的权重,retweet(Z)表示Z文本簇中所有微博文本的转发数之和,comment(Z)表示Z文本簇中所有微博文本的评论数之和,likes(Z)表示第Z个文本簇里所有微博文本的点赞数之和。

通过图谱对热点事件进行热度计算步骤:

根据WI(e)=retweet(e)+comment(e)+likes(e)和Cypher对图谱查询统计分析事件、事件属性二者关系结合的方式,可以计算出每一条博文影响力。其中,retweet(e)表示微博文本的转发数之和,comment(e)表示微博文本的评论数之和,likes(e)表示微博文本的点赞数之和。

多维“传播特征”舆情预警情感值计算步骤:

话题情感预警值TS(Z)=WI(Z)*a+WI(-Z)*a,WI(Z)表示正面话题热度值,WI(-Z)表示负面话题热度值。其中a为常量对应的负面情感极性为-1,正面面情感极性为1;事件情感预警值ES(e)=WI(e)*c,WI(e)表示事件热度值,其中c为常量对应的负面情感极性为-1,正面面情感极性为1;

舆情等级划分步骤:

(1)根据不同舆情预警情感值将话题舆情等级划分为三部分,当舆情值小于-10万橙色预警(一般),当舆情值小于-20万黄色预警(严重),当舆情值小于-40万红色预警(较严重),当达到预警级别会发送短信或者邮件给相关负责人,进行舆情处理。

(2)根据不同舆情预警情感值将事件舆情等级划分为三部分,当舆情值小于-1万橙色预警(一般),当舆情值小于-3万黄色预警(严重),当舆情值小于-5万红色预警(较严重),当达到预警级别会发送短信或者邮件给相关负责人,进行舆情处理。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号