话题处理方法及装置与流程

文档序号:12719678阅读:237来源:国知局
话题处理方法及装置与流程

本发明涉及自然语言处理领域,具体而言,涉及一种话题处理方法及装置。



背景技术:

话题检测与跟踪(Topic Detection&Tracing)技术是自然语言处理与信息检索领域实用性非常高的技术,也是在大数据背景下有效地发现和提取有用信息实用技术,意在发现和处理文本中出现的热门话题或事件。通常情况下,热门话题或报道的发现和跟踪技术是针对特定领域或者特定事件,发现并跟踪话题后续进展情况的一项技术。

目前,国内外的热门话题检测技术主要侧重于从各类新闻报道中发现、过滤和跟踪话题,执行过程如下:1、文本获取,即上网收集各类媒体的新闻报道;2、文本向量化,即将收集到的原始文本进行向量化处理,形成向量化的文本;3、文本聚类,即将向量化的文本进行聚类分析,并将出现频率高的词语或者处在聚类中心上的文本作为一个话题;4、在特定的时间段内,重复上述1、2、3步的操作,并使用热度模型对第3步得到的话题进行排序,并输出前top-n个话题,该执行过程虽然能够实现话题发现和跟踪功能,但是存在如下缺陷:(1)线下处理,不能实时的发现与跟踪新话题,进而无法及时有效地了解新话题事件;(2)信源单一,全部信息都来源于新闻报道,不能有效利用微博,论坛等其他资源;(3)不能自适应地发现文本中出现的新话题,现有的使用指定话题和聚类技术,发现并跟踪一系列文本中的话题,无法适用于突然出现的话题和发展演变出来的话题;(4)文本聚类方法是粗粒度处理方法,不能充分表示一个话题的重要元素,使得文本中有效信息的利用率不足,会使后期出现的话题出现类中心偏移。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种话题处理方法及装置,以至少解决相关技术中只能发现已有话题,无法发现新话题的技术问题。

根据本发明实施例的一个方面,提供了一种话题处理方法,包括:获取用于描述 话题的新增文本;检测上述新增文本所描述的话题是否是已有话题;在检测结果为上述新增文本所描述的话题不是上述已有话题的情况下,确定上述新增文本所描述的话题为新增话题。

进一步地,获取用于描述话题的新增文本包括:线上获取上述用于描述话题的新增文本。

进一步地,获取用于描述话题的新增文本包括:从多种信源中获取上述用于描述话题的新增文本。

进一步地,在确定上述新增文本所描述的话题为新增话题之后,上述方法还包括:将上述新增话题添加到上述已有话题中;或者先将上述用于描述话题的新增文本存储在新增话题文本队列中,在上述新增话题文本队列中的文本数量达到预设数值和/或程序执行时间达到预设时长后,再从上述新增话题文本队列中提取出相应的新增话题,并将提取出来的新增话题添加到上述已有话题中。

进一步地,在从上述新增话题文本队列中提取出相应的新增话题之后,且将提取出来的新增话题添加到上述已有话题中之前,上述方法还包括:从提取出来的新增话题中过滤掉噪声话题。

进一步地,在将上述新增话题添加到上述已有话题中之后,上述方法还包括:从添加了上述新增话题的已有话题中找出热门话题,其中,上述热门话题为在添加了上述新增话题的已有话题中排名达到指定阈值的话题;输出上述热门话题。

进一步地,检测上述新增文本所描述的话题是否是已有话题包括:对上述新增文本进行向量化处理,得到上述新增文本的文本向量;创建上述已有话题的话题矩阵,其中,上述话题矩阵的每一列表示一个话题,每一行表示话题中的一个词语,每个元素表示当前词语在当前话题中所占权重的大小;根据上述已有话题的话题矩阵A构造上述新增文本的文本向量Y的函数关系式Y=AX;通过根据上述X的解确定上述新增文本所描述的话题与上述已有话题之间的隶属关系;根据上述隶属关系确定上述新增文本所描述的话题是否是上述已有话题。

