CN105786791A - 数据主题获取方法及装置 - Google Patents
数据主题获取方法及装置 Download PDFInfo
- Publication number
- CN105786791A CN105786791A CN201410812266.6A CN201410812266A CN105786791A CN 105786791 A CN105786791 A CN 105786791A CN 201410812266 A CN201410812266 A CN 201410812266A CN 105786791 A CN105786791 A CN 105786791A
- Authority
- CN
- China
- Prior art keywords
- theme
- sampling
- word
- sampled data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种数据主题获取方法,包括步骤:接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题;根据得到的每个词的主题,计算生成每个子数据的主题。本发明还公开一种数据主题获取装置。本发明减少了迭代计算的时长,进而提高了数据主题获取的效率。
Description
技术领域
本发明涉及到数据处理技术领域,特别涉及到数据主题获取方法及装置。
背景技术
LDA(LatentDirichletAllocation,概率主题模型),可以用来识别大规模文档集或语料库中潜藏的主题信息。通过利用主题模型经过多次迭代计算以确定隐含变量和观察数据的关系,而每次迭代计算都是一个采样的过程。LDA的采样方法是GibbsSampling(吉布斯抽样),其中,观察数据是文档中的词,隐含变量是词对应的主题,文档中的每个词在采样后都会重新分配一个主题。采样计算非常耗时,需要对所有文档中的每个词都采样一遍。假设主题数目为K,对于文档数是D,文档平均词数为W的语料库,其单次采样复杂度为O(D*W*K)。
在分布式环境下,输入数据包括多个文档(子数据)是按文档分块计算的,即每个分块包含相同的文档篇数。每个分块中文档数较多时数据分布总体上还算均匀,但是每篇文档内词的数目并不一致,最大数据块和最小数据块的词数目还是有一定差距。因采样耗时与词数目线性相关,在现有的按文档分块的方式,使得每个分块中词的数量不同,且每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低。
发明内容
本发明实施例提供一种数据主题的获取方法及装置,旨在解决现有的按文档分块的方式,使得每个分块中词的数量不同,且每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低的问题。
为实现上述目的,本发明实施例提出一种数据主题获取方法,包括步骤:
接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;
将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;
按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;
在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题;
根据得到的每个词的主题,计算生成每个子数据的主题。
为了实现上述目的,本发明实施例还进一步提出一种数据主题获取装置,包括:
接发模块,用于接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;
分组模块,用于将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;
采样模块,用于按照Gibbs采样公式对各个组别中的每个词进行采样,每次采样得到第一预设次数的采样数据;得到第一预设次数的采样数据;
迭代模块,用于依次选择每次采样得到的采样数据进行迭代计算;
主题处理模块,用于在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题;还用于根据得到的每个词的主题,计算生成每个子数据的主题。
本发明通过将待处理数据分组,且每个组别中词的数量相近,并按照Gibbs采样公式对各个组别中的每个词多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词的主题,进而生成每个子数据的主题。有效避免现有的按文档分块的方式,使得每个分块中词的数量不同,导致每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低的问题。减少了迭代计算的时长,进而提高了数据主题获取的效率。
附图说明
图1为本发明实施例数据主题获取装置所涉及的硬件架构示意图;
图2为本发明数据主题获取方法的第一实施例的流程示意图;
图3为图1中步骤S30的一实施例的细化流程示意图;
图4为图3中步骤S33的一实施例的细化流程示意图;
图5为图3中步骤S33的另一实施例的细化流程示意图
图6为本发明数据主题获取方法的第二实施例的流程示意图;
图7为本发明数据主题获取方法的第三实施例的流程示意图;
图8为本发明数据主题获取装置的第一实施例的功能模块示意图;
图9为图8中采样模块一实施例的细化功能模块示意图;
图10为图8中迭代模块一实施例的细化功能模块示意图;
图11为本发明数据主题获取装置的第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题;根据得到的每个词的主题,计算生成每个子数据的主题。通过将待处理数据分组,且每个组别中词的数量相近,并按照Gibbs采样公式对各个组别中的每个词多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词的主题,进而生成每个子数据的主题。有效避免现有的按文档分块的方式,使得每个分块中词的数量不同,且每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低的问题。减少了迭代计算的时长,进而提高了数据主题获取的效率。
由于现有的按文档分块的方式,使得每个分块中词的数量不同,且每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低。
本发明实施例架构一数据主题获取装置,该数据主题获取装置通过将待处理数据分组,且每个组别中词的数量相近,并按照Gibbs采样公式对各个组别中的每个词多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词的主题,进而生成每个子数据的主题。有效避免现有的按文档分块的方式,使得每个分块中词的数量不同,且每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低的问题。减少了迭代计算的时长,进而提高了数据主题获取的效率。
其中,本实施例数据主题获取装置可以承载于PC端,也可以承载于手机、平板电脑等可以使用主题获取等应用的电子终端。该数据主题获取装置所涉及的硬件架构可以如图1所示。
图1示出了本发明实施例数据主题获取装置所涉及的硬件架构。如图1所示,所述数据主题获取装置所涉及的硬件包括:处理器301,例如CPU,网络接口304,用户接口303,存储器305,通信总线302。其中,通信总线302用于实现该主题获取装置所涉及硬件架构中各组成部件之间的连接通信。用户接口303可以包括显示屏(Display)、键盘(Keyboard)、鼠标等组件,用于接收用户输入的信息,并将接收的信息发送至处理器305进行处理。显示屏可以为LCD显示屏、LED显示屏,也可以为触摸屏,用于显示数据主题获取装置需要显示的数据,例如显示数据主题获取、数据主题显示等操作界面。可选用户接口303还可以包括标准的有线接口、无线接口。网络接口304可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器305可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器305可选的还可以是独立于前述处理器301的存储装置。如图1所示,作为一种计算机存储介质的存储器305中可以包括操作***、网络通信模块、用户接口模块以及数据主题获取程序。
在图1所示的数据主题获取装置所涉及的硬件中,网络接口304主要用于连接应用平台,与应用平台进行数据通信;用户接口303主要用于连接客户端,与客户端进行数据通信,接收客户端输入的信息和指令;而处理器301可以用于调用存储器305中存储的数据主题获取程序,并执行以下操作:
接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;
将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;
按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;
在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题;
根据得到的每个词的主题,计算生成每个子数据的主题。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据主题获取程序可以执行以下操作:
采用MetropolisHasting算法构建概率转移矩阵,并确定所述概率转移矩阵当前的概率分布;
将所述当前的概率分布作为转移概率分布,建立别名表AliasTable,根据所述AliasTable对每个词进行多次采样,每次采样得到第一预设次数的采样数据并生成采样集合;
依次选择每次生成的采样集合中的采样数据进行迭代计算。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据主题获取程序可以执行以下操作:
判断当前待进行迭代计算的采样集合中是否存在未被选择的采样数据;
若所述采样集合中不存在未被选择的采样数据时,按照上述方式生成新的采样集合,依次选择选择新的采样集合中的采样数据进行迭代计算;
若所述采样集合中存在未被选择的采样数据时,依次选择采样集合中的未被选择的采样数据进行迭代计算。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据主题获取程序可以执行以下操作:
从采样集合中选择一个采样数据,其主题为j,概率为Qj;
若当前主题为i,根据MetropolisHasting算法,随机出一个概率值s,将所述概率s与接受概率比较;
若所述概率s大于接受概率,则主题从i转移到j,将主题j作为新的当前主题,完成一次迭代计算;
若所述概率s不大于接受概率,则主题保持为i,将主题i作为新的当前主题,完成一次迭代计算;
依次选择采样集合中的采样数据完成迭代计算。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据主题获取程序可以执行以下操作:
获取同一个子数据中相同的词;
按照相同的AliasTable完成相同词的迭代计算,并根据迭代结果分别生成各个相同词对应的主题。
进一步地,在一个实施例中,处理器301调用存储器305中存储的数据主题获取程序可以执行以下操作:
获取不同子数据中相同的词,并获取所述Gibbs采样公式中相同的因子;
根据相同的因子构建不同子数据中相同词的Gibbs采样公式,并根据构建的Gibbs采样公式完成对应词的迭代计算,根据迭代结果生成各个相同词在对应子数据中的主题。
本实施例根据上述方案,通过将待处理数据分组,且每个组别中词的数量相近,并按照Gibbs采样公式对各个组别中的每个词多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词的主题,进而生成每个子数据的主题。有效避免现有的按文档分块的方式,使得每个分块中词的数量不同,且每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低的问题。减少了迭代计算的时长,进而提高了数据主题获取的效率。
基于上述硬件架构,提出本发明数据主题获取方法实施例。
如图2所示,提出本发明一种数据主题获取方法的第一实施例,所述数据主题获取方法包括:
步骤S10,接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;
在需要获取到数据的主题时,通过LDA主题模型提供的操作界面输入待处理的数据,所述待处理数据包括至少一个子数据,即至少一个文档,每个子数据包括至少一个词,所述词为词语,例如“文章”、“概率”、“样本”等。在开启LDA主题模型后,侦测输入的数据,接收在所述操作界面输入的待处理数据。在本发明其他实施例中,也还可以是一次输入多个待处理数据,可以通过多个主题模型处理所述多个待处理数据。
步骤S20,将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;
在接收到待处理数据后,将所述待处理数据分组,生成多个分组后的组别,且分组后的每个组别中词的数量相近,相近包括词的数量相同或各个组别间词相差的数量小于预设值,所述预设值可以是2、1等。通过将所述待处理数据分组,且保证每个组别中词的数量相近,有效避免了每个组别中词的数量相差较大导致每个组别计算时长不同,而导致计算效率偏低的问题,提高了计算效率,进而使得主题获取时长更短,效率更高。
步骤S30,按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;
本实施例通过Gibbs采样方式的采样,得到每个词的主题。所述Gibbs采样方式下,每个子数据下的每个词都需要进行采样,即在预设个数(K)的主题中选择一个,为此会根据Gibbs采样公式计算出预设个数中每一个主题的概率,并通过CDF和随机数模拟出一个主题。所述第一预设次数可以是5次、4次或3次等,根据需要进行设置,且所述第一预设次数设置的越小迭代准确性越高,但效率会越低,因此,为了,因此可以根据实际需求设置一个较为合理的次数,例如,可以优选为3次。所述第二预设次数可以是300次、500次等,所述第二预设次数以m表示。所述多次根据需要设置,例如,可以是50次、100次等,且所述多次由第二预设次数除以第一预设次数的商,例如,第二预设次数为500次,第一预设次数为5,意味着需要对每个词进行100次采样。
具体的,参考图3,所述按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据;依次选择每次得到的采样数据进行迭代计算的过程可以包括:
步骤S31,采用MetropolisHasting算法构建概率转移矩阵,并确定所述概率转移矩阵当前的概率分布;
采样MetropolisHasting算法构建概率转移矩阵,以下MetropolisHasting算法简称为M-H算法公式为:
其中,Pi为平稳概率分布,即当前的主题概率分布,决定M-H算法的转移方向,qi为转移概率分布,为不变分布,可用于AliasMethod(别名方法)进行采样;为概率转移矩阵,决定了单个词迭代的效率。若pi和qi为同一概率分布,则转移矩阵效率最高,此时转移系数
步骤S32,将所述当前的概率分布作为转移概率分布,建立别名表AliasTable,根据所述AliasTable对每个词进行多次采样,每次采样得到第一预设次数的采样数据并生成采样集合;
为了兼顾AliasMethod和转移效率对qi的要求,对于文档内的每个词的迭代过程中,将当前的主题概率pi作为qi,建立AliasTable,对每个词进行多次采样,每次采样得到第一预设次数(以n表示)的采样数据,对每个词进行多次采样后,每次采样得到的数据生成采样集合。
步骤S33,依次选择每次生成的采样集合中的采样数据进行迭代计算。
在进行采样后,依次选择每次采样得到的采样数据进行迭代计算,从每次得到的采样数据中逐个选择采样数据进行迭代计算,即每个采样数据做一次迭代计算,在当次采样得到的采样数据迭代完后,再次选择其他采样数据进行迭代计算,直至每个词的迭代计算次数达到第二预设次数。
具体的,参考图4,所述依次选择每次生成的采样集合中的采样数据进行迭代计算的过程可以包括:
步骤S331,判断当前待进行迭代计算的采样集合中是否存在未被选择的采样数据;
在需要从采样集合中选择采样数据进行迭代计算时,判断所述采样集合中是否存在未被选择的采样数据。具体的,可以为已被选择的采样数据设置标识,通过采样数据是否设置标识来判断采样数据是否被选择,若携带标识,则判断采样数据已被选择,若未携带标识,则采样数据未被选择。或者,也还可以是:在采样数据被选择后,将该被选择的采样数据删除,若所述采样集合中存在采样数据,则判断所述采样集合中存在未被选择的采样数据;若所述采样集合中不存在采样数据,则判断所述采样集合中不存在未被选择的采样数据。也还可以采用其他适用的方式来判断所述采样集合中是否存在未被选择的采样数据。
步骤S332,若所述采样集合中不存在未被选择的采样数据,则按照上述方式生成新的采样集合,依次选择选择新的采样集合中的采样数据进行迭代计算;
若所述采样集合中不存在未被选择的采样数据,则按照Gibbs采样公式对各个组别中的每个词进行采样,得到第一预设次数的采样数据,根据采样数据生成新的采样集合,依次对所述新的采样集合中的采样数据迭代计算。
步骤S333,若所述采样集合中存在未被选择的采样数据,则依次选择采样集合中的未被选择的采样数据进行迭代计算。
若所述采样集合中存在未被选择的采样数据,则继续依次选择采样集合中未被选择的采样数据完成迭代计算。
具体的,参考图5,所述依次选择每次得到的采样数据进行迭代计算的过程可以包括:
步骤S334,从采样集合中选择一个采样数据,其主题为j,概率为Qj;
步骤S335,若当前主题为i,根据MetropolisHasting算法,随机出一个概率值s,将所述概率s与接受概率比较;
在概率转移矩阵中,存在接受概率和转移概率。在按照Gibbs采样公式对各个组别中的每个词采样得到第一预设次数的采样数据后,在采样集合中的采样数据未被选择完毕时,从采样集合中选择一个采样数据,其主题为j,该主题j的概率为Qj,若当前主题为i,根据M-H算法,随机出一个概率值s,将所述概率s与接受概率比较。
步骤S336,若所述概率s大于接受概率,则主题从i转移到j,将主题j作为新的当前主题,完成一次迭代计算;
步骤S337,若所述概率s不大于接受概率,则主题保持为i,将主题i作为新的当前主题,完成一次迭代计算;
步骤S338,依次选择采样集合中的采样数据完成迭代计算。
若所述概率s大于接受概率,则主题从i转移到j,将主题j作为新的当前主题,完成一次迭代计算,当前主题变为主题j,主题发生变化;若所述概率s不大于接受概率,则主题保持为i,将主题i作为新的当前主题,完成一次迭代计算,保留主题i为当前主题;按照上述方式依次选择采样集合中未被选择的采样数据完成迭代计算。
上述过程中,建立AliasTable的计算耗时为0(预设个数K),且可以复用第一预设次数次。步骤S234至步骤237中,计算耗时为0(1),第一预设次数次的迭代计算耗时为0(K),那么单词迭代的复杂度耗时为0(K/n),理论上性能提升了n倍。另,用于建立AliasTable的Qi最多是n轮前的主题概率分布,迭代平稳后qi与当前主题分布pj趋于一致,迭代效率很高。通过改进Gibbs采样过程,提高了迭代效率,进而提高主题获取的效率。
步骤S40,在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题;
在每个词的迭代计算的次数达到第二预设次数后,获取每次迭代计算生成的主题,根据所获取的主题生成每个词对应的主题。例如,选择所获取的主题中概率最大的主题作为对应词的主题,或者选择所获取的主题中出现次数最多的主题作为对应词的主题。
步骤S50,根据得到的每个词的主题,计算生成每个子数据的主题。
具体的,获取到每个子数据对应的词的主题,根据获取到的每个词主题率,选择概率最大的主题作为所述子数据的主题,按照上述方法得到其他子数据的主题。也可以是根据用户需要设置的方式,根据每个词的主题,计算生成每个字数据的主题。
本实施例通过将待处理数据分组,且每个组别中词的数量相近,并按照Gibbs采样公式对各个组别中的每个词多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词的主题,进而生成每个子数据的主题。有效避免现有的按文档分块的方式,使得每个分块中词的数量不同,且每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低的问题。减少了迭代计算的时长,进而提高了数据主题获取的效率。
进一步地,基于上述数据主题获取方法的第一实施例,提出本发明数据主题获取方法的第二实施例。如图6所示,所述步骤S50之后,还可以包括:
步骤S60,获取同一个子数据中相同的词;
获取同一个子数据中相同的词,并获取所述相同的词对应的AliasTable。
步骤S70,按照相同的AliasTable完成相同词的迭代计算,并根据迭代结果分别生成各个相同词对应的主题。
在同一个子数据中的相同的词,Gibbs采样公式相同,可以共用AliasTable完成迭代计算,并根据迭代结果分别生成各个相同词对应的主题,生成的主题可以相同也不同,根据迭代结果生成。通过将同一个子数据中的相同的词采用相同的AliasTable,其性能提升比例与子数据中的词重复率有关,重复次数越多,性能提高越大,效率越高。
进一步地,基于上述数据主题获取方法的第二实施例,提出本发明数据主题获取方法的第三实施例。如图7所示,所述步骤S50之后,还可以包括:
步骤S80,获取不同子数据中相同的词,并获取所述Gibbs采样公式中相同的因子;
步骤S90,根据相同的因子构建不同子数据中相同词的Gibbs采样公式,并根据构建的Gibbs采样公式完成对应词的迭代计算,根据迭代结果生成各个相同词在对应子数据中的主题。
不同子数据中相同的词,采用的Gibbs采样公式不同,但公式的部分因子一样,可以用这部分共同因子建立AliasTable,性能提升与子数据集合的词的重复率有关,即与一个词重复的次数有关,重复次数越多,性能提升越大,效率越高。
上述数据主题获取方法的第一至第三实施例的数据主题获取方法的执行主题均可以为终端。更进一步地,该方法可以由安装在终端上的客户端(如数据主题获取软件等)实现,其中,该终端可以包括但不限于笔记本电脑、手机、平板电脑或者PDA(PersonalDigitalAssistant,个人数字助理)等电子设备。
对应地,提出本发明数据主题获取装置的较佳实施例。参考图8,所述数据主题获取装置包括接发模块10、分组模块20、采样模块30、迭代模块40及主题获取模块50。
所述接发模块10,用于接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;
在需要获取到数据的主题时,通过LDA主题模型提供的操作界面输入待处理的数据,所述待处理数据包括至少一个子数据,即至少一个文档,每个子数据包括至少一个词,所述词为词语,例如“文章”、“概率”、“样本”等。在开启LDA主题模型后,侦测输入的数据,接收在所述操作界面输入的待处理数据。在本发明其他实施例中,也还可以是一次输入多个待处理数据,可以通过多个主题模型处理所述多个待处理数据。
所述分组模块20,用于将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;
在接收到待处理数据后,将所述待处理数据分组,生成多个分组后的组别,且分组后的每个组别中词的数量相近,相近包括词的数量相同或各个组别间词相差的数量小于预设值,所述预设值可以是2、1等。通过将所述待处理数据分组,且保证每个组别中词的数量相近,有效避免了每个组别中词的数量相差较大导致每个组别计算时长不同,而导致计算效率偏低的问题,提高了计算效率,进而使得主题获取时长更短,效率更高。
所述采样模块30,用于按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据;
本实施例通过Gibbs采样方式的采样,得到每个词的主题。所述Gibbs采样方式下,每个子数据下的每个词都需要进行采样,即在预设个数(K)的主题中选择一个,为此会根据Gibbs采样公式计算出预设个数中每一个主题的概率,并通过CDF和随机数模拟出一个主题。所述第一预设次数可以是5次、4次或3次等,根据需要进行设置,且所述第一预设次数设置的越小迭代准确性越高,但效率会越低,因此,为了,因此可以根据实际需求设置一个较为合理的次数,例如,可以优选为3次。所述第二预设次数可以是300次、500次等,所述第二预设次数以m表示。所述多次根据需要设置,例如,可以是50次、100次等,且所述多次由第二预设次数除以第一预设次数的商,例如,第二预设次数为500次,第一预设次数为5,意味着需要对每个词进行100次采样。
具体的,参考图9,所述采样模块30包括构建单元31、确定单元32和采样单元33,
所述构建单元31,用于采用MetropolisHasting算法构建概率转移矩阵;
所述确定单元32,用于确定所述概率转移矩阵当前的概率分布;
采样MetropolisHasting算法构建概率转移矩阵,以下MetropolisHasting算法简称为M-H算法公式为:
其中,Pi为平稳概率分布,即当前的主题概率分布,决定M-H算法的转移方向,qi为转移概率分布,为不变分布,可用于AliasMethod(别名方法)进行采样;为概率转移矩阵,决定了单个词迭代的效率。若pi和qi为同一概率分布,则转移矩阵效率最高,此时转移系数
所述构建单元31,还用于将所述当前的概率分布作为转移概率分布,建立别名表AliasTable;
所述采样单元33,用于根据所述AliasTable对每个词进行多次采样,每次采样得到第一预设次数的采样数据并生成采样集合;
为了兼顾AliasMethod和转移效率对qi的要求,对于文档内的每个词的迭代过程中,将当前的主题概率pi作为qi,建立AliasTable,对每个词进行多次采样,每次采样得到第一预设次数(以n表示)的采样数据,对每个词进行多次采样后,每次采样得到的数据生成采样集合。
所述迭代模块40,用于依次选择每次生成的采样集合中的采样数据进行迭代计算。
在进行采样后,依次选择每次采样得到的采样数据进行迭代计算,从每次得到的采样数据中逐个选择采样数据进行迭代计算,即每个采样数据做一次迭代计算,在当次采样得到的采样数据迭代完后,再次选择其他采样数据进行迭代计算,直至每个词的迭代计算次数达到第二预设次数。
具体的,参考图10,所述迭代模块40包括判断单元41和迭代单元42,
所述判断单元41,用于判断当前待进行迭代计算的采样集合中是否存在未被选择的采样数据;
在需要从采样集合中选择采样数据进行迭代计算时,判断所述采样集合中是否存在未被选择的采样数据。具体的,可以为已被选择的采样数据设置标识,通过采样数据是否设置标识来判断采样数据是否被选择,若携带标识,则判断采样数据已被选择,若未携带标识,则采样数据未被选择。或者,也还可以是:在采样数据被选择后,将该被选择的采样数据删除,若所述采样集合中存在采样数据,则判断所述采样集合中存在未被选择的采样数据;若所述采样集合中不存在采样数据,则判断所述采样集合中不存在未被选择的采样数据。也还可以采用其他适用的方式来判断所述采样集合中是否存在未被选择的采样数据。
所述迭代单元42,用于若所述采样集合中不存在未被选择的采样数据,则按照上述方式生成新的采样集合,依次选择选择新的采样集合中的采样数据进行迭代计算;
若所述采样集合中不存在未被选择的采样数据,则按照Gibbs采样公式对各个组别中的每个词进行采样,得到第一预设次数的采样数据,根据采样数据生成新的采样集合,依次对所述新的采样集合中的采样数据迭代计算。
所述迭代单元42,还用于若所述采样集合中存在未被选择的采样数据,则依次选择采样集合中的未被选择的采样数据进行迭代计算。
若所述采样集合中存在未被选择的采样数据,则继续依次选择采样集合中未被选择的采样数据完成迭代计算。
进一步地,所述迭代单元42,还用于从采样集合中选择一个采样数据,其主题为j,概率为Qj;
所述主题处理模块50,用于若当前主题为i,根据MetropolisHasting算法,随机出一个概率值s,将所述概率s与接受概率比较;
在概率转移矩阵中,存在接受概率和转移概率。在按照Gibbs采样公式对各个组别中的每个词采样得到第一预设次数的采样数据后,在采样集合中的采样数据未被选择完毕时,从采样集合中选择一个采样数据,其主题为j,该主题j的概率为Qj,若当前主题为i,根据M-H算法,随机出一个概率值s,将所述概率s与接受概率比较。
所述主题处理模块50,还用于若所述概率s大于接受概率,则主题从i转移到j,将主题j作为新的当前主题,完成一次迭代计算;还用于若所述概率s不大于接受概率,则主题保持为i,将主题i作为新的当前主题,完成一次迭代计算;
所述迭代单元42,还用于依次选择采样集合中的采样数据完成迭代计算。
若所述概率s大于接受概率,则主题从i转移到j,将主题j作为新的当前主题,完成一次迭代计算,当前主题变为主题j,主题发生变化;若所述概率s不大于接受概率,则主题保持为i,将主题i作为新的当前主题,完成一次迭代计算,保留主题i为当前主题;按照上述方式依次选择采样集合中未被选择的采样数据完成迭代计算。
上述过程中,建立AliasTable的计算耗时为0(预设个数K),且可以复用第一预设次数次。步骤S234至步骤237中,计算耗时为0(1),第一预设次数次的迭代计算耗时为0(K),那么单词迭代的复杂度耗时为0(K/n),理论上性能提升了n倍。另,用于建立AliasTable的Qi最多是n轮前的主题概率分布,迭代平稳后qi与当前主题分布pj趋于一致,迭代效率很高。通过改进Gibbs采样过程,提高了迭代效率,进而提高主题获取的效率。
所述主题处理模块50,用于在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题。
在每个词的迭代计算的次数达到第二预设次数后,获取每次迭代计算生成的主题,根据所获取的主题生成每个词对应的主题。例如,选择所获取的主题中概率最大的主题作为对应词的主题,或者选择所获取的主题中出现次数最多的主题作为对应词的主题。
所述主题处理模块50,还用于根据得到的每个词的主题,计算生成每个子数据的主题。
具体的,获取到每个子数据对应的词的主题,根据获取到的每个词主题率,选择概率最大的主题作为所述子数据的主题,按照上述方法得到其他子数据的主题。也可以是根据用户需要设置的方式,根据每个词的主题,计算生成每个字数据的主题。
本实施例通过将待处理数据分组,且每个组别中词的数量相近,并按照Gibbs采样公式对各个组别中的每个词多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词的主题,进而生成每个子数据的主题。有效避免现有的按文档分块的方式,使得每个分块中词的数量不同,且每个分块迭代计算时长不同,导致了“木桶效应”,使得迭代计算时长偏长,进而导致数据主题获取的效率偏低的问题。减少了迭代计算的时长,进而提高了数据主题获取的效率。
进一步地,基于上述数据主题获取装置的第一实施例,提出本发明数据主题获取装置的第二实施例。如图11所示,所述数据主题获取装置还包括:
获取模块60,用于获取同一个子数据中相同的词;
获取同一个子数据中相同的词,并获取所述相同的词对应的AliasTable。
所述迭代单元42,还用于按照相同的AliasTable完成相同词的迭代计算;
所述主题处理模块50,还用于并根据迭代结果分别生成各个相同词对应的主题。
在同一个子数据中的相同的词,Gibbs采样公式相同,可以共用AliasTable完成迭代计算,并根据迭代结果分别生成各个相同词对应的主题,生成的主题可以相同也不同,根据迭代结果生成。通过将同一个子数据中的相同的词采用相同的AliasTable,其性能提升比例与子数据中的词重复率有关,重复次数越多,性能提高越大,效率越高。
进一步地,所述获取模块60,还用于获取不同子数据中相同的词,并获取所述Gibbs采样公式中相同的因子;
所述构建单元31,还用于根据相同的因子构建不同子数据中相同词的Gibbs采样公式;
所述迭代单元42,还用于根据构建的Gibbs采样公式完成对应词的迭代计算;
所述主题处理模块50,还用于根据迭代结果生成各个相同词在对应子数据中的主题。
不同子数据中相同的词,采用的Gibbs采样公式不同,但公式的部分因子一样,可以用这部分共同因子建立AliasTable,性能提升与子数据集合的词的重复率有关,即与一个词重复的次数有关,重复次数越多,性能提升越大,效率越高。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
Claims (12)
1.一种数据主题获取方法,其特征在于,包括步骤:
接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;
将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;
按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据,依次选择每次采样得到的采样数据进行迭代计算;
在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题;
根据得到的每个词的主题,计算生成每个子数据的主题。
2.如权利要求1所述的数据主题获取方法,其特征在于,所述按照吉布斯Gibbs采样公式对各个组别中的每个词进行多次采样,每次采样得到第一预设次数的采样数据;依次选择每次得到的采样数据进行迭代计算的步骤包括:
采用MetropolisHasting算法构建概率转移矩阵,并确定所述概率转移矩阵当前的概率分布;
将所述当前的概率分布作为转移概率分布,建立别名表AliasTable,根据所述AliasTable对每个词进行多次采样,每次采样得到第一预设次数的采样数据并生成采样集合;
依次选择每次生成的采样集合中的采样数据进行迭代计算。
3.如权利要求2所述的数据主题获取方法,其特征在于,所述依次选择每次生成的采样集合中的采样数据进行迭代计算的步骤包括:
判断当前待进行迭代计算的采样集合中是否存在未被选择的采样数据;
若所述采样集合中不存在未被选择的采样数据时,按照上述方式生成新的采样集合,依次选择选择新的采样集合中的采样数据进行迭代计算;
若所述采样集合中存在未被选择的采样数据时,依次选择采样集合中的未被选择的采样数据进行迭代计算。
4.如权利要求2所述的数据主题获取方法,其特征在于,所述依次选择每次得到的采样数据进行迭代计算的步骤包括:
从采样集合中选择一个采样数据,其主题为j,概率为Qj;
若当前主题为i,根据MetropolisHasting算法,随机出一个概率值s,将所述概率s与接受概率比较;
若所述概率s大于接受概率,则主题从i转移到j,将主题j作为新的当前主题,完成一次迭代计算;
若所述概率s不大于接受概率,则主题保持为i,将主题i作为新的当前主题,完成一次迭代计算;
依次选择采样集合中的采样数据完成迭代计算。
5.如权利要求2所述的数据主题获取方法,其特征在于,所述根据得到的每个词的主题,计算生成每个子数据的主题的步骤之后,还包括:
获取同一个子数据中相同的词;
按照相同的AliasTable完成相同词的迭代计算,并根据迭代结果分别生成各个相同词对应的主题。
6.如权利要求2至5任一项所述的数据主题获取方法,其特征在于,所述根据得到的每个词的主题,计算生成每个子数据的主题的步骤之后,还包括:
获取不同子数据中相同的词,并获取所述Gibbs采样公式中相同的因子;
根据相同的因子构建不同子数据中相同词的Gibbs采样公式,并根据构建的Gibbs采样公式完成对应词的迭代计算,根据迭代结果生成各个相同词在对应子数据中的主题。
7.一种数据主题获取装置,其特征在于,包括:
接发模块,用于接收输入的待处理数据,所述待处理数据包括多个子数据,每个子数据包括多个词;
分组模块,用于将所述待处理数据分组生成多个组别,分组后的各个组别中词的数量相近;
采样模块,用于按照Gibbs采样公式对各个组别中的每个词进行采样,每次采样得到第一预设次数的采样数据;得到第一预设次数的采样数据;
迭代模块,用于依次选择每次采样得到的采样数据进行迭代计算;
主题处理模块,用于在对每个词的迭代计算的次数达到第二预设次数后,根据迭代结果生成每个词对应的主题;还用于根据得到的每个词的主题,计算生成每个子数据的主题。
8.如权利要求7所述的数据主题获取装置,其特征在于,所述采样模块包括构建单元、确定单元和采样单元,
所述构建单元,用于采用MetropolisHasting算法构建概率转移矩阵;所述确定单元,用于确定所述概率转移矩阵当前的概率分布;
所述构建单元,还用于将所述当前的概率分布作为转移概率分布,建立别名表AliasTable;
所述采样单元,用于根据所述AliasTable对每个词进行多次采样,每次采样得到第一预设次数的采样数据并生成采样集合;
所述迭代模块,还用于依次选择每次生成的采样集合中的采样数据进行迭代计算。
9.如权利要求8所述的数据主题获取装置,其特征在于,所述迭代模块包括判断单元和迭代单元,
所述判断单元,用于判断当前待进行迭代计算的采样集合中是否存在未被选择的采样数据;
所述迭代单元,用于若所述采样集合中不存在未被选择的采样数据时,按照上述方式生成新的采样集合,依次选择新的采样集合中的采样数据进行迭代计算;
所述迭代单元,还用于若所述采样集合中存在未被选择的采样数据时,依次选择采样集合中的未被选择的采样数据进行迭代计算。
10.如权利要求9所述的数据主题获取装置,其特征在于,所述迭代单元,还用于从采样集合中选择一个采样数据,其主题为j,概率为Qj;还用于若当前主题为i,根据MetropolisHasting算法,随机出一个概率值s,将所述概率s与接受概率比较;
所述主题处理模块,还用于若所述概率s大于接受概率,则主题从i转移到j,将主题j作为新的当前主题,完成一次迭代计算;还用于若所述概率s不大于接受概率,则主题保持为i,将主题i作为新的当前主题,完成一次迭代计算;
所述迭代单元,还用于依次选择采样集合中的采样数据完成迭代计算。
11.如权利要求9或10所述的数据主题获取装置,其特征在于,还包括:
获取模块,用于获取同一个子数据中相同的词;
所述迭代单元,还用于按照相同的AliasTable完成相同词的迭代计算;
所述主题处理模块,还用于根据迭代结果分别生成各个相同词对应的主题。
12.如权利要求11所述的数据主题获取装置,其特征在于,还包括:所述获取模块,还用于获取不同子数据中相同的词,并获取所述Gibbs采样公式中相同的因子;
所述构建单元,还用于根据相同的因子构建不同子数据中相同词的Gibbs采样公式;
所述迭代单元,还用于根据构建的Gibbs采样公式完成对应词的迭代计算;
所述主题处理模块,还用于根据迭代结果生成各个相同词在对应子数据中的主题。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410812266.6A CN105786791B (zh) | 2014-12-23 | 2014-12-23 | 数据主题获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410812266.6A CN105786791B (zh) | 2014-12-23 | 2014-12-23 | 数据主题获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105786791A true CN105786791A (zh) | 2016-07-20 |
CN105786791B CN105786791B (zh) | 2019-07-05 |
Family
ID=56378012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410812266.6A Active CN105786791B (zh) | 2014-12-23 | 2014-12-23 | 数据主题获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786791B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090042A (zh) * | 2016-11-23 | 2018-05-29 | 北京京东尚科信息技术有限公司 | 用于识别文本主题的方法和装置 |
CN105786791B (zh) * | 2014-12-23 | 2019-07-05 | 深圳市腾讯计算机***有限公司 | 数据主题获取方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102687166A (zh) * | 2009-12-31 | 2012-09-19 | 诺基亚公司 | 用于用户兴趣建模的方法和设备 |
US20130159254A1 (en) * | 2011-12-14 | 2013-06-20 | Yahoo! Inc. | System and methods for providing content via the internet |
WO2013138859A1 (en) * | 2012-03-23 | 2013-09-26 | Bae Systems Australia Limited | System and method for identifying and visualising topics and themes in collections of documents |
CN103365974A (zh) * | 2013-06-28 | 2013-10-23 | 百度在线网络技术(北京)有限公司 | 一种基于相关词主题的语义消歧方法和*** |
CN103942340A (zh) * | 2014-05-09 | 2014-07-23 | 电子科技大学 | 一种基于文本挖掘的微博用户兴趣识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786791B (zh) * | 2014-12-23 | 2019-07-05 | 深圳市腾讯计算机***有限公司 | 数据主题获取方法及装置 |
-
2014
- 2014-12-23 CN CN201410812266.6A patent/CN105786791B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102687166A (zh) * | 2009-12-31 | 2012-09-19 | 诺基亚公司 | 用于用户兴趣建模的方法和设备 |
US20130159254A1 (en) * | 2011-12-14 | 2013-06-20 | Yahoo! Inc. | System and methods for providing content via the internet |
WO2013138859A1 (en) * | 2012-03-23 | 2013-09-26 | Bae Systems Australia Limited | System and method for identifying and visualising topics and themes in collections of documents |
CN103365974A (zh) * | 2013-06-28 | 2013-10-23 | 百度在线网络技术(北京)有限公司 | 一种基于相关词主题的语义消歧方法和*** |
CN103942340A (zh) * | 2014-05-09 | 2014-07-23 | 电子科技大学 | 一种基于文本挖掘的微博用户兴趣识别方法 |
Non-Patent Citations (2)
Title |
---|
AARON LI 等: "Reducing the Sampling Complexity of Topic Models", 《20TH ACM SIGKDD CONFERENCE ON KNOWLEDGE DISCOV ERY AND DATA MINING (KDD)》 * |
雷菊阳: "复杂环境下动态***结构学习", 《中国博士学位论文全文数据库 工程科技Ⅱ辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786791B (zh) * | 2014-12-23 | 2019-07-05 | 深圳市腾讯计算机***有限公司 | 数据主题获取方法及装置 |
CN108090042A (zh) * | 2016-11-23 | 2018-05-29 | 北京京东尚科信息技术有限公司 | 用于识别文本主题的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105786791B (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460514B (zh) | 用于推送信息的方法和装置 | |
CN106936441B (zh) | 一种数据压缩方法和装置 | |
JP6734946B2 (ja) | 情報を生成するための方法及び装置 | |
CN109871311B (zh) | 一种推荐测试用例的方法和装置 | |
US20170109371A1 (en) | Method and Apparatus for Processing File in a Distributed System | |
CN104598902A (zh) | 一种用于识别截图的方法、装置和浏览器 | |
CN107864405B (zh) | 一种收视行为类型的预测方法、装置及计算机可读介质 | |
CN110807002B (zh) | 一种基于工作流的报表生成方法、***及设备和存储介质 | |
CN107861981A (zh) | 一种数据处理方法及装置 | |
CN107392259B (zh) | 构建不均衡样本分类模型的方法和装置 | |
EP3352121A1 (en) | Content delivery method and device | |
CN106294564A (zh) | 一种视频推荐方法及装置 | |
CN104750663B (zh) | 页面中文本乱码的识别方法及装置 | |
CN109543154B (zh) | 表格数据的类型转换方法、装置、存储介质及电子设备 | |
CN108512817B (zh) | 多视频转码调度方法及装置 | |
CN103678706A (zh) | 一种基于截图信息的识图方法、***、设备及装置 | |
CN111680799A (zh) | 用于处理模型参数的方法和装置 | |
CN105786791A (zh) | 数据主题获取方法及装置 | |
CN104580109A (zh) | 生成点选验证码的方法及装置 | |
CN113761565B (zh) | 数据脱敏方法和装置 | |
CN115700548A (zh) | 用户行为预测的方法、设备和计算机程序产品 | |
US10775966B2 (en) | Customizable autocomplete option | |
CN107508705B (zh) | 一种http元素的资源树构建方法及计算设备 | |
CN108009150B (zh) | 一种基于循环神经网络的输入方法及装置 | |
CN111737572B (zh) | 搜索语句生成方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |