主要流程

在热点话题发现中,主要的流程如下:

在微博流中加入一个时间窗,从时间窗开始处累计微博,直到时间窗的结尾,然后对这个时间窗内的微博进行特征抽取,得到能表示微博的词语,并转化为特征空间中的特征向量;然后利用凝聚式层次聚类算法对文档集合聚类,得到候选话题簇,然后利用 SinglePass 算法判断每个候选话题和历史话题的相似度,如果最大相似度小于阈值,则认为候选话题是一个新话题并把这个候选话题转换成新话题,然后把该话题加入到历史话题中以便后续跟踪;否则选取和候选话题相似度最高的前 K个历史话题,并把和这些历史话题相关的微博放到一个文档集合中,然后对该候选话题中的每一篇文档,利用 KNN 算法,得到每篇文档应该归入的历史话题ID,并把这些话题 ID 放入到话题集合中,然后统计每个历史话题 ID 所占的比率,并把该候选话题归入到所占比例最高的话题 ID 所对应的话题中,然后循环处理其他候选话题。

相关算法

层次聚类

层次聚类(Hierarchical Clustering)又叫树聚类算法,它通过某种文档相关性度量方法,将所有文档以树形结构的形式组织起来。树中叶子节点代表微博文档,非叶子节点为一个类簇,该类簇包含其下面的所有叶子节点所代表的微博文档。根据层次所形成的方式,层次聚类可以分为自底向上方法的凝聚法和自顶向下的分裂法。凝聚算法在进行聚类时,把每一篇微博文档初始化为一系列的单独类簇,然后对这些单独类簇进行两两合并,直至其中相似度最大的两个类簇之间的相似度阈值小于预设的阈值,算法终止。分裂法则是进行相反的聚类过程,首先把所有的微博文档初始化为一个大类簇,然后进行类簇的分裂,把大类簇分裂成小类簇,直至其中一个类簇的阈值满足预设的阈值,则算法终止。图 2-3 给出了层次聚类两种方式的示意图。

凝聚式层次聚类算法(Hierarchical Agglomerative Clustering,简称 HAC)HAC 算法应用适用范围广。HAC算法如下:

  • Step1:令微博集中的每条微博为一个类簇。
  • Step2:计算微博集合中两个微博之间的距离。
  • Step3:找到相似度最大的两个类簇i_C ,j_C,并合并这两个类簇生成一个新的类簇C 。
  • Step4:对类簇中心进行更新,并重新计算类簇 C 和其他类簇之间的相似度值。
  • Step5:判断相似度最大阈值是否大于预设的阈值,若是,则结束退出;否则,继续执行 Step2。常用的终止条件是类簇之间的最大相似度小于预设的阈值。

在 HAC 聚类算法中,在迭代过程中,不断有文档加入到类簇,为了让聚类中心能够真实准确代表类簇的成员,需要使用聚类中心更新算法重新计算类簇的聚类中心。算法的大致流程是每次有新的文档或者新的类簇加入到类簇或者话题中时,就对类簇或者话题的聚类中心进行更新。

在进行类簇合并时,不仅需要考虑两个类簇共有的特征项,还要把两个类簇独有的特征项加入到聚类中心时,相应地就需要重新计算这些新加入的词和聚类中心中已有的词语的特征权重,这些新加入的词语能够丰富话题的表现能力,并能很好地适应话题的漂移,提高话题的自适应性。

SinglePass + KNN

通过对时间窗TW1内的微博文档进行凝聚层次聚类,生成候选话题簇。先对新文档集合进行聚类,可以解决微博流的“边缘效应”问题,即是在微博流中,相对于那些时间上间隔很远的微博,时间间隔很近的微博讨论同一个话题的可能性更大。

话题是有生命周期的,一般包括事件发生的开始阶段、发展过程、高潮迭起阶段以及结束。因此在进行候选话题和历史话题进行相似度计算时,没必要和所有的历史话题进行计算,这样会带来大量的无意义计算,影响算法的性能。

为了解决这个问题,引入了第二个时间窗TW2,这个时间窗代表话题的生命周期(即一个话题从首次被到话题结束之间所相隔的天数),目的是为了限制需要比较的历史话题数量。由于历史话题是经过长时间积累下来的,数量会非常庞大,针对这个特点,在对候选话题和历史话题进行相似度计算时,选择了单边聚类(Single-Pass)算法,主要是因为 Single-Pass 算法是一个迭代的聚类算法,效率比较高,特别是针对海量数据,优势很明显。在用 Single-Pass 算法进行话题跟踪时,计算的对象是候选话题的聚类中心和历史话题的聚类中心,由于聚类中心是多个文档特征向量的综合,并且在进行特征选择时,为了降低计算复杂度,对特征向量的数量进行了限制,只选择 Top N 个特征词,这会造成聚类中心并不能完全代表话题的文档簇所表达的意思,这会影响相似度的计算结果,进而影响话题跟踪的准确性。

为了解决这个问题,我们对传统的 Single-Pass 算法进行了改进,在进行话题跟踪时,不是只选择相似度最高的历史话题并把候选话题并入该历史话题,而是选择Top K (k由人为给出)个相似度最高(相似度大于阈值)的历史话题,并获得这些历史话题的相关文档,然后利用 KNN算法对候选话题的相关文档进行分类,计算候选话题的每篇相关文档应并入的历史话题,并根据每篇文档对应的历史话题所占有的比率决定候选话题应并入的历史话题。