根据本发明实施例的另一方面,还提供了一种话题处理装置,包括:获取单元,用于获取用于描述话题的新增文本;检测单元,用于检测上述新增文本所描述的话题是否是已有话题;确定单元,用于在检测结果为上述新增文本所描述的话题不是上述已有话题的情况下,确定上述新增文本所描述的话题为新增话题。

进一步地,上述获取单元还用于线上获取上述用于描述话题的新增文本。

进一步地,上述获取单元还用于从多种信源中获取上述用于描述话题的新增文本。

进一步地,上述装置还包括:第一添加单元,用于在确定上述新增文本所描述的话题为新增话题之后,将上述新增话题添加到上述已有话题中;或者第二添加单元,用于先将上述用于描述话题的新增文本存储在新增话题文本队列中,在上述新增话题文本队列中的文本数量达到预设数值和/或程序执行时间达到预设时长后,再从上述新增话题文本队列中提取出相应的新增话题,并将提取出来的新增话题添加到上述已有话题中。

进一步地,上述装置还包括:过滤单元,用于在从上述新增话题文本队列中提取出相应的新增话题之后,且将提取出来的新增话题添加到上述已有话题中之前,从提取出来的新增话题中过滤掉噪声话题。

进一步地,上述装置还包括:查找单元,用于在将上述新增话题添加到上述已有话题中之后,从添加了上述新增话题的已有话题中找出热门话题,其中,上述热门话题为在添加了上述新增话题的已有话题中排名达到指定阈值的话题;输出单元,用于输出上述热门话题。

进一步地,上述检测单元包括:处理模块,用于对上述新增文本进行向量化处理,得到上述新增文本的文本向量;创建模块,用于创建上述已有话题的话题矩阵,其中,上述话题矩阵的每一列表示一个话题,每一行表示话题中的一个词语,每个元素表示当前词语在当前话题中所占权重的大小;构造模块,用于根据上述已有话题的话题矩阵A构造上述新增文本的文本向量Y的函数关系式Y=AX;第一确定模块,用于通过根据上述X的解确定上述新增文本所描述的话题与上述已有话题之间的隶属关系;第二确定模块,用于根据上述隶属关系确定上述新增文本所描述的话题是否是上述已有话题。

在本发明实施例中,采用自适应的发现新话题的方式,通过获取用于描述话题的新增文本;检测所述新增文本所描述的话题是否是已有话题;在检测结果为所述新增文本所描述的话题不是所述已有话题的情况下,确定所述新增文本所描述的话题为新增话题,达到了发现新话题和追踪已有话题的目的,从而实现了提高话题发现的效率和准确率的技术效果,进而解决了相关技术中只能发现已有话题,无法发现新话题的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图 中:

图1是根据本发明实施例的一种可选的话题处理方法的流程图;

图2是根据本发明实施例的一种可选的在线自适应话题发现与跟踪模型的框架图;

图3是根据本发明实施例的一种可选的话题处理装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种话题处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的话题处理方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,获取用于描述话题的新增文本;

步骤S104,检测新增文本所描述的话题是否是已有话题;

步骤S106,在检测结果为新增文本所描述的话题不是已有话题的情况下,确定新增文本所描述的话题为新增话题。

实施时,需要先初始化用于流式批量处理的在线自适应话题发现与跟踪模型的各项参数,再通过爬虫技术实时监听各个信源中针对指定领域的新增加的用于描述话题的文本,并抽取该文本的话题,进而检测抽取的话题是否是已有话题,其中,若是,则确定新增文本所描述的话题为新增话题(即新话题),若否,则确定新增文本所描述的话题为已有话题,也即当前没有新增话题。另外,文本的话题(即主题)挖抽方式可以灵活选取,在此不作限定。并且已有话题可以是人为指定的,或者是由自适应的添加新增话题得到的。使用时,可以将已有话题存储在已有话题列表中,形成话题字典,以应用于新增文本的话题检测任务中。

