正在加载图片...
第3期 刘志雄,等:面向用户兴趣与社区关系的微博话题检测方法 ·297. 重要度分数并逆序排序。 提取重要词 剪枝 网络建模 3)剔除重要度低于阈值0的词语。 经过如上步骤,得到了微博文档D对应的重要 聚类 话题排行 检测话题 词库,记为精英词集elite。 1.4.2剪枝 将微博特征向量中不属于重要词汇库elite的 图2话题检测流程图 词语别除。若剔除后微博向量长度过短,则将该微 Fig.2 flow of topic detection 博从该社区剔除,本文设置长度阈值为3。去除了 1.4.1提取重要词 微博内与话题相关度很低的词语,保留了与话题相 由话题的定义可知,与话题相关的词语通常会 关度较高的词语。 具有更高的重要性。显然,重要性过低的词语,尽管 1.4.3微博文本£近邻图构建 能够表达一定的含义,但并不能构成话题,会对我们 传统的微博相似度计算方法主要是对微博集合 话题检测造成一定影响。因此需计算词的重要性。 中每一条微博的词进行TF-DF的计算,并将微博中 TextRankt2)算法是在Google的PageRank[io]算 各个词表示成VSM)空间向量,然后采用余弦相似 法启发下,针对文本里的句子设计的权重算法。最 度计算两条微博之间的相似度。但考虑到微博具有 初的目标是对文章提取摘要,目前多用于给词语打 分,即计算词语的重要度。本文采用TextRank!]算 短文本高维、稀疏的特点,采用传统的TFDF向量 表示法计算得到的相似性(趋于0)不能反映两个微 法计算词语重要度并过滤掉重要度过低的词语,步 博文本的真实相似性。故本文以词语的重要度代替 骤如下: 1)将同一社区内所有微博(已切词)做拼接,构 TF-IDF值作为词的特征权重。由于经过社区划分 以及微博剪枝之后,社区内微博特征已相对稠密,故 成微博文档D。 2)采用TextRank2]算法对微博文档D求词语 可采用基于VSM)空间向量模型的余弦相似度计 算方法来计算两条微博之间的相似度,公式为 score(w,)x score(w,) icAnB sim(A,B)= (4) ∑score(w,)×score(w,)×,∑score(u,)×score(w,) ARjEA 个V!eB 式中:sim(A,B)表示微博A与微博B之间的相似 式中:fre(0:,j)表示词wi在话题簇j内的词频, 度,score(w:)表示词0,的重要度分数。 score(0:)表示词e,的重要度,num(j)表示话题簇j 我们给每一条微博分配一个D,D从1到n', 包含的微博数目,则主题选取过程如下: 然后以微博为节点,微博之间的相似度为边,构建一 1)对于所有话题簇,在话题簇内计算所有词的 张ε近邻图)。若微博i与微博j的相似度大于阈 主题度; 值e,则微博i与微博j之间存在一条边,且该边权 2)在话题簇内按主题度对词进行逆序排序,并 重为sim(i,j)。 保留主题度最大的15个词: 1.4.4微博聚类 3)将所有话题簇内所保留的词加入集合s: 本文采用社区划分的方法对微博文本进行聚类。 由于社区具有社区内部节点连接稠密、社区之间节点 4)遍历集合s,对于词w:,遍历所有社区,若心, 连接稀疏的特点,故社区(话题簇)内微博相似度更大, 在社区t内的主题度最高,则w,∈tw(t)。tw(t)表 社区(话题簇)间微博相似度更小。故对微博ε近邻图 示话题簇t对应的主题词集合。 进行社区划分,并选取社区节点数最多的T个社区作 1.4.6话题热度排行 为社区内关心的话题。本文采用经典社区划分算法 话题的热度表现在多个方面,本文以主题度来 BGLL1)对微博ε近邻图进行社区划分。 表征话题的热度。计算公式为 1.4.5话题检测 ∑topic(w,j) 本文以主题词来描述话题,提出了一种以主题 heat(j)= (6)》 度来选取主题词的方法。本方法以topic(w:,j)表 m(j) 示词心,在话题簇j内的主题度,计算公式如下: 式中:heat(j)表示话题簇j对应话题热度,m(j)表示 topic(w:,j)=fre(w:j)x score(w:)/num(j) 话题簇对应主题词集合包含词语个数。 (5) 最后按话题热度对话题进行逆序排序。图 2 话题检测流程图 Fig.2 flow of topic detection 1.4.1 提取重要词 由话题的定义可知,与话题相关的词语通常会 具有更高的重要性。 显然,重要性过低的词语,尽管 能够表达一定的含义,但并不能构成话题,会对我们 话题检测造成一定影响。 因此需计算词的重要性。 TextRank [12]算法是在 Google 的 PageRank [10] 算 法启发下,针对文本里的句子设计的权重算法。 最 初的目标是对文章提取摘要,目前多用于给词语打 分,即计算词语的重要度。 本文采用 TextRank [12] 算 法计算词语重要度并过滤掉重要度过低的词语,步 骤如下: 1)将同一社区内所有微博(已切词)做拼接,构 成微博文档 D。 2) 采用 TextRank [12]算法对微博文档 D 求词语 重要度分数并逆序排序。 3)剔除重要度低于阈值 θ 的词语。 经过如上步骤,得到了微博文档 D 对应的重要 词库,记为精英词集 elite。 1.4.2 剪枝 将微博特征向量中不属于重要词汇库 elite 的 词语剔除。 若剔除后微博向量长度过短,则将该微 博从该社区剔除,本文设置长度阈值为 3。 去除了 微博内与话题相关度很低的词语,保留了与话题相 关度较高的词语。 1.4.3 微博文本 ε 近邻图构建 传统的微博相似度计算方法主要是对微博集合 中每一条微博的词进行 TF⁃IDF 的计算,并将微博中 各个词表示成 VSM [3]空间向量,然后采用余弦相似 度计算两条微博之间的相似度。 但考虑到微博具有 短文本高维、稀疏的特点,采用传统的 TF⁃IDF 向量 表示法计算得到的相似性(趋于 0)不能反映两个微 博文本的真实相似性。 故本文以词语的重要度代替 TF⁃IDF 值作为词的特征权重。 由于经过社区划分 以及微博剪枝之后,社区内微博特征已相对稠密,故 可采用基于 VSM [3] 空间向量模型的余弦相似度计 算方法来计算两条微博之间的相似度,公式为 sim(A,B) = w∑i∈A∩B score(wi) × score(wi) ∑wi∈A score(wi) × score(wi) × ∑wi∈B score(wi) × score(wi) (4) 式中:sim(A, B)表示微博 A 与微博 B 之间的相似 度,score(wi)表示词 wi的重要度分数。 我们给每一条微博分配一个 ID,ID 从 1 到 n′, 然后以微博为节点,微博之间的相似度为边,构建一 张 ε 近邻图[2] 。 若微博 i 与微博 j 的相似度大于阈 值 ε,则微博 i 与微博 j 之间存在一条边,且该边权 重为 sim(i, j)。 1.4.4 微博聚类 本文采用社区划分的方法对微博文本进行聚类。 由于社区具有社区内部节点连接稠密、社区之间节点 连接稀疏的特点,故社区(话题簇)内微博相似度更大, 社区(话题簇)间微博相似度更小。 故对微博 ε 近邻图 进行社区划分,并选取社区节点数最多的 T 个社区作 为社区内关心的话题。 本文采用经典社区划分算法 BGLL [13]对微博 ε 近邻图进行社区划分。 1.4.5 话题检测 本文以主题词来描述话题,提出了一种以主题 度来选取主题词的方法。 本方法以 topic(wi, j) 表 示词 wi在话题簇 j 内的主题度,计算公式如下: topic(wi,j) = fre(wi,j) × score(wi) / num(j) (5) 式中:fre ( wi, j) 表示词 wi 在话题簇 j 内的词频, score(wi)表示词 wi的重要度,num( j)表示话题簇 j 包含的微博数目,则主题选取过程如下: 1)对于所有话题簇,在话题簇内计算所有词的 主题度; 2)在话题簇内按主题度对词进行逆序排序,并 保留主题度最大的 15 个词; 3)将所有话题簇内所保留的词加入集合 s; 4) 遍历集合 s,对于词 wi,遍历所有社区,若 wi 在社区 t 内的主题度最高,则 wi∈tw( t)。 tw( t)表 示话题簇 t 对应的主题词集合。 1.4.6 话题热度排行 话题的热度表现在多个方面,本文以主题度来 表征话题的热度。 计算公式为 heat(j) = w∑i∈tw(j) topic(wi,j) m(j) (6) 式中:heat(j)表示话题簇 j 对应话题热度,m(j)表示 话题簇 j 对应主题词集合包含词语个数。 最后按话题热度对话题进行逆序排序。 第 3 期 刘志雄,等:面向用户兴趣与社区关系的微博话题检测方法 ·297·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有