留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

一种基于共词网络的社交媒体数据主题挖掘方法

王艳东 付小康 李萌萌

王艳东, 付小康, 李萌萌. 一种基于共词网络的社交媒体数据主题挖掘方法[J]. 武汉大学学报 ● 信息科学版, 2018, 43(12): 2287-2294. doi: 10.13203/j.whugis20180225
引用本文: 王艳东, 付小康, 李萌萌. 一种基于共词网络的社交媒体数据主题挖掘方法[J]. 武汉大学学报 ● 信息科学版, 2018, 43(12): 2287-2294. doi: 10.13203/j.whugis20180225
WANG Yandong, FU Xiaokang, LI Mengmeng. A New Social Media Topic Mining Method Based on Co-word Network[J]. Geomatics and Information Science of Wuhan University, 2018, 43(12): 2287-2294. doi: 10.13203/j.whugis20180225
Citation: WANG Yandong, FU Xiaokang, LI Mengmeng. A New Social Media Topic Mining Method Based on Co-word Network[J]. Geomatics and Information Science of Wuhan University, 2018, 43(12): 2287-2294. doi: 10.13203/j.whugis20180225

一种基于共词网络的社交媒体数据主题挖掘方法

doi: 10.13203/j.whugis20180225
基金项目: 

国家重点研发计划 2016YFB0501403

国家自然科学基金 41271399

测绘地理信息公益性行业科研专项经费 201512015

详细信息
    作者简介:

    王艳东, 博士, 教授, 主要从事城市大数据挖掘与城市功能区空间结构。ydwang@whu.edu.cn

  • 中图分类号: P208

A New Social Media Topic Mining Method Based on Co-word Network

Funds: 

The National Key Research and Development Program of China 2016YFB0501403

the National Natural Scien- ce Foundation of China 41271399

China Special Fund for Surveying, Mapping and Geoinformation Research in the Public Interest 201512015

More Information
    Author Bio:

    WANG Yandong, PhD, professor, specializes in the theories and methods of spatial data mining and urban spatial structure. E-mail: ydwang@whu.edu.cn

图(6) / 表(2)
计量
  • 文章访问数:  577
  • HTML全文浏览量:  15
  • PDF下载量:  289
  • 被引次数: 0
出版历程
  • 收稿日期:  2018-10-15
  • 刊出日期:  2018-12-05

一种基于共词网络的社交媒体数据主题挖掘方法

doi: 10.13203/j.whugis20180225
    基金项目:

    国家重点研发计划 2016YFB0501403

    国家自然科学基金 41271399

    测绘地理信息公益性行业科研专项经费 201512015

    作者简介:

    王艳东, 博士, 教授, 主要从事城市大数据挖掘与城市功能区空间结构。ydwang@whu.edu.cn

  • 中图分类号: P208

摘要: 对社交媒体所包含文本数据的深入挖掘,有利于有效地进行后续的时空分析。提出了一种新的基于共词网络的社交媒体数据主题挖掘方法,依据词频-逆文档频率分析,自动筛选出与主题相关的关键词汇,基于微博间是否包含相同的关键词汇,提出构建以微博为节点的共词网络,并结合Louvain社区探测算法进行文本主题挖掘。所提出的方法是一种无监督方法,且具有不需要指定聚类数目的优点。实验表明,该方法在主题挖掘表现上,准确率和召回率均优于常用的文档主题生成模型。以收集的2012年北京暴雨期间包含关键词的微博为例,利用提出的方法对微博数据集进行挖掘和时空分析,结果表明所提方法在实际应用中的有效性。

English Abstract