通过上述实施例,通过使用自适应话题发现技术来发现各个信源中出现的话题,可以实现对新话题的发现和现有话题的跟踪,达到提高话题发现的效率和准确率的目的。

可选地,获取用于描述话题的新增文本包括:线上获取用于描述话题的新增文本。具体地,可以通过爬虫技术线上实时爬取用于描述话题的新增文本,特别是使用爬虫技术爬取指定领域中的新增文本。

通过本发明实施例,采用线上文本获取方式,可以克服相关技术中采用线下处理方式,不能实时的发现与跟踪新话题,以及无法及时有效地了解新话题事件的缺陷,从而更适用于互联网信息瞬息万变的工作场景,能够及时关注文本中的话题。

可选地,获取用于描述话题的新增文本包括:从多种信源中获取用于描述话题的新增文本。具体地,可以从多种信源中获取指定领域的用于描述话题的新增文本。这里涉及的多种信源可以包括:论坛,新闻门户网站,微博等。

通过本发明实施例,可以实现分领域(query)的话题发现与跟踪目的,克服相关技术中全部信息都来源于新闻报道而导致信源单一,不能有效利用微博、论坛等其他有效资源的缺陷。

基于上述实施方式,可选地,在确定新增文本所描述的话题为新增话题之后,上述方法还包括:(1)将新增话题添加到已有话题中;或者,(2)先将用于描述话题的新增文本存储在新增话题文本队列中,在新增话题文本队列中的文本数量达到预设数值和/或程序执行时间达到预设时长后,再从新增话题文本队列中提取出相应的新增话题,并将提取出来的新增话题添加到已有话题中。

与(2)相比,(1)可以及时更新存储已有话题的话题字典,提高自适应发现和跟踪热门话题的能力,但是由于更新过于频繁,可能导致占用较大的资源开销;与(1)相比,(2)可以批量将新增话题更新至话题字典中,节省更新占用的资源开销,但是 其更新比较滞后,发现和跟踪话题的能力不足。

另外,在(2)中还涉及到新增话题提取操作,可以使用主题模型抽取和表示新增话题。具体地,在从新增话题文本队列得到经过过滤的包含新话题的文本后,可以引入主题模型来挖掘文本中所包含的话题,并根据用来表示文本的话题的不同词语集合,构建可以用来添加到话题发现模型中的表示该话题的向量。考虑到话题发现模型中使用的是稀疏表示框架,并且稀疏表示原本就是一个信号的分解操作,为了保持一致性,可以但不限于使用基于非负矩阵分解(NMF topic model)的主题挖掘模型。并且在不同领域或者不同场景中,其他的主题模型可能会更好的表示,比如LDA,RNN神经网络主题挖掘模型等都可以完成这一任务。现介绍非负矩阵分解的主题模型原理如下:

非负矩阵分解定义:找到非负矩阵W与H,使得V=WH,其中,V矩阵表示原始文本集合,它的每一列表示一个文本;W、H为两个非负矩阵,其中,W矩阵的每一行表示特性项,每一列表示一个主题,并且W矩阵中每一列的意义类似于在话题字典中的元组,而H矩阵中每一列则类似于稀疏表示中的X,其中列的每一维表示当前文本与现有主题词语之间的关系。需要说明的是,在此可以限制W矩阵中所包含的潜在语义类的个数,该个数即为粗聚类得到的潜在语义类的个数。

NMF矩阵求解过程简述如下:

(1)假设噪声矩阵为E∈Rn×m,那么有E=V-WH,求解WH的过程即为找到合适的WH使E最小的过程。

(2)假设噪声服从高斯分布(也可以服从泊松分布),则

最大似然函数为:

目标函数为:

(3)使用梯度下降的方法求解WH:

Wik=Wik1·[(VHT)ik-(WHHT)ik]

Hkj=Hkj2·[(WTV)kj-(WTWH)kj]

(4)最终化简为:

当求解W矩阵后,对其每一列可以按照主题挖掘模型中设置的词语的重要性阈值(即权重值),自动地选择话题中包含的词语个数,将W中每一列就会将权重值比较低的一些词语过滤掉,只剩下权重值高的词语,这样保留下来的词语便可以很好地表示一个话题。

进一步,当挖掘出话题后,并不是将所有话题都作为一个新增话题添加到已有话题中。例如,可以按照当前话题中的词语特征,先将一些话题词语集合很小并且权重值都很小的语义类当作噪声话题放弃,再计算剩余的每一个语义类与已有话题的相似度,最终根据相似度的大小确定是否将新增话题加入已有话题。其中,在本发明实施例中,相似度方法可以包括多种,以下简单介绍cos in相似度计算法:

当相似度>0.9时,认为当前话题是已有话题;否则,认为当前话题不是已有话题,而是新增话题,需要将其作为一列添加到话题矩阵中。

通过本发明实施例,可以自适应地发现新话题,并将其补充到话题字典中,以用于后续的话题发现和追踪流程。并且主题模型作为在线自适应学习模型,可以在检测文本话题归属时发现新增话题,并将该新增话题添加到已有话题中,满足话题列表的自适应增长,不会造成新话题丢失,有效地解决了其他方法不能增量处理新话题的困难。

随着发现的新增话题个数的增加,话题字典中的话题会越变越多。由于话题都是在某个时间段内发生的,因此一个话题发生后,在之后的某个时间段内,该话题依然有效。但是在某个时间段内,话题字典中的已有话题一般不会同时发生。基于此,在运算中如果仍然要操作那些并未发生的话题,则会增加资源开销,降低运行速度。优选地,实施时,可以将话题字典中的话题个数限定在一个固定的常数范围内。这样做, 对于一些近期不会发生的话题,可以不进行文本话题发现模块的运算,减少不必要的冗余,而且对于一些长时间发生的话题和近期发生的话题,还能保证运算速率和准确性,进而提高整个系统的运行效率和准确度。实施时,可以使用Most Recently Used调度算法,将已经发现的新增话题调度到在线的处理程序中。下面介绍该调度算法的思想:

首先引入数据结构栈,使用该结构栈记录当前工作框架(即程序)中的话题以及该话题在之前某个时间段内出现的次数。该栈所能容纳的话题最大数为n_max,最少数为n_min。当运行Most Recently Used调度算法时,当出现一个话题,且该话题在当前栈中,就出该话题,并重新进行入栈操作,这样,最近发生的话题就在栈顶处,而那些长时间没有出现的话题,就会出现在栈底。从栈顶到栈底,通过观察其中的话题会发现,话题是按照当前时间段内出现的次数从高到低的排序的。当栈中的话题满足一个阈值后,即栈中元素个数达到n_max后,如果再出现新话题,就要重新对现有工作框架中的话题进行调整,即将栈中话题的个数调整为n_min,这样可以将最近用出现最频繁、持续时间最久的话题填充到栈中的空白位置。其中,调整完成后,可以更新已有话题发现模型。

另外,栈其实可以使用一个固定值,这样每新增一个话题,就需要调度一次,使得调度过于频繁,而通过使用大小为n_max-n_min的缓冲区,可以自适应地选取工作字典中的元组,并置出非工作字典中的元组,达到减少调度的次数的目的。并且工作字典和话题集合相结合,可以有效地减少运算过程中的资源浪费情况,使得系统的运行速度更快。

进一步地可选地,在从新增话题文本队列中提取出相应的新增话题之后,且将提取出来的新增话题添加到已有话题中之前,上述方法还包括:从提取出来的新增话题中过滤掉噪声话题。