算法的主要思想是:

  • 如果当前没有历史话题存在,则把最新到达系统的第一个候选话题Cc作为第一个历史话题1C
  • 如果存在历史话题集合 C(TW2 内的历史话题集合),则把Cc和C 中所有的历史话题进行相似度计算,并取最大的相似度值maxsim。
    • 如果maxsim 小于预定的阈值,则用 Cc生成一个新的话题
    • 否则,maxsim大于预定的阈值 ,则获得相似度最高的 Top K 个历史话题的相关文档,然后对候选话题的每篇文档进行 KNN 分类,得到每篇文档要并入的历史话题Ci,并统计所得历史话题的分布情况,以此判断候选话题Cc要并入历史话题库中的某个历史话题。
  • 直至把所有候选话题处理完,算法才结束。

话题热度计算



微博舆情 之 热点话题分析相关推荐

  1. 基于 Word2Vec 和 SVM 的微博舆情情感演化分析 论文笔记

    目录 论文标题 引言 标题论文学术结构 1.相关研究综述(先前学者的研究) 2.研究方法 3.基于 Word2Vec 和 SVM 的微博情感演化分析 4.基于 Word2Vec 词相似度的舆情主体对象 ...

  2. 基于kmeans聚类算法的微博舆情热点事件分析系统

    目录 第一章 引言 2 1.1 研究背景及意义 2 1.2 国内外相关问题研究现状 3 1.3 论文的理论意义与实用价值 4 第二章 相关技术介绍 4 2.1 开发平台简述 4 2.2 OAuth2. ...

  3. vue+django 微博舆情系统源码、深度学习+舆情扩散消失分析、舆情紧急等级、属地分析、按话题、情感预测、话题评论获取、提取观点、正面负面舆情、按区域检测舆情

    项目背景 315又马上要到了,现在有开始对食品安全话题的关注地提升了,因此,本文系统对微博的食品安全话题进行分析,有如下的功能 1.展示当前食品安全事件相关的热点信息以及提供根据食品关键词,食品安全类 ...

  4. Python 基于微博舆情分析系统的设计与实现,GUI可视化界面(毕业设计,附源码,教程)

    文章目录 1. 简介 2. 技术选型 3. 实现功能简介 **第4章系统总体设计** 5. 系统选型 1. 简介 微博舆情分析系统软件是一款方便,快捷,实用的信息服务查询软件.随着智能手机在全球市场的 ...

  5. (基于Python的毕业设计)微博舆情分析系统(附源码+论文)

    大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦. 目录 一.项目简介 二.系统设计 2.1软件功能模块设计 2.2数据库设计 三.系统项目部分截图 3.1管理员功能模块 3.2热搜数据 3.3 ...

  6. 微博舆情分析系统的设计与实现(python)

    背景分析 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理.由于现在网络的发达,微博 ...

  7. 微博舆情 之 特定话题情感分析

    本文介绍一下在做微博特定话题情感分析中的做法,核心就是判断文本的情感极性,再根据这个极性来进行情感判定. 主要经过了以下几个步骤: 文本预处理 去乱码.去网络词 利用LTP获取分词.句子结构及成分等信 ...

  8. JAVA实现基于k-means聚类算法实现微博舆情热点分析系统

    微博在这短短几年时间内发展迅速,成为了传播信息的一种很重要的载体,仅新浪微博注册用户早已超过3亿,每日发博量超过1亿条,微博是研究大量舆情信息的最佳场所.微博中如此大的信息量,必然要对信息进行甄选,这 ...

  9. [源码和文档分享]JAVA实现基于k-means聚类算法实现微博舆情热点分析系统

    微博在这短短几年时间内发展迅速,成为了传播信息的一种很重要的载体,仅新浪微博注册用户早已超过3亿,每日发博量超过1亿条,微博是研究大量舆情信息的最佳场所.微博中如此大的信息量,必然要对信息进行甄选,这 ...

最新文章

  1. 算法-判断是否是完全二叉树
  2. websocket工作原理
  3. 用最简单的例子说明设计模式(一)之单例模式、工厂模式、装饰模式、外观模式...
  4. The organization of a typical MVC application
  5. 【MySQL】记录 Navicat连接 docker mysql 容器,备份docker mysql 注意事项
  6. QT学习:字符串类QString
  7. 《蓝色协议BLUE PROTOCOL》技术分享解读
  8. 命令行 蓝牙_Ubuntu使用BlueZ驱动蓝牙dongle
  9. oracle back log,11g闪回日志(flashback log)保留时间参数 - db_flashback_retention_target
  10. Spring Security相关
  11. linux mint 19新功能,Linux Mint 19.3将在2019年12月正式发布,附新功能简介
  12. 【回文串14】LeetCode 680. Valid Palindrome II
  13. GridView中的格式化
  14. NeurIPS 2019:进入NLP的黄金时代
  15. 北京自贸区国际商务服务片区挂牌 总面积48平方公里
  16. 用手机当电脑摄像头——Droidcam
  17. 置信区间的置信区间_什么是置信区间,为什么人们使用它们?
  18. 高德运维基于阿里云的最佳实践
  19. 学java应该学什么
  20. 使用Spring 定时器 + selenium打卡

热门文章

  1. bvs是什么意思_股票b和s是什么意思,区别原来这么简单
  2. 手把手教如何搭建一个百度网盘目录站点【保姆级】
  3. 从月薪3000到年薪40w+的第二步-准备
  4. xcode/osx官方直接下载地址(离线下载)
  5. thinkjs的这个bug害人不浅
  6. 对nii医学图像进行重采样
  7. 10年跳槽2次,薪资翻10倍,我就是互联网公司中年老白兔
  8. xshow-1. 项目简介
  9. 将idea中文显示转化成英文
  10. 什么是“黑天鹅现象”?