一种高效的文本区间热词查询方法技术领域
本发明属于信息检索技术领域,具体涉及一种从文本数据中提取热词的方法。
背景技术
互联网的普及和高速发展满足了人们对信息获取的需求。如何从海量Web文本数
据中提取有价值的热门话题成为人们关注的一个焦点问题。为了有效进行话题检测和跟踪
(Topic detection and tracking,TDT),研究者开展了大量研究工作,其中从文本数据中
提取热词成为当前研究的热点问题之一。
在已有的热词提取的研究中,TF-IDF(Term Frequency-Inverse Document
Frequency)用于词权重计算,TF-IDF综合考虑词频和反文档频率,弱化频繁出现在多个文
本中的词的重要性。TF-PDF(TF-Proportional Document Frequency)方法综合考虑词频和
文档频率,将更高的权重赋予出现在多个文本中的词。Chen算法在TF-PDF方法的基础上,考
虑词频随时间的波动情况,并重新定义词权重的计算方法。上述方法能够有效提取与话题
相关的词,即满足算法的有效性,但时间复杂度较高,当处理的文本数量庞大时,这些算法
的时间消耗较高,因此难以直接应用于热词在线查询问题。
为此,本发明对文本数据的区间热词在线查询问题展开研究。我们认为,热词的在
线查询处理方法需要同时满足两个特性:(1)能够有效提取与话题相关的词,即在线查询的
有效性;(2)能够快速获得查询时间范围内的热词,即在线查询的时效性。因此,设计同时满
足有效性和时效性的热词在线查询方法依然是一个具有挑战性的问题。针对上述方法时效
性不足的缺点,本发明提出一种对文本数据的区间热词在线查询处理算法(EHWE),该算法
可以在已划分的数据上进行快速区间查询处理。与现有的面向挖掘的算法相比,EHWE算法
能够保证计算结果准确率的前提下,根据用户指定的查询时间范围,降低提取热词的时间
消耗,实现热词的在线查询。
发明内容
本发明的目的是针对从文本数据中提取热词复杂度高,难以在大数据集上实际应
用的不足,提出一种高效的文本区间热词查询方法,以降低从文本数据中提取热词的复杂
度,提升用户体验。
本方法提出的高效的文本区间热词查询方法,利用时间序列划分和范围查询的思
想,对原始文本数据进行预处理,建立一种数据结构,并采用优化算法EHWE,使得从文本数
据中提取热词的时间复杂度降低。主要贡献包括:
1、本文提出文本区间热词的在线查询处理问题,和面向挖掘的热词提取问题相
比,更加关注在线查询的两个特性:有效性和时效性;
2、针对热词的在线查询问题,提出EHWE算法,该算法能够在保证计算结果准确率
的前提下,降低了提取热词的时间复杂度;
3、理论分析已有算法和EHWE算法的时间复杂度,并在实际数据集上进行验证。
首先对一些基本概念进行定义:
定义1.话题:话题被定义为一个特定事件或活动,它通常由多个相关联的事件或
活动组成和描述;
定义2.热门话题:热门话题是指在一段时间内,频繁出现在网络上的、受到人们广
泛关注并讨论的话题。在新闻报道中,它的热度取决于两个因素:在一篇报道中热词出现的
频率以及包含这些热词的新闻报道的数量;
定义3.热词:热词是指在一段时间内频繁出现的词语。它用来描述热门话题,并且
会随着热门话题的生命周期而不断变化.。热词具有的两个属性:广泛性和时事性。广泛性
强调单词在文本数据中出现的频繁程度,时事性刻画单词在时间轴上使用频率的变化情
况。
Chen算法在抽取热词并计算单词权重时主要分为三个步骤:(1)计算所有单词的
频率,并获得满足指定频率阈值条件的单词列表(下文中简称跟踪列表);(2)针对跟踪列表
中的每一个单词,计算单词权重;(3)根据权重将单词排序,选取权重最大的k个作为热词。
步骤(1)为了获取跟踪列表,Chen算法需要遍历整个时间范围上的所有单词,它的
时间复杂度为O(ST)。经过筛选后,跟踪列表中单词数目的上限和α有关,为步骤(2)
计算这些单词的权重时需要分别计算他们的TFPDF值和Var值,这个过程的时间复杂度是
步骤(3)获得每个单词权重后,排序并且取最大的k个单词需要的时间。
综上,Chen算法在计算单词权重并抽取热词的时间复杂度为对
于给定的常数α∈(0,1),也是一个常数,所以计算给定时间范围R内的单词权重的时间复
杂度为O(ST)。
本发明方法需要解决的问题形式化表述如下:
问题1.对获得跟踪列表的优化,减少获得跟踪列表时,需要计算的单词数目
通过对上述Chen算法进行复杂度分析,我们发现,对于一个给定的查询q,在获得
满足频率阈值α的单词列表时,需要计算q中所有单词在Rq中的频率,这个过程的时间复杂
度是O(ST)。为了减少这一过程中需要计算的单词数目,我们通过时间序列划分的思想,将
查询q与一个四元组U相关联。在获得跟踪列表时,只需要判断U对应的候选单词列表C中单
词是否满足在Rq中的频率大于α的条件。一般而言,因为C的长度要远小于Rq中不同单词的个
数Tq,所以达到了优化目标。具体步骤如下:
(1)将查询q与一个四元组U相关联
为了能够将查询q与一个四元组U相关联,需要文本数据中所有单位时间间隔构建
完全二叉树。为了方便说明,假设S是2的幂,则这棵树一共有lgS+1层,每层l有2l个节点,每
个节点的长度是对于二叉树的每一层l,令2≤l≤lgS,每隔两个子节点将连续四个子节
点划分为一个四元组U,则第l层有2l-1-1个四元组。例如,当Rq=[1:16],l=3时,一共有8个
节点,每个节点的长度为2;;可以划分为3个四元组,每个四元组的长度是8,它的划分规则
如图1:
基于以上的划分,我们发现对于在整个时间范围上的任意范围的查询q,都可以找
到一个特定的层l和四元组Up,使得查询q至少包含这个四元组中的一个节点,至多包含两
个非兄弟节点。例如图1中的查询q1和q2,q1对应于l=3,p=1;q2对应于l=3,p=3,我们称
这样的查询q是和Up相关的;
(2)获取四元组Up中的候选单词列表Cp
设四元组Up对应的时间间隔中一共有σ个不同的单词(σ<T),通过遍历这些单词,
我们可以计算每个单词的词频。其中Up对应的四个子节点中包含的单词数目依次为c1,c2,
c3和c4。令c=min(c1,c2,c3,c4),则若单词t在Up中的出现次数大于α×c,那么将t加入到Up
对应的候选单词列表Cp中,通过遍历这个四元组内的所有单词,可以获得这个四元组对应
的候选单词列表;
需要注意的是,若c1=c2=c3=c4,即每个单位时间间隔内出现的单词总数相等,
那么四元组Up对应的候选单词列表Cp的长度上限为如果每个单位时间间隔内出现的
单词总数是随机的,那么极端情况下,不妨设c1=1,c2=c3=c4=T,则Cp的长度为Tq,即没
有减少候选列表的单词总数。为了使在极端情况下依然达到优化目标,我们需要将单词总
数很少的连续时间间隔合并后,重新构建完全二叉树并划分四元组,以保证重新划分的时
间间隔内单词总数大致相等,或者单词总数在整个时间范围上的方差小于一个经验值。
问题2:对查询q中单词计数的时间复杂度优化
为了获得满足条件的单词列表,需要遍历Cp中每一个单词,并计算它们在Rq中的词
频,如果满足条件,则将其加入到跟踪列表中。在计算一个单词的词频时,需要遍历Rq内的
所有单词,这个过程的时间复杂度是O(ST)。为了优化计算Cp中每个单词在Rq中的词频的时
间复杂度,我们优化了单词计数的数据结构,使得计算一个单词t在Rq中的词频的时间复杂
度为O(1)。优化单词计数的数据结构的形式化描述如下:
对于每个不同的单词t:,将单词在每个单位时间间隔中的数量累加,即t_c[t][s]
=t_c[t][s-1]+s中t的数量,其中t_c表示单词在每个单位时间间隔中的数量的累加;
将每个单位时间间隔内所有单词的数量累加,即total[s]=total[s-1]+s中所有
单词的数量。
由上可知,当Rq=[m:n]时,单词t的词频freqt,m,n=countt,m,n/Totalm,n,计算
freqt,m,n的时间为O(1),其中countt,m,n=t_c[t][n]-t_c[t][m-1],Totalm,n=total[n]-
total[m-1]。
结合上述对预处理和EHWE算法的说明,本发明提出的高效的文本区间热词查询方
法,包括两个阶段:
一、利用时间序列划分和范围查询的思想,对原始文本数据D进行预处理;
二、数据预处理的基础上,采用优化算法EHWE,对给定查询q的时间范围Rq=[m:n]
以及需要提取的热词个数k,计算确定所需热词。
一、利用时间序列划分和范围查询的思想,对原始文本数据D进行预处理的具体步
骤如下:
(1)为原始文本数据构建数据结构
首先,我们统计每个单位时间间隔内不同单词的出现次数,并为全部单位时间间
隔建立索引,索引范围为[1:S],其中S表示文本数据D中单位时间间隔的数目;随后在每个
单位时间间隔s内,为不同单词依次构建索引,索引范围为[1:ST],其中T表示文本数据D中
不同单词的数目;最后我们为上述数据建立数据结构,它包括:单位时间间间隔si及其索引
i,si中出现的单词tij,单词tij的索引j,单词出现的次数nij。我们假设单词tij在si上不出现
时,它的计数为0;
(2)为上述的数据结构构建完全二叉树,并对数据进行划分
基于以上数据结构,我们对数据集构建概念上的完全二叉树,其中根节点是整数
数组[1:S],每个子节点都是父节点的子数组,而叶子节点的长度为1,对一个节点[a:b],它
的左子节点是[a:b]的左半部分,即右子节点是[a:b]的右半部份,即
为了方便说明,假设S是2的幂,则这棵树一共有lgS+1层,每层l有2l个节点,每个节点的长
度是需要注意的是,这颗二叉树是用来概念上划分查询范围对应的四元组,不需要实际
存储。随后,对于上述二叉树的每一层l,令2≤l≤lgS,每隔两个子节点将连续四个子节点
划分为一个四元组U,则第l层有2l-1-1个四元组。设Up是第l层划分的第p个四元组,范围是
[a:b],长度是有1≤p≤2l-1-1,那么
(3)获取所有四元组的候选单词列表
假设四元组Up对应的时间间隔中一共有σ个不同的单词(σ<T),通过遍历这些单
词,我们可以计算每个单词的词频。其中Up对应的四个子节点中包含的单词数目依次为c1,
c2,c3和c4。令c=min(c1,c2,c3,c4),则若单词t在Up中的出现次数大于α×c,那么将t加入
到Up对应的候选单词列表Cp中,通过遍历这个四元组内的所有单词,可以获得这个四元组对
应的候选单词列表。这个过程的时间代价是O(STlgS),空间代价是O(ST);
(4)优化单词计数的数据结构
令Rq=[m:n],Up为与其相关的四元组,Cp是Up对应的候选单词列表。优化单词计数
的数据结构的形式化描述如下:
对于每个不同的单词t:,将单词在每个单位时间间隔中的数量累加,即t_c[t][s]
=t_c[t][s-1]+s中t的数量,其中t_c表示单词在每个单位时间间隔中的数量的累加;
将每个单位时间间隔内所有单词的数量累加,即total[s]=total[s-1]+s中所有
单词的数量。
由上可知,当Rq=[m:n]时,单词t的词频freqt,m,n=countt,m,n/Totalm,n,计算
freqt,m,n的时间为O(1),其中countt,m,n=t_c[t][n]-t_c[t][m-1],sTotalm,n=total[n]-
total[m-1]。
二、在数据预处理的基础上,采用优化算法EHWE,对给定查询q的时间范围Rq=[m:
n]以及需要提取的热词个数k,计算确定所需热词的计算步骤如下:
(1)根据m,n的值获得候选单词列表Cp,Cp对应的层级l和四元素p的计算公式如下:
其中,l和q是整数。令若(m-1)2zmodSq=0或(n-1)2zmodSq=0
那么l=z,否则l=z+1。
对上述Cp中的每一个单词,计算其在m,n时间范围中的词频,如果满足频率大于α
的条件,则将其将入到跟踪列表中。
(2)对于跟踪列表中的每一个单词,计算单词权重,计算公式如下:
其中TFPDFt表示单词t的广泛性,表示单词t的时事性,FOt和VOt
分别表示单词t的TFPDFt值和Vart值在所有单词中的排名,用来调节单词对时事性的偏差。
(3)根据单词的权重将单词排序,并返回前k个作为热词。
获得满足频率阈值大于α条件的单词列表(跟踪列表)的时间复杂度是O(1),计算
单词列表中每个单词的TFPDF和Var值是时间复杂度分别是O(1)和O(S),所以EHWE算法的时
间复杂度是O(S)。
附图说明
图1 S=16,l=3时,数据的划分规则。
图2 CNN数据集上两种算法运行时间比较。
图3 BBC数据集上两种算法运行时间比较。
图4 NYT数据集上两种算法运行时间比较。
图5 NYT数据集中获得跟踪列表并计算单词TFPDF值的时间比较。
图6两种算法获得跟踪列表并计算单词TFPDF值的时间随α变化的情况。
图7两种算法运行时间随α变化的情况。
具体实施方式
本发明所描述的从文本数据中提取热词的优化方法是基于现有的对热词的定义
的,下面想通过一个例子详细描述发明所述方法的具体实施方式:
考虑图2中所示的在纽约时报数据集中,提取热词的时间消耗随查询时间长度的
变化情况。首先,需要对文本数据进行预处理,按照一下步骤进行:
(1)根据数据的统计信息,构建一种数据结构;
(2)基于以上数据结构,我们对数据集构建概念上的完全二叉树,并对每一层的节
点划分四元组;
(3)获取每一个四元组对应的候选单词列表。
例如,纽约时报文本数据中的时间范围是2010.01.01-2015.12.31,最小单位时间
间隔是天,所以S=1826,在整个时间范围上构建完全二叉树,一共有12层,第一层是根节
点。每层l有2l-1个节点,例如当l=4时,一共有8个节点。每隔两个子节点将连续四个子节点
划分为一个四元组,一共可以划分3个四元组。计算每个四元组对应的候选单词列表,并存
储。例如第四层第一个四元组对于的候选单词列表中,单词数目是17626。
基于以上的数据预处理,对于任意的查询q,提取热词过程的形式化描述如下:
(1)根据m,n,获得候选单词列表Cp,计算m,n范围内单词总数;
(2)对于Cp中的每一个单词,计算单词t在中出现的次数Countt,m,n。如果Countt,m,n
>α×Totalm,n,那么将单词t加入到跟踪列表;
(3)对于跟踪列表的每个单词t,计算t的权重wt;
(4)根据权重排序选择前k个单词。
例如,当查询范围是2010-01-01~2010-12-31时,对应的层级是3,四元组是1,这
个四元组中候选单词列表中单词的数目是19513,筛选过后,跟踪列表中的单词数目视
6957.整个抽取热词并计算其权重的时间消耗是1346毫秒。而Chen算法的这一过程的时间
消耗是4250毫秒。在实验中,α的取值是0.000015。
为比较Chen算法和EHWE算法运行时间,如图2-4所示,在CNN,BBC,NYT三个数据集
上分别进行实验,其中,频率阈值α为0.000015。由图可知,在CNN,BBC和NYT三个数据集上,
Chen算法和EHWE算法的运行时间会随着查询时间的增长而增长,与Chen算法相比,EHWE算
法在三个数据集涉及的整个时间范围上的运行时间分别减少59.7%,65.1%和75.5%。
与Chen算法相比,EHWE算法减少的时间主要来源于获得跟踪列表并计算词的
TFPDF值时运行时间。我们统计了NYT数据集上两种算法在获得跟踪列表并计算词的TFPDF
值过程的时间消耗,如图5所示。
α是用户事先设定的频率阈值,表示一个词能成为热词的最低频率。α的值越大,表
示满足条件的词个数理论上就会越少。如图6-7所示,比较α值不同时,对Chen算法和EHWE算
法的影响。图6和图7分别表示在给定不同的α值时,Chen算法和EHWE算法关于获得跟踪列表
并计算词TFPDF值(以下称A过程)以及整个提取热词(以下称B过程)过程中时间的消耗。实
验的数据集是NYT,查询的时间范围是2010.01-2015.12。由图6,可以发现,当α值增大时,两
种算法在A过程的时间消耗并没有显著变化,说明A过程的运行时间消耗与α的大小无关,这
是因为他们的时间复杂度分别是O(ST)和O(1),并且S和T与查询的时间范围有关。由图7,可
以发现,随着α的增加,两种算法的在B过程的运行时间消耗会降低,并且趋于稳定。这是因
为,随着α的增加,跟踪列表中词数目会减小,所以计算词权重的时间消耗会减少。极端情况
下,当跟踪列表中的词数目为0时,两种算法在B过程的时间消耗会近似等于A过程的时间消
耗,并且Chen算法的时间消耗大于EHWE算法。综上所述,当α值不断增大时,EHWE算法在数据
集上的运行时间仍小于Chen算法的运行时间。