当新增话题文本队列中的文本数量达到可以抽取新话题的个数后,由于有些新文本可能包含新增话题,而有些文本中可能与当前领域无任何关系,即队列中可能存在噪声文本,这些噪声文本可以是不包含任何话题的文本,也可以是没有实际意义的页面广告等。在此,可以使用粗聚类算法,预测文本中可能包含的话题个数,并且将一些噪声文本剔除,这样可以保证话题模块挖掘的准确度,并且可以避免挖掘出无用话题。

需要说明的是,粗聚类算法可以包括多种,考虑到便于理解和噪声文本的过滤,可以使用一个能自动确定类个数的聚类算法,如密度聚类算法DBSCAN。该算法可以根据阈值确定类个数,并且可以将一些噪声文本过滤掉,其具体流程如下:

(1)检测数据库中尚未检查过的对象p,如果p未被处理(归为某个簇或者标记为噪声),则检查其邻域,若包含的对象数不小于类中样本的个数阈值minPts,则建立新簇C,将其中的所有点加入候选集N;

(2)对候选集N中所有尚未被处理的对象q,检查其邻域,若至少包含minPts个对象,则将这些对象加入N;如果q未归入任何一个簇,则将q加入C;

(3)重复步骤(2),继续检查N中未处理的对象,当前候选集N为空;

(4)重复步骤(1)-(3),直到所有对象都归入了某个簇或标记为噪声。

通过本发明实施例,可以将过滤后得到的新增文本作为新增话题的挖掘对象,从而提高话题挖掘的精准度。并且基于噪声过滤方法的主题模型来发现文本中的新增话题时,使用主题词集合的方式来表示话题,比使用文本内容来表示话题更精准,更容易聚焦到文本中的话题上,而且不考虑文本中的噪声信息。

基于上述实施方式,可选地,在将新增话题添加到已有话题中之后,上述方法还包括:从添加了新增话题的已有话题中找出热门话题,其中,热门话题为在添加了新增话题的已有话题中排名达到指定阈值的话题;输出热门话题。需要说明的是,在输出热门话题时可以考虑输出各文本与各热门话题之间的对应关系。

在重复执行文本在线处理、文本话题检测、文本话题发现、聚类分析新增话题及新增话题数量、话题模型抽取及表示、话题字典更新、文本与话题归属标识及存储、选取工作字典中的元组和置出非工作字典中的元组等操作后,可以根据时间限制和热度模型,输出热门话题,保存字典及话题等相关信息。

具体地,当文本数量达到设定阈值,或者程序执行时间达到预定时间时,可以对当前文本中或当前时间段内的话题选择适当热度模型进行热度排序。在此,热度模型同时使用了话题的提及量,话题延续时间,以及话题的新颖度等来确定最终的热度,并按照时间点输出。其中,热度计算方法如下:热度=a*延续性+b*提及量+c*新颖度+d*其他因素。

其中,延续性意在发现那些在很长一段时间内都出现的话题,这类话题在长时间内以平稳的趋势出现,往往其出现次数并不高,可能会不如近期出现的话题提及量大,但是考虑到其出现的时间较长,所以将其作为热度计算的参数。提及量,简单理解,便是话题在时间段内出现的次数。一般情况下,近期出现频率越高的话题将具有更高的热度,比如一个话题在语料(即文本)中发生了,整个互联网上会出现大量的报道,这样的话题应该具有较高的热度,比如“天津爆炸案”,“青岛天价大虾”等话题,这些话题在出现后不久的一段时间内,都具有很高的提及量。另外,新出现的话题可能 会因为话题刚刚出现,因而不会产生很大量的提及量,但是这样的话题会有变为热门话题的趋势,为了防止忽略这样的话题而可能造成信息缺失,引入了新颖度的概念。对于其他因素,比如考虑到一个热门话题可能会随着时间的推移而变得不那么热门,类似这样的因素可以加入到其他因素中。具体地,可以使用牛顿冷却算法,将一个话题的热度与其出现的时间建立关系,从而演变它的热度趋势。

