具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
在具体阐述根据本发明的话题追踪方法之前,首先定义以下名词:
话题:每个事件都是一个话题,用若干个关键词表示,每个话题都有其发生时的时间戳。
触发微博:时间上最早讨论该话题的微博被称为触发微博。
背景语料:在话题发生的时间戳之前发布的微博集合被称为背景语料。
前景语料:在话题发生的时间戳之后发布的微博集合被称为前景语料。
训练集合:该集合包含了一个话题集合,同时对于每个话题,该训练集合还包含了标注了是否与该话题相关的微博集合。
子话题集合:每个话题都拥有一个子话题集合,该集合中的每个子话题都是跟该话题相关的微博的集合。
图1示出了根据本发明的实施例的微博环境下自适应话题追踪方法的示意流程图。
如图1所示,根据本发明的实施例的微博环境下自适应话题追踪方法,可以包括以下步骤:
步骤102,预设训练集合,其中,训练集合包括至少一个话题、前景语料和背景语料,前景语料为在话题发生的时间戳之后发布的微博,背景语料为在话题发生的时间戳之前发布的微博;步骤104,获取话题的前景语料中每一条微博的文本特征和与话题的相关性特征,以得到有关于训练集合的特征集合;步骤106,根据特征集合训练生成话题追踪模型;步骤108,使用话题追踪模型对话题相关的微博进行追踪并生成所述话题的子话题。
该方法中包含了一个子话题检测模块,该模块能够将检测到的相关微博划分到不同的子话题,并检测新话题的生成,其核心是一个增量式的聚类算法。同时,该子话题检测模块能够辅助微博话题追踪系统判断新到来的微博与话题的相关性。本发明提出了两类表达子话题的模型,一类是基于微博文本内容的子话题模型,另一类是考虑到时间上临近且相关的微博更能表达话题的侧重点,因此结合了微博的文本内容和时间信息来表示子话题模型。在话题追踪系统中加入子话题检测模块不仅能够提高微博话题追踪的准确率,其所检测到的带有时间戳的子话题还能反应出事件的发展情况,用户体验的效果也得到了提高。
其中,获取话题的前景语料中每一条微博的文本特征和与话题的相关性特征,具体包括:
根据背景语料中每一条微博中的词建立索引;获取前景语料中每一条微博的内容信息,将内容信息添加至索引中;使用狄利克雷算法和索引进行计算,确定前景语料中的微博的文本内容和扩展主题信息分别与话题的相关度;计算前景语料中的微博与话题集合中的子话题之间的相关度;将所述微博的文本内容和扩展主题信息分别与所述话题的相关度、以及所述前景语料中的微博与已获取的子话题之间的相关度作为所述前景语料中的微博的文本特征;将在训练集合中预先标注的微博与话题的相关性作为相关性特征。
背景语料中每一条信息中的词获取过程包括:
提取背景语料中的微博的原始文本的短链接,根据短链接获取微博的扩展主题信息,将扩展主题信息特征至背景语料中,以及对背景语料中的内容和表示话题的关键词集合进行预处理,得到词的分布数据。
获取前景语料中每一条微博的内容信息,具体包括:
提取前景语料中的微博的原始文本的短链接,根据短链接获取微博的扩展主题信息,将所述扩展主题信息作为所述内容信息。
需说明的是,获取信息的扩展主题信息的方法包括:将微博的短链接还原成原始的长链接,从长链接中解析出网站关键字集合;将网站的网页代码中解析出标签的内容,将标签的内容分割成多个子字符串;将不包含网站关键字集合中任一关键字的子字符串作为微博的扩展主题信息。
信息追踪方法还包括将触发微博作为话题的第一个子话题添加进话题的子话题集合,其中,触发微博为与话题相关的且时间最早的微博;对所述子话题进行建模,得到子话题模型;计算前景语料中的微博与子话题集合中的每一子话题模型之间的相关度,判断最大的相关度值是否大于预设值;若最大的相关度值大于预设值,且所述微博与所述话题相关,则将微博加入对应于最大的相关度值的子话题的微博集合中,否则,使用微博的信息创建新的子话题,并将新的子话题加入话题的子话题集合中。
对子话题进行建模有两种建模方法:基于微博词汇信息的子话题表示模型和结合微博词汇信息和时间信息的子话题表示模型。其中,结合微博词汇信息和时间信息的子话题表示模型更适用于实时性高的话题的追踪任务。
采用梯度下降算法对特征集合进行训练,得到话题追踪模型,其中,使用话题追踪模型对话题相关的微博和子话题进行追踪包括:使用话题追踪模型计算出实时微博与话题的相关性;展现相关的实时微博,并更新子话题集合;提取子话题集合中每个子话题的关键词,展现提取的关键词。
本发明提出了一种基于子话题检测的在微博环境下进行自适应式话题追踪的方法,目的在于从海量的实时微博流中过滤出与话题相关的微博。在过滤与话题相关的微博的同时,可以处理话题漂移的情况,检测出该话题的子话题,并将该事件的发展脉络展现给用户,该方法是一个针对所有话题的统一性的方法,任何的话题的追踪需求都可以使用该方法。
根据本发明的另一实施例的话题追踪的方法主要包括以下几个步骤:
A、基于训练集合使用文本模型和反馈模型生成训练得到话题追踪系统的特征集合,其中,文本模型和反馈模型将在下文中被解释。
B、使用梯度下降算法训练得到话题追踪系统M。
C、使用生成的话题追踪系统过滤相关微博并检测子话题。
B中所描述的话题追踪系统M是基于常用的逻辑斯谛回归(LogisticRegression)分类器的,可以用公式1来表示:
公式1
根据公式1,在进行话题追踪前,首先要先估算出模型的参数w、b。本发明使用公式2表示的常用的对数似然损失函数以及梯度下降算法来计算参数,在此不再加以赘述。
公式2
公式2中所需要的x(i),y(i)是从训练集合中获取的特征集合,x(i)包含的三维特征分别是Sorg、Sti、Scls,y(i)是在训练集合中预先标注的微博与话题的相关性。
针对训练集合中的每一个话题Q,如图2所示,特征集合的获取方法包括以下步骤:
A1)对训练集合中背景语料中的微博集合中的每一条微博,提取微博原始文本中的短链接,通过短链接获取该微博的扩展主题信息。添加到背景语料中。
A2)对训练集合中背景语料中的内容进行预处理,主要包括以下步骤:
A2.1)剔除停用词。
A2.2)词干提取。
A2.3)计算每个单词的TF值和IDF值。
A3)对表示话题的关键词集合进行预处理,主要包括以下步骤:
A3.1)剔除停用词。
A3.2)词干提取。
A4)对该话题的背景语料集合建立倒排索引。
A5)设置子话题检测时需要用的阈值β。
A6)初始状态下将话题Q的子话题集合C设为空。使用该话题的触发微博建立第一个子话题c0,加入子话题集合C中。
A7)对于微博集合中的前景语料部分的每条微博D,做以下操作:
A7.1)提取微博原始文本中的短链接,通过短链接获取该微博的扩展主题信息D′。
A7.2)对该微博D的原始文本信息和扩展主题信息进行预处理。
A7.3)将该微博D的原始文本信息和扩展主题信息添加到A4中所建立的倒排索引中。
A7.4)使用语言模型对D进行建模,计算微博文本内容和话题的相关度Sorg。其计算方法如公式3所示。其中,和是使用狄利克雷平滑(Dirichlet Smoothing)算法计算得到的对话题Q和微博D的估计。
公式3
A7.5)使用公式3计算该微博的扩展信息D′和话题Q的相关度Sti。
A7.6)对于子话题集合C中的每个子话题建立子话题模型Wc=<w0,w1,w2,…,w1>,并使用公式2计算微博D与每个子话题的相关度,并选取相关度最大的子话题。假设该子话题为c*,利用公式4计算该微博与话题Q的相关度即为Scls。
公式4
A7.7)通过标注结果获取微博D和话题Q的相关性。
A7.8)如果该微博与该话题相关,则转到A7.9处理,否则结束该条微博的特征生成。
A7.9)如果Scls大于等于预先设定的阈值β,则将该微博D加入到子话题c*的微博集合中并结束对微博的处理,否则转到A7.10。
A7.10)使用微博D的信息创建一个新的子话题cnew,加入到子话题集合C中。上述步骤有些步骤没有在图2中示出。
在本实施例中,采用四种建模方法来来建立步骤A7.6提到的对子话题集合C中的每个子话题建立子话题模型Wc=<w0,w1,w2,…,w1>,均能得到比较好的话题追踪效果,实际使用时可以选择其中任何一个来使用。这四种方法分成两类,一类称为基于微博文本内容的子话题模型,另一种称为结合微博文本内容和时间信息的子话题模型。
两种基于微博文本内容的子话题模型分别是根据公式5和公式7计算得到的。
公式5
公式6
公式7
其中n为该子话题中微博的条数;c(i|dj)表示词i在第j个微博中出现的次数;|dj|为第j个微博中词的个数;N表示背景语料中微博的总数量,Ni表示背景预料中包含词i的微博的个数。
两种基于微博文本内容和时间信息的子话题模型分别是根据公式8和公式9计算得到的。
公式8
公式9
其中,P(dj|tj)是由公式10得到的第j条微博的时间信息。tn表示当前时间,tj表示第j条微博发表的时间;r是预先设定的常数。该公式是一个时间衰减函数,提高了发表时间临近当前时间的微博所占的权重。
P(dj|tj)=r·e-r·Δt 公式10
Δt=|tn-tj|
使用A1-A7所描述的方法得到训练所需要的特征集合,并使用梯度下降方法训练得到公式1中所描述话题追踪系统M后,就可以进行微博上的话题追踪了。
话题追踪的过程和训练的过程基本是一致的,不同的地方在于A7.7中微博与话题Q相关性的获取。在话题追踪的过程中,利用A1-A7.6中所描述的方法获取所需要的特征后,用公式1所描述的话题追踪系统,计算出该微博和话题Q的相关性,如果该微博与话题是相关的,则将该微博展示给用户。
话题追踪结束后,提取子话题集合C中每个子话题的关键词展示给用户,用户可以从关键词中得知话题的发展情况。
针对A1和A7.1中所提到的通过微博短链接获取微博的扩展主题信息,主要有以下步骤:
1)将微博中包含的短链接还原成原始的长链接。
2)从长链接中解析出网站关键字集合。
3)从网页HTML代码中解析出<TITLE>标签的内容,作为网页主题信息的候选文本。
4)将候选文本的内容用常见的分隔符(例如“|”,“-”,“_”)分割成若干个子字符串。
5)保留不包含网站关键字集合中任一关键字的字符串作为微博的扩展主题信息。
在实际应用中,获取特征集合的过程主要包括以下步骤:
1)训练集合中背景语料中的微博集合中的每一条微博,提取微博原始文本中的短链接,通过短链接获取该微博的扩展主题信息,并添加到背景语料中。
2)对训练集合中的微博集合进行预处理,主要包括以下步骤:
a)剔除停用词。停用词可以由用户事先进行设置,可以为“in”、“the”和标点符号等无具体意义的词,中文可以为“的”、“着”、“吧”和标点符号等无具体意义的词。需要说明的是,当文档中出现中文句子时,需要利用现有技术对中文句子进行特殊的分词处理,再将停用词从文档中剔除。
b)词干提取。当目标文档集合中的内容为英文字符时,将所有单词进行还原。
c)计算每个单词的TF值和IDF值。
3)对表示话题的关键词集合进行预处理,主要包括以下步骤:
d)剔除停用词。
e)词干提取。
4)设置子话题检测时需要用的阈值β。
5)对该话题所对应的微博集合中的背景语料部分建立倒排索引。
6)初始状态下将话题Q的子话题集合C设为空。
7)使用该话题的触发微博建立第一个子话题c0,加入子话题集合C中。
8)对于微博集合中的前景语料部分的每条微博D,做以下操作:
a)提取微博原始文本中的短链接,通过短链接获取该微博的扩展主题信息D′。
b)预处理后,将该微博D的原始文本信息和扩展主题信息添加到倒排索引中。
c)使用语言模型对微博的原始文本内容进行建模,使用公式3计算微博文本内容和话题的相关度Sorg。
d)使用公式3计算该微博的扩展信息D′和话题Q的相关度Sti。
e)从公式5、7、8、9中任选一个对于子话题集合C中的每个子话题建立子话题模型Wc=<w0,w1,w2,…,w1>,并使用公式2计算微博D与每个子话题的相关度,并选取相关度最大的子话题。假设该子话题为c*,该微博与话题Q的相关度即为Scls。
f)获取微博D和话题Q的标注结果,如果该微博与该话题不相关,则结束该条微博的特征生成,否则更新子话题集合。
参见图3,根据本发明的又一实施例的话题追踪的过程,主要有以下步骤:
步骤302,对背景语料中的微博集合中的每一条微博,提取微博原始文本中的短链接,通过短链接获取该微博的扩展主题信息,并将该扩展主题信息添加到背景语料中。
步骤304,对该话题的背景语料集合中的微博进行预处理。
步骤306,对该话题的背景语料集合建立倒排索引。对表示话题的关键词集合进行预处理。以及设置子话题检测时需要用的阈值β,将话题Q的子话题集合C设为空。使用该话题的触发微博建立第一个子话题c0,加入子话题集合C中。
步骤308,对实时微博流中的每条微博D进行追踪:
步骤3082,提取微博原始文本中的短链接,通过短链接获取该微博的扩展主题信息D′。扩展主题信息的获取方法与训练分类器中的方法一致。
预处理后,将该微博的原始文本信息和扩展主题信息添加到步骤306中所建立的倒排索引中。
使用语言模型对微博的原始文本内容进行建模并根据公式1计算计算微博文本内容和话题的相关度Sorg。
使用公式1计算该微博的扩展信息D′和话题Q的相关度Sti。
从公式5、7、8、9中任选一个对于子话题集合C中的每个子话题建立子话题模型Wc=<w0,w1,w2,…,w1>,并使用公式2计算微博D与每个子话题的相关度,并选取相关度最大的子话题。假设该子话题为c*,该微博与话题Q的相关度即为Scls。
将计算所得的Sorg、Sti、Scls作为训练得到的自适应话题追踪模型的输入,分类器给出微博D和话题Q的相关性。
步骤3084,如果分类器判断微博D和话题Q相关,则展示该微博给用户,并更新子话题集合。
话题追踪结束后,提取子话题集合C中每个子话题的关键词展示给用户。用户可以从关键词中得知话题的发展情况。
图4示出了根据本发明的实施例的更新子话题集合的示意图。
如图4所示,根据本发明的更新子话题集合的过程主要包括:
步骤402,判断Scls(子话题与话题Q的相关度)是否大于等于预先设定的阈值β。
步骤404,如果Scls大于等于预先设定的阈值β,则将该微博D加入到子话题c*的微博集合中并结束对微博的处理。
步骤406,如果Scls小于预先设定的阈值β,则使用微博D的信息创建一个新的子话题cnew,加入到子话题集合C中。
图5示出了根据本发明的实施例的提取扩展主题信息的流程图。
在本实施例中,通过微博短链接获取微博的扩展主题信息的过程,主要有以下步骤:
步骤502,提取微博的短链接。
步骤504,将文档中包含的短链接还原成原始的长链接。
步骤506,从长链接中解析出网站关键字集合。
步骤508,从网页HTML代码中解析出<TITLE>标签的内容,作为网页主题信息的候选文本。
步骤510,将候选文本的内容用常见的分隔符(例如“|”,“-”,“_”)分割成若干个子字符串。
步骤512,保留不包含网站关键字集合中任一关键字的字符串作为微博的扩展主题信息。
图6示出了根据本发明的实施例的话题追踪装置的框图。
如图6所示,根据本发明的实施例的话题追踪装置600可以包括:设置单元602,预设训练集合,其中,所述训练集合包括至少一个话题、前景语料和背景语料,所述前景语料为在所述话题发生的时间戳之后发布的微博,所述背景语料为在所述话题发生的时间戳之前发布的微博;特征集合获取单元604,获取所述话题的前景语料中每一条微博的文本特征和与话题的相关性特征,以得到有关于所述训练集合的特征集合;话题追踪模型生成单元606,根据所述特征集合训练生成话题追踪模型;追踪单元608,使用所述话题追踪模型对所述话题相关的微博进行追踪并生成所述话题的子话题。
该话题追踪装置600能够将检测到的相关微博划分到不同的子话题,并检测新话题的生成,其核心是一个增量式的聚类算法。同时,能够辅助微博话题追踪系统判断新到来的微博与话题的相关性。本发明提出了两类表达子话题的模型,一类是基于微博文本内容的子话题模型,另一类是考虑到时间上临近且相关的微博更能表达话题的侧重点,因此结合了微博的文本内容和时间信息来表示子话题模型。在话题追踪系统中加入子话题检测模块不仅能够提高微博话题追踪的准确率,其所检测到的带有时间戳的子话题还能反应出事件的发展情况,用户体验的效果也得到了提高。在另一实施例中,该特征集合获取单元604可以包括:
索引建立单元6042,根据所述背景语料中每一条微博中的词建立索引,以及获取所述前景语料中每一条微博的内容信息,将所述内容信息添加至所述索引中;文本特征获取单元6044,使用狄利克雷算法和所述索引进行计算,确定所述前景语料中的微博的文本内容和扩展主题信息分别与所述话题的相关度,以及计算所述前景语料中的微博与已获取的子话题之间的相关度,将所述微博的文本内容和扩展主题信息分别与所述话题的相关度、以及所述前景语料中的微博与已获取的子话题之间的相关度作为所述前景语料中的微博的文本特征;相关性特征获取单元6046,将在所述训练集合中预先标注的微博与所述话题的相关性作为所述相关性特征。
其中,所述索引建立单元6042包括:
分布数据获取单元6042A,提取所述背景语料中的微博的原始文本的短链接,根据所述短链接获取所述微博的扩展主题信息,将所述扩展主题信息特征至所述背景语料中,以及对所述背景语料中的内容和表示所述话题的关键词集合进行预处理,得到所述词的分布数据;
内容信息获取单元6042B,提取所述前景语料中的微博的原始文本的短链接,根据所述短链接获取所述微博的扩展主题信息,将所述扩展主题信息作为所述内容信息。
优选的,所述内容信息获取单元6042B还用于将所述微博的短链接还原成原始的长链接,从所述长链接中解析出网站关键字集合,将所述网站的网页代码中解析出标签的内容,将所述标签的内容分割成多个子字符串,将不包含所述网站关键字集合中任一关键字的子字符串作为所述微博的扩展主题信息。
在上述技术方案中,优选的,所述追踪单元608包括:子话题建立单元6082,将触发微博作为所述话题的第一个子话题添加进所述话题的子话题集合,其中,所述触发微博为与所述话题相关的且时间最早的微博,以及对所述子话题进行建模,得到子话题模型,以及计算所述前景语料中的微博与所述子话题集合中的每一子话题模型之间的相关度,判断最大的相关度值是否大于预设值,若所述最大的相关度值大于预设值,并且所述微博与所述话题相关,则将所述微博加入对应于所述最大的相关度值的子话题的微博集合中,否则,使用所述微博的信息创建新的子话题,并将所述新的子话题加入所述话题的子话题集合中。
在上述技术方案中,优选的,所述话题追踪模型生成单元606采用梯度下降算法对所述特征集合进行训练,得到所述话题追踪模型;所述追踪单元608还用于使用所述话题追踪模型计算出实时微博与所述话题的相关性,以及根据所述实时微博与所述话题的相关性,展现与所述话题相关的实时微博,并更新所述子话题集合,以及提取所述子话题集合中每个子话题的关键词,展现提取的关键词。
本发明提供了一种基于子话题检测的在微博环境下进行自适应式话题追踪的装置,目的在于从海量的实时微博流中过滤出与话题相关的微博。在过滤与话题相关的微博的同时,可以处理话题漂移的情况,检测出该话题的子话题,并将该事件的发展脉络展现给用户。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。