王艳东, 付小康, 李萌萌. 一种基于共词网络的社交媒体数据主题挖掘方法[J]. 武汉大学学报 ● 信息科学版, 2018, 43(12): 2287-2294. doi: 10.13203/j.whugis20180225
引用本文: 王艳东, 付小康, 李萌萌. 一种基于共词网络的社交媒体数据主题挖掘方法[J]. 武汉大学学报 ● 信息科学版, 2018, 43(12): 2287-2294. doi: 10.13203/j.whugis20180225
WANG Yandong, FU Xiaokang, LI Mengmeng. A New Social Media Topic Mining Method Based on Co-word Network[J]. Geomatics and Information Science of Wuhan University, 2018, 43(12): 2287-2294. doi: 10.13203/j.whugis20180225
Citation: WANG Yandong, FU Xiaokang, LI Mengmeng. A New Social Media Topic Mining Method Based on Co-word Network[J]. Geomatics and Information Science of Wuhan University, 2018, 43(12): 2287-2294. doi: 10.13203/j.whugis20180225
  • 社交媒体是一种重要的时空数据源,又被称为“社会传感器[1]”,它们在揭示人类移动和活动规律[2-3]、探索社会经济模式[4]、流感预测[5-7]、灾害探测[1, 8-9]、选举结果预测[10-11]和发现城市格局[12]等方面得到了广泛的研究。对社交媒体所包含文本数据的主题挖掘,有利于有效地进行后续的时空分析。如文献[13]通过研究Twitter中的信息内容,预测了某种疾病的发生时间和发生地点;文献[14]通过人工分析,将飓风桑迪发生时所产生的Tweets划分成不同主题,并分析了它们的时序分布以了解灾害所处的阶段,进而辅助应急管理人员在灾害管理中采取有效的行动。这些研究表明,主题挖掘是利用社交媒体有效地进行地理现象研究的重要手段。

    目前,社交媒体的主题挖掘多采用人工分析和机器学习的方法。然而,这些方法通常需要大量的人工分析和标注工作,无法快速高效地完成主题挖掘任务。大量科研工作者尝试通过无监督的主题模型来自动地完成社交媒体数据的主题挖掘任务。其中,最为主要的是使用文档主题生成(latent dirichlet allocation, LDA)模型以及基于LDA改进的无监督模型从社交媒体文本数据中挖掘主题[15-16]。如文献[15]以暴雨灾害事件为例,结合LDA模型和支持向量机算法,提出了基于社交媒体文本数据的灾害应急信息分类框架。但文献[17]指出,LDA模型并不适合微博短文本的情形。文献[18]则讨论了两种可能的LDA模型改进方式,并指出了使用LDA模型对Twitter数据进行分类的挑战。

    本文提出了一种新的基于共词网络的社交媒体数据主题挖掘方法。该方法根据词频-逆文档频率分析,自动筛选出与主题相关的关键词汇;基于微博间是否包含相同的关键词汇,提出了构建以微博为节点的微博共词网络;并结合Louvain社区探测算法进行文本主题分类和挖掘。本文所提出的方法是一种无监督方法,且具有不需要指定聚类数目的优点,具有很好的实用性。以2012年北京暴雨期间包含关键词的微博数据为例,实验表明所提出的方法在主题挖掘表现上,准确率和召回率均优于常用的LDA模型。利用本文提出的方法对北京暴雨数据集进行挖掘和时空分析,结果表明了该方法在实际应用中的有效性。

    • 共词网络方法主要应用于文献计量学领域[19],通常根据文献集中关键词在同一篇文献中共同出现的次数,构建以关键词为节点的共词网络,来分析该文献集所研究的各主题之间的关系。本文基于共词网络方法的思想,提出了一种新的社交媒体数据主题挖掘方法,如图 1所示,该方法包含如下3个层次:

      图  1  基于共词网络的社交媒体数据主题挖掘示意图

      Figure 1.  Topic Mining Scheme of Social Media Messages Based on Co-word Network

      1) 微博文本集表示层次。在该层次,原始微博文本通过分词后变成“微博文本-微博词汇-主题关键词”的形式。其中,微博词汇通过分词得到,主题关键词则是微博词汇中能反映主题信息的关键词汇(如图 1标注红色的词汇)。

      2) 基于共词的网络表示层次。在该层次,微博文本集通过微博间是否包含相同关键词形成了“网络-节点、边”的形式。其中,节点对应微博文本集表示层次的微博文本,边则表示微博间包含了相同的主题关键词。

      3) 社区和主题表示层次。在该层次,构建的微博共词网络被表示成了“网络-社区、主题-节点、边”的形式。通常包含相同词汇越多的微博其主题也越相似,因此,可通过探测网络中紧密连接的团体来实现社区的发现,并通过社区内包含的词汇来解释社区的主题。

    • 本文提出将原始微博文本表示为“微博文本-微博词汇-主题关键词”的微博文本集形式,该过程包含两个步骤:首先获取原始的微博文本,并对微博文本进行分词;然后在划分的词汇中筛选出能够反映微博主题信息的关键词。

      微博文本集表示的关键在于如何筛选出主题关键词。本文使用词频-逆文档频率(term frequency-inverse document frequency,TF-IDF)[20]来度量一个词汇在文档中的重要程度,TF-IDF可按式(1)计算:

      $$ {f_{i, j}} = \frac{{{n_{i, j}}}}{{\sum\limits_k {{n_{k, j}}} }} \times {\rm{lg}}\frac{D}{{j:{t_i} \in {d_j}}} $$ (1)

      式中,ni, j为该词在一条文档(即微博dj)中出现的次数;$ {\sum\limits_k {{n_{k, j}}} } $则为在一条微博dj中所有词汇出现的次数之和;D表示数据集中的微博总数;j:tidj表示包含词语ti的微博数目。

      本文结合分析文档中词汇的TF-IDF分布,提出使用头尾打断法(head/tail breaks)[21]自动筛选出能够反映主题信息的关键词集合。文献[22]表明文档中词频的分布多符合重尾分布,重尾分布是自然界中一种常见的分布,可以使用头尾打断法对其进行分类。重尾打断分类法将所有数据依据算术平均值分为两部分,选择头部(高于平均值的部分)并继续迭代过程,直到头部的数据不再是重尾分布。

    • 基于共词关系,本文提出将微博文本集表示成“网络-节点、边”的网络形式,其中节点表示微博文本,边表示微博间包含了相同的主题关键词。其网络表示可通过表 1的定义描述。

      表 1  微博共词网络中的概念定义

      Table 1.  Conceptions Table of the Microblog Co-word Networks

      序号 定义 解释
      1 u, v 表示网络的节点,即微博
      2 U={i}, V={j} 表示微博u, v所包含的词汇集合,其中ij表示词汇
      3 E(u, v) 表示网络中连接节点u, v之间的边。当UV≠$\emptyset $, 且UV$ \subseteq $T, E(u, v)存在
      4 T={t} 表示能够代表微博主题信息的关键词集合, 其中t表示主题关键词
      5 Nco-wordsu, v 表示微博u, v中相同关键词出现的总次数
      6 Ntotal-wordsu, v 表示微博u, v所包含所有词汇的个数
      7 WE(u, v) 表示网络中边E(u, v)的权重,${W_{E(u, v)}} = \frac{{N_{{\rm{co - words}}}^{u, v}}}{{N_{{\rm{total - words}}}^{u, v}}} $
    • 在基于共词的网络表示中,连接相对紧密的微博团体,通常包含相同关键词越多,其主题也越相似。基于此,本文提出将基于共词的网络表示成“网络-社区、主题-节点、边”的形式,通过探测网络中紧密连接的团体(即社区)来实现对微博的自动分类,并通过社区内包含的词汇来解释社区的主题。

      为了使包含相同关键词的微博划分在一起,形成单一主题的社区,需要使划分的社区内部包含相同关键词的数目尽可能多,且使社区之间包含相同关键词的数目尽可能少。本文使用模块度来刻画这种社区的紧密程度,应用LM(Louvain method)[23]快速优化模块度以实现基于共词网络的社区探测。模块度可表示为:

      $$ Q = \frac{1}{{2m}}\sum\limits_{uv} {\left[ {{W_{E(u, v)}} - \frac{{{k_u}{k_v}}}{{2m}}} \right]} {\delta _{uv}} $$ (2)
      $$ {\delta _{uv}} = \left\{ \begin{array}{l} 0, {c_u} \ne {c_v}\\ 1, {c_u} = {c_v} \end{array} \right. $$ (3)

      式中, WE(u, v)表示节点(即微博uv)之间边的权重; kukv分别表示所有与微博节点uv相连的边的权重之和; 2m表示网络中所有边的权重之和; cucv分别表示微博节点uv所属的社区; δuv用来判断微博节点uv是否属于同一个社区。LM通过两个步骤快速优化模块度。首先,把网络中的每个节点(即微博u)当作一个社区,对每个微博节点u,依次尝试把它分配到它的每个邻居节点所在的社区,计算分配前与分配后的模块度变化ΔQ

      $$ \begin{array}{l} \Delta Q = \left[ {\frac{{\sum {\rm{in}} + 2{k_{u, {\rm{in}}}}}}{{2m}} - {{\left( {\frac{{\sum {\rm{tot}} + {k_u}}}{{2m}}} \right)}^2}} \right] - \\ \;\;\;\;\;\;\;\left[ {\frac{{\sum {\rm{in}}}}{{2m}} - {{\left( {\frac{{\sum {\rm{tot}}}}{{2m}}} \right)}^2} - {{\left( {\frac{{{k_u}}}{{2m}}} \right)}^2}} \right] \end{array} $$ (4)

      式中, ∑in表示微博节点u的一个邻居社区内边的权重之和;∑tot表示微博节点u的一个邻居社区内所有与其相连的边的权重之和;ku表示微博节点u的加权度;ku, in表示社区内与微博节点u相连的所有边的权重之和;2m表示基于共词的网络中所有边的权重之和。记录ΔQ最大的邻居微博节点,如果maxΔQ > 0,则把微博节点u分配到ΔQ最大的邻居微博节点所在的社区,否则保持不变。把这个过程重复地应用到所有的微博节点,直到不会发生模块度的增加。然后,对第一个步骤得到的结果进行处理形成一个新的网络,将所有在同一个社区的节点压缩成一个新节点,社区内节点之间的边的权重转化为新节点的环的权重,社区间的边权重转化为新节点间的边权重。重复执行这两个步骤,直到整个网络的模块度不再发生变化。

    • 以2012年“7·21北京特大暴雨”事件作为研究案例,结合新浪微博API和网络爬虫的方式,收集了从2012年7月21日6时到7月24日4时,包含“北京暴雨”关键词的389 168条微博,其中包含GPS(Global Positioning System)位置信息的微博有16 759条。

      本文以包含GPS位置信息的微博作为实验数据,使用提出的模型进行主题挖掘,并和常用的LDA模型得到的结果比较进行评估。

    • 对微博的文本使用Jieba分词工具进行分词(把常用的词汇加入到停用词),对得到的每一个词通过式(1)计算词汇的TF-IDF值。微博中词汇的TF-IDF值分布如图 2所示,可以看出微博中大部分词汇的TF-IDF值都比较小,只有小部分词汇的TF-IDF值比较大,即微博中词汇的TF-IDF分布符合重尾分布。经过两次头尾打断,发现头部不再符合幂律分布,选取最后一次头部的词汇作为主题关键词,共得到654个主题关键词。根据得到的主题关键词,利用共词关系构建出以微博为节点的共词网络,其包含14 949个节点,5 258 956条边。

      图  2  微博词汇的TF-IDF分布

      Figure 2.  Distribution of Words' TF-IDF in Microblogs

      对构建的共词网络进行社区探测,得到了7个社区。由于部分社区内包含的微博主题并不唯一,本文在探测到的社区基础上,利用相同的方法对各个社区进行子社区探测,共得到48个子社区。为了解释说明各个社区的主题含义,计算出各个社区中关键词的频率分布,并将其可视化为词云图。图 3表示其中8个社区的词云图,词汇的大小代表该词汇出现频率的高低。可以看出,45号社区中的微博存在大量与“伤亡”主题有关的讨论,27号社区则主要和“天气预警”主题有关,15号社区表示“提醒朋友”主题,47号社区则表示“正能量和祈祷”主题,6号社区表示“灾害原因讨论”主题,8号社区则表示“交通状况”主题。

      图  3  社区中关键词词云图示例

      Figure 3.  Examples of Keyword Clouds in Communities

    • 使用LDA模型进行主题挖掘需要指定聚类主题的个数,本文采用困惑度[24]来优化该参数。通常困惑度越小,说明聚类质量越好。图 4显示了不同主题数目情况下的困惑度,可以看出,随着主题数目的增加,困惑度减小,并在主题数为40时开始收敛。为了避免主题数过多,本文最终将LDA模型的聚类主题个数设置为40。

      图  4  LDA不同聚类个数下的困惑度

      Figure 4.  Perplexity of Different Cluster Numbers of LDA Model

      由于LDA模型所得到的结果是微博隶属于各个主题类别的概率,为了在验证集上计算准确率和召回率并与基于共词网络的模型进行比较,将微博所属概率最大的主题类别作为该微博的主题类别。

    • 基于共词网络的主题挖掘模型和常用的LDA主题模型均属于无监督聚类方法,为了对比两种聚类方法,本文构建了验证集,并结合纯度[25]的方法计算和对比两种模型的准确率和召回率,步骤如下:

      1) 构建验证集。通过随机抽取和人工标注构建了600条微博验证集,其中包含了7类与暴雨灾害应急相关的主题,分别为祈祷、救援、伤亡、天气预警、提醒朋友、交通状况和灾害原因讨论。

      2) 计算聚类簇内各个主题的样本数。找到样本数最多的主题,其对应的样本数记为Ntruec

      3) 计算聚类簇的纯度。根据聚类簇内各个主题的样本数,计算该聚类簇的纯度:

      $$ {P^c} = \frac{{N_{{\rm{true}}}^c}}{{{N^c}}} $$ (5)

      式中, Nc表示该聚类簇中总的微博个数。

      4) 识别聚类簇的主题含义。当聚类簇的纯度大于给定阈值,则聚类簇所代表的主题为簇内样本数最多的主题,否则该聚类簇被标记为不代表任何主题的聚类簇。

      5) 计算准确率和召回率。召回率、准确率可依次定义为:

      $$ R = \frac{{\left| {TP} \right|}}{{\left| {AC} \right|}} $$ (6)
      $$ P = \frac{{\left| {TP} \right|}}{{\left| {DC} \right|}} $$ (7)

      式中, TP表示模型分类正确的样本数;AC表示验证集中所有类别的样本数;DC表示模型分类能识别到主题的样本数。

      通过计算得到本文所提出的方法和LDA方法在不同纯度阈值情况下的准确率和召回率,如表 2所示。可以看到,在相同的纯度下,使用基于共词网络的社交媒体主题挖掘方法的准确率和召回率均高于传统的LDA方法,且在纯度为0.5的情况下,准确率达到了0.8以上,说明本文所提出的方法可以达到比较高的准确率。

      表 2  基于共词网络的社交媒体数据主题挖掘方法与LDA主题模型的准确率和召回率对比

      Table 2.  Precision and Recall of the Co-word Based Topic Mining Method and LDA Topic Model

      纯度 基于共词网络的社交媒体数据主题挖掘方法 LDA模型
      准确率 召回率 准确率 召回率
      0.3 0.66 0.60 0.55 0.42
      0.4 0.70 0.56 0.58 0.35
      0.5 0.81 0.46 0.69 0.23
      0.6 0.84 0.41 0.73 0.18
      0.7 0.88 0.38 0.80 0.08
      0.8 0.94 0.27 0.83 0.07
      0.9 0.97 0.23 1.00 0
    • 为了验证所提出的主题挖掘方法在实际应用中的有效性,利用该方法对北京暴雨微博数据集的挖掘结果作进一步的时空分析,以展示其在灾害应急响应中的价值。

    • 2012年北京暴雨事件中,降雨可以分为两个阶段:第1个阶段发生在21日10时至20时,其主要特点是短时雨强大、强度变化波动显著(图 5的灰色区域),第2个阶段发生在当日20时后至22日4时,降水逐渐平缓,雨强显著减小(图 5的绿色区域)[26]

      图  5  不同应急主题的微博比率随时间的变化

      Figure 5.  Ratios of Microblogs Under Different Topics over Time

      本文对2012年北京暴雨前后不同主题的微博数目进行了时序分析。图 5显示了每个小时属于各个类别的微博比率随着时间的变化趋势。可以看出,在暴雨来临之前,天气预警、祈祷和交通状况主题开始出现,并占据较大的比例。这是由于在暴雨来临之前,天气预警影响了航班,导致较多的乘客滞留,他们开始祈祷路途顺利,因此也导致了微博中有关祈祷和交通状况主题的增加。交通信息出现在整个降雨过程中,且在第1个阶段降雨时更多一些,反映了暴雨对交通状况的影响更加直接。祈祷信息在暴雨的第2个阶段开始增多,并持续了一段时间,反映了随着灾情的发展,人们对自己所处的环境开始慢慢有所认知,进而开始关注灾情状况并祈祷安全度过。救援信息则在暴雨发生一段时间之后增多,主要是由于有关“群众车内被溺死”的新闻所引发的大量讨论所导致的。有关伤亡、提醒朋友、灾害原因讨论的微博比率在灾害的整个过程中变化不大。

    • 本文选取了与灾情密切相关的“交通状况”主题进行了空间分析。“交通状况”主题包含3 360条带有GPS信息的微博。图 6反映了“交通状况”主题下微博数据的空间分布,可以看出该主题下的微博在空间上形成比较明显的聚集分布。图 6中共出现5处聚集点。其中,A为首都机场,B为北京火车站西站,C为北京站,D为北京南站,它们反映了暴雨影响航空以及铁路交通,导致了大量旅客滞留机场以及火车站。通过对图 6E处热点范围内的微博进行探索,发现在E处发生了严重的交通拥堵。

      图  6  交通类应急主题的空间分布

      Figure 6.  Spatial Distribution of Microblogs Under Traffic Topic

    • 社交媒体中通常包含了丰富的时间、空间和文本语义信息,可以用来揭示不同类型的地理现象。对社交媒体所包含的文本数据的深入挖掘,有利于更有效地进行后续的时空分析。本文探讨了在社交媒体短文本的情况下,如何有效地挖掘主题信息,提出了一种新的基于共词网络的社交媒体数据主题挖掘方法。本文所提出的方法是一种无监督方法,不需要指定聚类数目,具有很好的实用性。实验表明,该方法在准确率和召回率上也均优于传统的LDA模型。研究发现,该方法在北京暴雨这一灾害案例中,能够有效地分析事件的某一个方面而去除其他噪音的影响,因而在灾害发生时,能够获取更有价值的应急信息。该研究为如何有效地挖掘社交媒体中所包含的文本主题信息提供了一种新的思路,可用于准实时或灾后灾情的相关评估。由于使用LM社区分割算法得到的结果中,微博只能被划分到单个主题,忽略了一条微博可能包含多个主题的情况,未来可采用重叠社区分割算法进行改进。

参考文献 (26)

目录

    /

    返回文章
    返回