通过本发明实施例,使用灵活的热度计算模型,可以使话题的热度排序更灵活、更简单,并且可以根据不同应用场景,调整不同的热度计算方法。另外,在发现文本话题时,可以标记文本与话题之间的归属关系并存储之,同时保存话题字典及话题的相关信息,这样可以在输出热门话题时,同时输出支持该热门话题的文本,以便于用户查询。

可选地,检测新增文本所描述的话题是否是已有话题包括:对新增文本进行向量化处理,得到新增文本的文本向量;创建已有话题的话题矩阵,其中,话题矩阵的每一列表示一个话题,每一行表示话题中的一个词语,每个元素表示当前词语在当前话题中所占权重的大小;根据已有话题的话题矩阵A构造新增文本的文本向量Y的函数关系式Y=AX;通过根据X的解确定新增文本所描述的话题与已有话题之间的隶属关系;根据隶属关系确定新增文本所描述的话题是否是已有话题。

其中,新增文本的原始表示方式可以灵活选取,在此不作限制。在收集到语料以后,可以使用TFIDF模型将文本进行向量化表示。TFIDF模型通常会使用全网数据统计词语的词频以及倒排索引值,但是考虑到不同的词语在不同的领域中,可能具有不同的意义,或者不同词语在不同领域中,对理解话题的意思会有不相同的意义与重要性,因此可以针对于不同领域训练不同的TFIDF模型,该模型可以使用先期收集到的不同领域的语料进行线下训练得到,且只需要训练一次,在以后的流程中,都可以重复使用该模型对文本进行向量化表示。

以下介绍TFIDF模型的主要原理:如果某个词语或短语在一篇文章(即文本)中出现的频率TF较高,并且在其他文章中很少出现,则认为该词语或短语具有很好的类别区分能力,适合用来分类。在本发明中,如果一个词语或短语在一个话题中出现的次数较多,并且在该话题以外的话题中出现次数较少,则说明该词语或短语对于当前话题的表述有意义。需要说明的是,词频(term frequency,简称为TF)指的是某一个给定的词语在某个文本中出现的频率。这个数字是对词数(term count)归一化的结果,可以防止它偏向长的文件,其计算方式如下:

其中,分子表示词j在文本i中出现的次数,分母表示文本中所有字词的出现次数之和。

倒排文本频率(inverse document frequency,简称为IDF)是一个词语普遍重要性的度量。某一特定词语的I DF,可以由总文本数目除以包含该词语的文本数目,再将得到的商取对数得到:

其中,分子表示语料库中的文本总数,分母表示出现词语i的文本个数。TF-IDF的计算公式如下:

tfidfi,j=tfi,j×idfi

在本发明实施例中,可以训练当前指定的领域的IDF模型,即在一个足够大的领域语料集合上,统计词语出现的文本倒排索引的值。当该领域有一个新文本出现后,将计算该文本中的词语的TF值,并将TF值与该词语相应的IDF值相乘,作为文本向量化后中的一维。

实施时,可以引入稀疏表示方法在线完成新增文本的话题处理。下面先介绍稀疏表示的基本原理:简单来说,它其实是一种对原始信号的分解过程,该分解过程借助一个事先得到的话题字典(也称之为过完备基,在发明中,话题字典是已有话题的量化表示),将新增文本表示为该字典的近似线性函数:Y=AX,其中,A是一个话题字典对应的矩阵,它的每一列表示一个话题,列的每一维表示该话题中的一个元素,该元素的值表示该元素所在行对应的词语对所在列对应的话题的重要程度。矩阵A中每一列都是一个向量,该向量中每一维都表示一个词语。当一个维度的值为零,则表示该话题中不包含该词语;如果一个维度的值为0.9,则表示该词语对于当前话题的重要性程度为0.9。这样,一个话题其实由一系列的带有权重的词语组成,并且这些词语量化为一个向量,并作为话题字典中的一个元组,字典矩阵中的一列出现。Y新增文本对应的向量化文本。向量X是文本与话题之间的线性关系,该向量是根据稀疏求解的规范求解得到的,它的大部分元素为空,显示时这些元素可以采用空白格显示,其他元素表示与当前话题的归属关系,可以采用不同颜色框进表示,比如绿色框表示文本中包含某个话题。当向量X中不为零的元素>预设阈值时,则说明该文本与最大元素 所代表的话题相关,换言之,该文本属于该话题。当最大元素<预设阈值,或者向量X非稀疏,则说明该文本与已有话题之间没有隶属关系,或者该文本与所有已经发现的得话题都不是那么的相似,不应该归属到任何一个话题。

因为稀疏表示在学术上是一个NP-难题,不能通过直接计算或者解方程的方式获取最优解,因此,在这里可以使用L1-范数最小化的近似求解方式来求解X向量,也就是求解文本与话题的归属关系。L1-范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization),有理论研究证明,L1-范数最优化的基础上,求得的向量也满足稀疏性,向量中的非零元素最多,这样求解X的方法变换为:

其中,x是要求的向量,而e则是稀疏表示的误差。这样做的目的在于求解得到最为相关的话题,并保证求解过程中的误差最小。这个求解过程有很多种近似,可以使用最为常用的Lasso-工具包进行求解。当然其他方法也可以求解得到,在此不做限定。

在求得文本与话题的归属关系后,可以确定文本归属于哪个已有话题,进而直接标注归属关系后输出,而对于那些未能匹配到已有话题的文本,可以将该文本放入到新增话题文本队列,等待下一操作过程中挖掘出文本中包含的新增话题。

以下结合图2详细阐述文本在线处理及话题发现过程:

如图2所示,具体流程如下:(1)当在线获取到流式文本后,将其输入到本框架中的文本表示模型,以将原始文本表示成向量化文本;(2)通过话题发现模型检测各向量化文本所描述的话题是否归属于当前已经发现的话题(即已有话题);(3)在各向量化文本所描述的话题归属于当前已经发现的话题时,则直接标记文本与话题的归属关系并通过文本-话题输出模块输出之;(4)在各向量化文本所描述的话题不归属于当前已经发现的任何话题时,表示当前文本中包含有新增话题,此时可以将该文本加入到新增话题文本队列中;(5)当新增话题文本队列中的文本数量达到一个预设阈值时,启动新话题挖掘模块挖掘新增话题;(6)通过字典维护模块将新发现的话题添加到当前的话题列表中,并自动更新话题字典,使其可以支持新增话题,而不需要人为修改当前模型;另外,当将当前文本加入到新增话题文本队列中后,且该队列中的文本数量不足时,在缓存文本的同时,继续在线并从外部接收新增加的文本进行处理。

需要说明的是,上述框架支持在线的文本处理,当程序启动后,文本可以随时来 随时处理。并且上述话题发现模型可以随着新发现的话题进行更改,实现一种自适应的话题增加机制。另外,执行程序之前需要初始化上述框架,包括:加载话题发现模型,如果为第一次运行程序,则将话题发现模型置空,如果非第一次运行程序(即热启动),也即已有被发现的话题,则将已有话题加载到话题发现模型中;清空框架中的队列内的所有缓存;开放文本监听/输入接口,等待文本输入。

通过本发明实施例,在线的框架可以随时处理互联网上获取的数据,使系统更具有实时性,流式的处理流程可以更加充分的利用系统资源,加快数据的处理速度。

实施例2

根据本发明实施例,提供了一种话题处理装置的装置实施例。

图3是根据本发明实施例的一种可选的话题处理装置的示意图,如图2所示,该装置包括:获取单元302,用于获取用于描述话题的新增文本;检测单元304,用于检测上述新增文本所描述的话题是否是已有话题;确定单元306,用于在检测结果为上述新增文本所描述的话题不是上述已有话题的情况下,确定上述新增文本所描述的话题为新增话题。

通过上述实施例,通过使用自适应话题发现技术来发现各个信源中出现的话题,可以实现对新话题的发现和现有话题的跟踪,达到提高话题发现的效率和准确率的目的。

可选地,上述获取单元还用于线上获取上述用于描述话题的新增文本。

通过本发明实施例,采用线上文本获取方式,可以克服相关技术采用中线下处理方式,不能实时的发现与跟踪新话题,以及无法及时有效地了解新话题事件的缺陷,从而更适用于互联网信息瞬息万变的工作场景,能够及时关注文本中的话题。

基于上述实施例,可选地,上述获取单元还用于从多种信源中获取上述用于描述话题的新增文本。

通过本发明实施例,可以实现分领域(query)的话题发现与跟踪目的,克服相关技术中全部信息都来源于新闻报道而导致信源单一,不能有效利用微博、论坛等其他有效资源的缺陷。

可选地,上述装置还包括:第一添加单元,用于在确定上述新增文本所描述的话题为新增话题之后,将上述新增话题添加到上述已有话题中;或者,第二添加单元,用于先将上述用于描述话题的新增文本存储在新增话题文本队列中,在上述新增话题文本队列中的文本数量达到预设数值和/或程序执行时间达到预设时长后,再从上述新 增话题文本队列中提取出相应的新增话题,并将提取出来的新增话题添加到上述已有话题中。

与(2)相比,(1)可以及时更新存储已有话题的话题字典,提高自适应发现和跟踪热门话题的能力,但是由于更新过于频繁,可能导致占用较大的资源开销;与(1)相比,(2)可以批量将新增话题更新至话题字典中,节省更新占用的资源开销,但是其更新比较滞后,发现和跟踪话题的能力不足。

可选地,上述装置还包括:过滤单元,用于在从上述新增话题文本队列中提取出相应的新增话题之后,且将提取出来的新增话题添加到上述已有话题中之前,从提取出来的新增话题中过滤掉噪声话题。

通过本发明实施例,可以将过滤后得到的新增文本作为新增话题的挖掘对象,从而提高话题挖掘的精准度。并且基于噪声过滤方法的主题模型来发现文本中的新增话题时,使用主题词集合的方式来表示话题,比使用文本内容来表示话题更精准,更容易聚焦到文本中的话题上,而且不考虑文本中的噪声信息。

基于上述实施例,可选地,上述装置还包括:查找单元,用于在将上述新增话题添加到上述已有话题中之后,从添加了上述新增话题的已有话题中找出热门话题,其中,上述热门话题为在添加了上述新增话题的已有话题中排名达到指定阈值的话题;输出单元,用于输出上述热门话题。

通过本发明实施例,使用灵活的热度计算模型,可以使话题的热度排序更灵活、更简单,并且可以根据不同应用场景,调整不同的热度计算方法。另外,在发现文本话题时,可以标记文本与话题之间的归属关系并存储之,同时保存话题字典及话题的相关信息,这样可以在输出热门话题时,同时输出支持该热门话题的文本,以便于用户查询。

可选地,上述检测单元包括:处理模块,用于对上述新增文本进行向量化处理,得到上述新增文本的文本向量;创建模块,用于创建上述已有话题的话题矩阵,其中,上述话题矩阵的每一列表示一个话题,每一行表示话题中的一个词语,每个元素表示当前词语在当前话题中所占权重的大小;构造模块,用于根据上述已有话题的话题矩阵A构造上述新增文本的文本向量Y的函数关系式Y=AX;第一确定模块,用于通过根据上述X的解确定上述新增文本所描述的话题与上述已有话题之间的隶属关系;第二确定模块,用于根据上述隶属关系确定上述新增文本所描述的话题是否是上述已有话题。

需要说明的是,装置部分的具体实施方式与方法部分的具体实施方式类似,在此 不再赘述。

上述话题处理装置包括处理器和存储器,上述获取单元、检测单元、确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取用于描述话题的新增文本;检测新增文本所描述的话题是否是已有话题;在检测结果为新增文本所描述的话题不是已有话题的情况下,确定新增文本所描述的话题为新增话题。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1