语义分析方法及系统的制作方法

文档序号:6506376阅读:181来源:国知局
语义分析方法及系统的制作方法
【专利摘要】本发明公开了一种语义分析方法,属于计算机领域。所述方法包括:获取训练语料;按照文档维度和词维度将所述训练语料切分成a*M*M个数据块;对切分出的所述a*M*M个数据块进行迭代采样,输出最终收敛的采样模型;根据所述最终收敛的采样模型进行语义分析。本发明通过将获取到的训练语料切分成a*M*M个数据块,对切分出的数据块进行迭代采样,输出最终收敛的采样模型,根据输出的最终收敛的采样模型进行分析。由于切分获得的数据块可以分别单独进行采样,从而可以降低单进程的内存需求,解决了现有技术中当要训练的隐含语义较多时对单进程的内存要求较高的问题,达到提高训练效率的目的。
【专利说明】语义分析方法及系统

【技术领域】
[0001] 本发明涉及计算机领域,特别涉及一种语义分析方法及系统。

【背景技术】
[0002] 在目前的网络活动中,用户常常会通过关键字词来搜索自己感兴趣的信息,比如, 用户在搜索引擎中输入关键字词,搜索引擎通过关键字匹配算法来检索诸如图片、视频和 链接之类的信息。然而,从自然语言的角度来说,大部分词具有一词多义的特点,一个词除 了表达本意之外,还可能具有其它的隐含语义,仅通过关键字匹配的搜索方法无法为用户 提供更精确的服务。
[0003] 为了提高匹配结果的相关性,近年来兴起一种基于隐含语义的索引方式,其检索 结果的实际效果更接近于人的自然语言。而要实现基于隐含语义的索引,首先需要进行隐 含语义分析,以大样本数量的统计分析找出不同的词之间的相关性。
[0004] 现有的语义分析方法主要包括如下步骤:1)获取训练语料,该训练语料中包括多 个训练文档,每个训练文档中包括至少两个词;2)对训练语料进行迭代采样,输出最终收敛 的采样模型;3)对输出的采样模型进行分析。具体请参见图1,其示出了本发明现有技术提 供的语义分析系统的架构图,该语义分析系统包括多个训练进程和多个模型进程。其中,训 练进程用于加载训练文档,从模型进程获取上一轮采样获得的采样模型,并根据获取到的 采样模型对加载的训练文档进行采样,最后向模型进程输出本轮采样获得的采样模型。训 练进程和模型进程之间通过交换词的主题分布向量来进行通信。
[0005] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0006] 现有的语义分析方法中,当要分析的隐含语义很多时,对单进程的内存要求较高, 训练效率低。


【发明内容】

[0007] 为了解决现有技术中当要分析的隐含语义较多时对单进程的内存要求较高,训练 效率低的问题,本发明实施例提供了一种语义分析方法及系统。所述技术方案如下:
[0008] -方面,提供了一种语义分析方法,所述方法包括:
[0009] 获取训练语料,所述训练语料中包括N个训练文档,每个所述训练文档中包括至 少两个词;
[0010] 按照文档维度和词维度将所述训练语料切分成a*M*M个数据块,其中,a为大于等 于1的整数,且a*M小于所述训练文档的个数N,N彡2 ;
[0011] 对切分出的所述a*M*M个数据块进行迭代采样,输出最终收敛的采样模型;
[0012] 根据所述最终收敛的采样模型进行语义分析。
[0013] 另一方面,提供了一种语义分析系统,所述系统包括:
[0014] 训练语料获取模块,用于获取训练语料,所述训练语料中包括N个训练文档,每个 所述训练文档中包括至少两个词;
[0015] 切分模块,用于按照文档维度和词维度将所述训练语料获取模块获取到的训练语 料切分成a*M*M个数据块,其中,a为大于等于1的整数,且a*M小于所述训练文档的个数 N, N ^ 2 ;
[0016] 迭代采样模块,用于对所述切分模块切分出的所述a*M*M个数据块进行迭代采 样,输出最终收敛的采样模型;
[0017] 语义分析模块,用于根据所述迭代采样模块输出的、最终收敛的采样模型进行语 义分析。
[0018] 本发明实施例提供的技术方案带来的有益效果是:
[0019] 通过将获取到的训练语料切分成a*M*M个数据块,对切分出的该a*M*M个数据块 进行迭代采样,输出最终收敛的采样模型,根据输出的最终收敛的采样模型进行分析。由于 切分获得的a*M*M数据块可以分别单独进行采样,从而可以降低单进程的内存需求,解决 了现有技术中当要训练的隐含语义较多时对单进程的内存要求较高的问题,达到提高训练 效率的目的。

【专利附图】

【附图说明】
[0020] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0021] 图1是本发明现有技术提供的语义分析系统的架构图;
[0022] 图2是本发明实施例一提供的语义分析方法的方法流程图;
[0023] 图3是本发明实施例二提供的语义分析方法的方法流程图;
[0024] 图4是本发明实施例二提供的语义分析系统进程框架图;
[0025] 图5是本发明实施例三提供的语义分析系统的系统构成图;
[0026] 图6是本发明实施例四提供的语义分析系统的系统构成图。

【具体实施方式】
[0027] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0028] 实施例一
[0029] 请参见图2,其示出了本发明实施例一提供的语义分析方法的方法流程图。该语义 分析方法可以用于对隐含语义进行训练分析。该语义分析方法可以包括:
[0030] 步骤102,获取训练语料,该训练语料中包括N个训练文档,每个训练文档中包括 至少两个词;
[0031] 步骤104,按照文档维度和词维度将该训练语料切分成a*M*M个数据块,其中,a为 大于等于1的整数,且a*M小于训练文档的个数N,N彡2 ;
[0032] 步骤106,对切分出的a*M*M个数据块进行迭代采样,输出最终收敛的采样模型;
[0033] 步骤108,根据最终收敛的采样模型进行语义分析。
[0034] 综上所述,本发明实施例一提供的语义分析方法,通过将获取到的训练语料切分 成a*M*M个数据块,对切分出的该a*M*M个数据块进行迭代采样,输出最终收敛的采样模 型,根据输出的最终收敛的采样模型进行分析。由于切分获得的a*M*M数据块可以分别单 独进行采样,从而可以降低单进程的内存需求,解决了现有技术中当要训练的隐含语义较 多时对单进程的内存要求较高的问题,达到提高训练效率的目的。
[0035] 实施例二
[0036] 请参见图3,其示出了本发明实施例二提供的语义分析方法的方法流程图。该语义 分析方法可以用于对隐含语义,尤其是大规模的隐含语义进行训练分析。该语义分析方法 可以包括:
[0037] 步骤202,语义分析系统获取训练语料;
[0038] 其中,该训练语料中包括N个训练文档,每个训练文档中包括至少两个词。
[0039] 该训练语料可以通过对原始语料进行一系列处理获得,该原始语料可以是用户在 搜索引擎中输入的用户查询串、搜索引擎的会话日志甚至是网络新闻的标题等。以搜索引 擎的用户查询串作为训练语料为例,语义分析系统对搜索引擎记录的用户查询串进行过 滤,过滤掉频率较低的查询串,并将过滤后的每一个查询串作为一个原始文档。训练系统对 原始文档中进行语法分析,包括对原始文档进行切词和词性标注,并对原始文档中的所有 词进行频率统计,获得初始词表。训练系统对初始词表进行过滤,去除停用词、出现频率过 高或者过低的词、没有明显语义的词(比如叹声词、拟声词、语气词或者标点符号等)以及过 长的非汉字串(比如网络地址或者英文长句)。训练系统根据过滤后的词表对原始文档进行 过滤,将过滤后留下的、包含有过滤后的词表中剩余词的文档作为训练语料。
[0040] 步骤204,语义分析系统按照文档维度和词维度将该训练语料切分成a*M*M个数 据块;
[0041] 其中,a为大于等于1的整数,且a*M小于训练文档的个数N,且N彡2。
[0042] 具体的,语义分析系统首先按照文档维度对训练语料进行切分,再按照词维度进 行切分,即首先将训练语料中的所有文档平均分成a*M份,切分成a*M个文档组,在将每一 个文档组中的词分别切分至M个数据块,最终获得a*M*M个数据块,以便后续对该a*M*M个 数据块进行分布式采样,具体的,语义分析系统可以分a次进行采样,每次采样M*M个数据 块。
[0043] 其中,在将每一个文档组中的词切分至M个数据块时,最直观的方法是将一个文 档组中的词随机分布到与该文档组相对应的M个数据块中。
[0044] 由于分布式采样时,各进程之间的负载均衡对训练系统的性能影响很大,而训练 语料中的词不可避免的存在明显的长尾分布,高频词和低频词出现次数差异巨大,因此,仅 将词均匀的随机分布至M个数据块中并不能保证后续采样时的负载均衡。而若要保证采样 时的负载均衡,需要满足两点条件:
[0045] 1)每个数据块内的词的数量接近,以保证后续采样时每个进程占据的内存均衡;
[0046] 2)每个数据块内的词在训练语料中出现的频次之和接近,以保证每个进程所消耗 的时间均衡。
[0047] 因此,更为优选的,在语义分析系统将每一个文档组中的词切分至M个数据块时, 可以首先统计训练语料中每一个词的出现频次;再将每一个文档组中的词按照出现频次从 高到低的顺序进行排序;最后分别将每一个文档组中的词按照排序结果依次切分至该文档 组对应的M个数据块中预定频次最小的数据块中,其中,该预定频次是当前数据块中已划 分有的各个词各自的出现频次之和。
[0048] 步骤206,语义分析系统对切分出的a*M*M个数据块进行迭代采样,输出最终收敛 的采样模型;
[0049] 在本发明实施例中,语义分析系统可以将采样过程拆分由不同的三种进程完成, 即采样进程、数据进程和控制进程。针对数据块的切分,语义分析系统设置有M个采样进 程、M个数据进程和一个控制进程。
[0050] 其中,语义分析系统可以将该a*M*M个数据块切分成a个M*M数据块阵列,每个 M*M数据块阵列中包含有M行XM列的数据块;语义分析系统在每一次迭代采样时进行a次 分组采样,每次分组采样时对该a个M*M数据块阵列中的一个进行采样。
[0051] 具体的,在第1次迭代采样中,语义分析系统每次分组采样时,通过M个数据进程 加载对应的一个M*M数据块阵列;其中,每个数据进程加载该对应的M*M数据块阵列中的一 个数据块行。语义分析系统每次分组采样时,通过M个采样进程对该加载的M*M数据块阵 列中的数据块按列进行采样;其中,每个采样进程采样该加载的M*M数据块阵列中的一个 数据块列。语义分析系统在进行a次分组采样后,通过控制进程输出M个采样进程的第1 次采样结果;该第1次采样结果中包含有第1次采样模型和第1次更新后的a个M*M数据 块阵列。
[0052] 在第η次迭代采样中,语义分析系统每次分组采样时,通过该M个数据进程加载对 应的、第η-1次更新后的一个Μ*Μ数据块阵列;其中,每个数据进程加载该第η-1次更新后 的Μ*Μ数据块阵列中的一个数据块行,η > 2。语义分析系统每次分组采样时,通过该M个 采样进程对该加载的、第η-1次更新后的Μ*Μ数据块阵列中的数据块按列进行采样;其中, 每个采样进程采样该加载的、第η-1次更新后的Μ*Μ数据块阵列中的一个数据块列。语义 分析系统a次分组采样后,通过控制进程输出该M个采样进程的第η次采样结果;该第η次 采样结果中包含有第η次采样模型和第η次更新后的a个Μ*Μ数据块阵列。
[0053] 此外,语义分析系统除了通过控制进程调度数据进程和采样进程对整个训练语料 进行多轮的采样之外,还可以进行其他的任务,比如迷惑度计算、超参数优化、检查点落地、 根据检查点进行错误恢复等。
[0054] 语义分析系统持续上述迭代采样步骤,直至控制进程输出的采样模型完成收敛。
[0055] 更为具体的,在每一次分组采样时,语义分析系统可以通过该M个采样进程对各 自对应的数据块列中的数据块进行M轮并行采样,每轮并行采样中该M个采样进程各自采 集对应的Μ*Μ数据块阵列中不同行且不同列的一个数据块。具体可以表述为:
[0056] 语义分析系统在第i轮并行采样中,通过第j个采样进程采样M个数据进程 当前加载的M*M数据块阵列中,坐标为+ ^ + + .)的数据块;其中, I < i <M,1 < j <M。其中,该坐标表示该数据块在该M*M数据块阵列中的行号和列号。 [0057] 具体的,请参见图4,其示出了本发明实施例提供的语义分析系统进程框架图。其 中,假设M=3,即语义分析系统中包含有3个数据进程,3个采样进程以及一个控制进程。同 时,语义分析系统将训练资料中的文档切分成a*3个文档组,每个文档组切分成3个数据 块,共a*3*3个数据块。语义分析系统将该a*3*3个数据块切分为a个数据块阵列,每个数 据块阵列包括3行X3列数据块。其中,数据块阵列中每一行的三个数据块属于同一文档 组。
[0058] 在一次迭代采样时的一次分组采样过程中,3个数据进程分别各自加载当前对应 的数据块阵列的一行中的3个数据块,3个采样进程分别采样该数据块阵列的一列中的3个 数据块。每一次分组采样包括3轮并行采样,由于一个数据进程同一时间只能支持一个采 样进程,因此,在一轮并行采样过程中,三个采样进程分别对处于该数据块阵列中的同一对 角线上的一个数据块进行采样,比如,在第1轮并行采样时,采样进程1对数据进程1加载 的第1个数据块进行采样,采样进程2对数据进程2加载的第2个数据块进行采样,采样进 程3对数据进程3加载的第3个数据块进行采样。
[0059] 另外,在各个采样进程对不同的数据块进行分布采样的过程中,还需要对各个采 样过程进行同步,具体的,在每一次分组采样时,在该M个采样进程对各自对应的数据块列 中的数据块进行一轮并行采样后,语义分析系统可以对该M个采样进程进行采样时间上的 同步;即在一轮采样过程中,只有在M个采样进程全部完成采样之后,才开始下一轮采样。
[0060] 在上述采样过程中,每M个数据块会同时进行采样,之后伴随着一次同步操作,而 频繁的同步操作会加剧负载均衡问题。有鉴于此,本发明实施例提供的方法,还可以加大采 样同步粒度,以减小负载均衡问题。具体的,语义分析系统可以在每一次分组采样时,在M 个采样进程对各自对应的数据块列中的数据块进行M轮并行采样后,对该M个采样进程进 行采样时间上的同步。通过这种方法,可以将每一次分组采样过程中对采样进程的同步次 数由M次减少为1次,进而达到提高系统性能的目的。
[0061] 此外,上述加大采样同步粒度之后,语义分析系统还可以支持进程级别的错误恢 复。具体的,语义分析系统在每一次分组采样之后对各采样进程进行检查。在加大采样同步 粒度之前,由于每一轮采样之后都进行一次同步,在某一轮采样过程中若发生错误,语义分 析系统需要重启本次分组采样过程,当语义分析系统训练分析的隐含语义规模较大,比如 达到百万级别时,每一次分组采样进程花费的时间会非常长,若其中某一采样进程发生,则 重启本次分组采样过程将浪费大量时间,对系统性能影响非常大。而在加大采样同步粒度 之后,由于在M个采样进程完成M轮采样之后才会进行错误检查,语义分析系统只需要在一 次分组采样之后对发生错误的进程进行重新采样即可,从而使语义分析系统能够支持进程 级别的错误恢复,无需重启本次分组采样过程中的全部M轮采样步骤,能够节省大量时间, 大大提1?系统性能。
[0062] 此外,上述第1次迭代采样的过程可以称为初始化过程。在第1次迭代采样过程 中,一个采样进程在进行一轮采样时,对应的数据进程加载一个数据块,采样进程为该数据 进程加载的数据块中的各个词w分配主题号t,并统计文档主题直方图\ d、语义模型& t和 主题号t出现的次数Nt,控制进程对所有采样进程统计获得的Nt进行求和,并将求和结果 返回给该采样进程。采样进程还将对应数据块更新为带有主题号t以及对应的\ d的数据 块。
[0063] 在第η次迭代采样的过程中,一个采样进程在进行一轮采样时,对应的数据进程 加载上一次采样过程中,该采样进程更新后的、带有主题号t以及对应的\ d的数据块,采 样进程根据上一次采样过程中对该数据块统计的主题直方图\d以及控制进程求和获得 的Nt对新加载的、更新后的数据块中的词w重新分配主题号t,并重新统计文档主题直方图 \d、语义模型Nw,t和主题号t出现的次数Nt,控制进程对所有采样进程统计获得的N t重新 进行求和,并将求和结果返回给该采样进程。采样进程第η次将对应数据块更新为带有主 题号t以及对应的\ d的数据块。
[0064] 采样进程、数据进程和控制进程迭代执行上述步骤,直至采样进程统计获得的语 义模型Nw,t最终收敛。
[0065] 需要说明的是,上述采样进程和数据进程之间输出和读取的内容包括文档主题直 方图Nt,d、语义模型Nw,t和主题号t出现的次数N t以及带有主题号t以及对应的Nt,d的数据 块,而这些内容可以通过训练文档包进行传输,由于每个训练文档中的词的数量有限,采样 进程和数据进程之间的通信数据量可以较小。而现有技术中各进程之间通过传输词的主题 向量进行通信,当需要训练分析的隐含语义规模非常大时,词的主题向量包含的数据量也 会非常庞大,因此,本发明提供的方法还可以避免进程间的数据交换瓶颈,进一步提高系统 性能。
[0066] 另外,在上述第1次迭代采样过程(即初始化过程)中为各个词w分配用于采样的 主题号时,语义分析系统最常用的方法是,通过该M个采样进程为各自采样的数据块中的 词w随机分配用于采样的主题号t。
[0067] 由于在初始化过程中,为各个词w分配的主题号t为随机分配,当需要训练分析 的隐含语义较多时,会导致前几十次迭代采样过程中统计的采样模型\ t以及文档主题直 方图\,不够稀疏,消耗大量内存以及网络带宽,对此,语义分析系统还可以通过该M个采 样进程根据已有的、最终收敛的采样模型为各自采样的数据块中的词分配用于采样的主题 号。
[0068] 具体的,假设需要训练隐含语义数为n*m的模型a,并且已经训练完成隐含语义数 为η的模型b,此时,语义分析系统可以使用模型b在线推断训练语料中所有词w的主题号 t,再随机将获得的每个主题号分裂为m个,最后将分裂出的m个主题号分配给训练语料中 的词w。
[0069] 步骤208,语义分析系统根据最终收敛的采样模型进行语义分析。
[0070] 具体的,语义分析系统可以根据最终收敛的采样模型对输入的文本进行语义分析 和在线推断等操作,获得语义分布向量等。
[0071] 综上所述,本发明实施例二提供的语义分析方法,通过将获取到的训练语料切分 成a*M*M个数据块,对切分出的该a*M*M个数据块进行迭代采样,输出最终收敛的采样模 型,根据输出的最终收敛的采样模型进行语义分析。由于切分获得的a*M*M数据块可以分 别单独进行采样,从而可以降低单进程的内存需求,解决了现有技术中当要训练的隐含语 义较多时对单进程的内存要求较高的问题,达到提高训练效率的目的;其次,本发明实施例 二提供的语义分析方法,首先统计训练语料中每一个词的出现频次,再将每一个文档组中 的词按照出现频次从高到低的顺序进行排序,最后分别将每一个文档组中的词按照排序结 果依次切分至该文档组对应的M个数据块中预定频次最小的数据块中,从而保证采样时的 负载均衡,达到提高系统性能的目的;另外,本发明实施例二提供的语义分析方法,在初始 化过程中,根据已有的、最终收敛的采样模型为各自采样的数据块中的词分配用于采样的 主题号,能够避免前几十次迭代采样过程中统计的采样模型\ t以及文档主题直方图\d 不够稀疏的问题,节约大量内存以及网络带宽,减少迭代次数,进一步提高系统性能;另外, 本发明实施例二提供的语义分析方法,通过增大采样进程的同步粒度,减少同步过程,在减 小负载均衡问题的同时,能够使系统具备进程间错误恢复的能力,极大的提高了系统性能; 最后,本发明实施例二提供的语义分析方法,数据进程和采样进程之间通过传输训练文档 包进行通信,相比于现有技术中通过词的语义分布向量进行通信的方法,当需要训练分析 的隐含语义规模较大时,能够避免进程间的数据交换瓶颈,进一步提高系统性能。
[0072] 实施例三
[0073] 与上述实施例一或者实施例二相对应的,请参见图5,其示出了本发明实施例三提 供的语义分析系统的系统构成图。该语义分析系统可以包括:
[0074] 训练语料获取模块301,用于获取训练语料,所述训练语料中包括N个训练文档, 每个所述训练文档中包括至少两个词;
[0075] 切分模块302,用于按照文档维度和词维度将所述训练语料获取模块301获取到 的训练语料切分成a*M*M个数据块,其中,a为大于等于1的整数,且a*M小于所述训练文 档的个数N,N彡2 ;
[0076] 迭代采样模块303,用于对所述切分模块302切分出的所述a*M*M个数据块进行迭 代采样,输出最终收敛的采样模型;
[0077] 语义分析模块304,用于根据所述迭代采样模块303输出的、最终收敛的采样模型 进行语义分析。
[0078] 综上所述,本发明实施例三提供的语义分析系统,通过将获取到的训练语料切分 成a*M*M个数据块,对切分出的该a*M*M个数据块进行迭代采样,输出最终收敛的采样模 型,根据输出的最终收敛的采样模型进行分析。由于切分获得的a*M*M数据块可以分别单 独进行采样,从而可以降低单进程的内存需求,解决了现有技术中当要训练的隐含语义较 多时对单进程的内存要求较高的问题,达到提高训练效率的目的。
[0079] 实施例四
[0080] 请参见图6,其示出了本发明实施例四提供的语义分析系统的系统构成图。该语义 分析系统可以实现为上述实施例二中的语义分析系统,用于对隐含语义,尤其是大规模的 隐含语义进行训练分析。该语义分析系统可以包括:
[0081] 训练语料获取模块401,用于获取训练语料,所述训练语料中包括N个训练文档, 每个所述训练文档中包括至少两个词;
[0082] 切分模块402,用于按照文档维度和词维度将所述训练语料获取模块401获取到 的训练语料切分成a*M*M个数据块,其中,a为大于等于1的整数,且a*M小于所述训练文 档的个数N,N彡2 ;
[0083] 迭代采样模块403,用于对所述切分模块402切分出的所述a*M*M个数据块进行迭 代采样,输出最终收敛的采样模型;
[0084] 语义分析模块404,用于根据所述迭代采样模块403输出的、最终收敛的采样模型 进行语义分析。
[0085] 所述切分模块402,包括:
[0086] 文档切分子模块4021,用于将所述训练语料中的所有文档切分成a*M个文档组;
[0087] 词切分子模块4022,用于将所述文档切分子模块4021切分出的每一个文档组中 的词分别切分至M个数据块。
[0088] 所述词切分子模块4022,包括:
[0089] 第一切分单元4022A,用于将每一个所述文档组中的词随机切分至与所述文档组 对应的M个数据块中的一个数据块。
[0090] 所述词切分子模块4022,还包括:
[0091] 频次统计单元4022B,用于统计所述训练语料中每一个词的出现频次;
[0092] 排序单元4022C,用于将每一个所述文档组中的词按照所述频次统计子单元统计 的出现频次从高到低的顺序进行排序;
[0093] 第二切分单元4022D,用于分别将每一个所述文档组中的词按照排序结果依次切 分至所述文档组对应的M个数据块中预定频次最小的数据块中,所述预定频次是当前数据 块中已划分有的各个词各自的出现频次之和。
[0094] 所述迭代采样模块403,包括:
[0095] 阵列切分子模块4031,用于将所述a*M*M个数据块切分成a个M*M数据块阵列,每 个所述M*M数据块阵列中包含有M行XM列的数据块;
[0096] 分组采样子模块4032,用于在每一次迭代采样时进行a次分组采样,每次分组采 样时对所述a个M*M数据块阵列中的一个进行采样。
[0097] 所述分组采样子模块4032,包括:
[0098] 第一加载单元4032A,用于在第1次迭代采样中,每次分组采样时,通过M个数据进 程加载对应的一个M*M数据块阵列;其中,每个所述数据进程加载所述对应的M*M数据块阵 列中的一个数据块行;
[0099] 第一采样单元4032B,用于每次分组采样时,通过M个采样进程对所述加载的M*M 数据块阵列中的数据块按列进行采样;其中,每个所述采样进程采样所述数据块阵列中的 一个数据块列;
[0100] 第一输出单元4032C,用于a次分组采样后,通过控制进程输出所述M个采样进程 的第1次采样结果;所述第1次采样结果中包含有第1次采样模型和第1次更新后的a个 M*M数据块阵列。
[0101] 所述第一采样单元4032B,包括:
[0102] 第一主题分配子单元4032Ba,用于通过所述M个采样进程为各自采样的数据块中 的词随机分配用于采样的主题号;
[0103] 第二主题分配子单元4032Bb,用于通过所述M个采样进程根据已有的、最终收敛 的采样模型为各自采样的数据块中的词分配用于采样的主题号。
[0104] 所述分组采样子模块4032,还包括:
[0105] 第二加载单元4032D,用于在第η次迭代采样中,每次分组采样时,通过所述M个数 据进程加载对应的、第η-1次更新后的一个Μ*Μ数据块阵列;其中,每个所述数据进程加载 所述第η-1次更新后的Μ*Μ数据块阵列中的一个数据块行,η > 2 ;
[0106] 第二采样单元4032Ε,用于每次分组采样时,通过所述M个采样进程对所述加载 的、第η-1次更新后的Μ*Μ数据块阵列中的数据块按列进行采样;其中,每个所述采样进程 采样所述加载的、第η-1次更新后的Μ*Μ数据块阵列中的一个数据块列;
[0107] 第二输出单元4032F,用于a次分组采样后,通过所述控制进程输出所述M个采样 进程的第η次采样结果;所述第η次采样结果中包含有第η次采样模型和第η次更新后的 a个Μ*Μ数据块阵列。
[0108] 所述分组采样子模块4032,用于在每次分组采样时,通过所述M个采样进程对各 自对应的数据块列中的数据块进行M轮并行采样,每轮并行采样中所述M个采样进程各自 采集所述Μ*Μ数据块阵列中不同行且不同列的一个数据块。
[0109] 所述分组采样子模块4032,具体用于在第i轮并行采样中,通过第j个采样进程采 样所述M个数据进程当前加载的M*M数据块阵列中,坐标为!

【权利要求】
1. 一种语义分析方法,其特征在于,所述方法包括: 获取训练语料,所述训练语料中包括N个训练文档,每个所述训练文档中包括至少两 个词; 按照文档维度和词维度将所述训练语料切分成a*M*M个数据块,其中,a为大于等于1 的整数,且a*M小于所述训练文档的个数N,N彡2 ; 对切分出的所述a*M*M个数据块进行迭代采样,输出最终收敛的采样模型; 根据所述最终收敛的采样模型进行语义分析。
2. 根据权利要求1所述的方法,其特征在于,所述按照文档维度和词维度将所述训练 语料切分成a*M*M个数据块,包括: 将所述训练语料中的所有文档切分成a*M个文档组; 将每一个所述文档组中的词分别切分至M个数据块。
3. 根据权利要求2所述的方法,其特征在于,所述将每一个所述文档组中的词分别切 分至M个数据块,包括: 将每一个所述文档组中的词随机切分至与所述文档组对应的M个数据块中的一个数 据块。
4. 根据权利要求2所述的方法,其特征在于,所述将每一个所述文档组中的词分别切 分至M个数据块,包括: 统计所述训练语料中每一个词的出现频次; 将每一个所述文档组中的词按照所述出现频次从高到低的顺序进行排序; 分别将每一个所述文档组中的词按照排序结果依次切分至所述文档组对应的M个数 据块中预定频次最小的数据块中,所述预定频次是当前数据块中已划分有的各个词各自的 出现频次之和。
5. 根据权利要求1至4任一所述的方法,其特征在于,所述对切分出的所述a*M*M个数 据块进行迭代采样,包括: 将所述a*M*M个数据块切分成a个M*M数据块阵列,每个所述M*M数据块阵列中包含 有M行XM列的数据块; 在每一次迭代采样时进行a次分组采样,每次分组采样时对所述a个M*M数据块阵列 中的一个进行采样。
6. 根据权利要求5所述的方法,其特征在于,所述在每一次迭代采样时进行a次分组采 样,每次分组采样时对所述a个M*M数据块阵列中的一个进行采样,包括: 在第1次迭代采样中,每次分组采样时,通过M个数据进程加载对应的一个M*M数据块 阵列;其中,每个所述数据进程加载所述对应的M*M数据块阵列中的一个数据块行; 每次分组采样时,通过M个采样进程对所述加载的M*M数据块阵列中的数据块按列进 行采样;其中,每个所述采样进程采样所述加载的M*M数据块阵列中的一个数据块列; a次分组采样后,通过控制进程输出所述M个采样进程的第1次采样结果;所述第1次 采样结果中包含有第1次采样模型和第1次更新后的a个M*M数据块阵列。
7. 根据权利要求6所述的方法,其特征在于,所述通过M个采样进程对所述加载的数据 块阵列中的数据块按列进行采样,包括: 通过所述M个采样进程为各自采样的数据块中的词随机分配用于采样的主题号; 或者, 通过所述M个采样进程根据已有的、最终收敛的采样模型为各自采样的数据块中的词 分配用于采样的主题号。
8. 根据权利要求5所述的方法,其特征在于,所述在每一次迭代采样时进行a次分组采 样,每次分组采样时对所述a个M*M数据块阵列中的一个进行采样,包括: 在第n次迭代采样中,每次分组采样时,通过所述M个数据进程加载对应的、第n-1次 更新后的一个M*M数据块阵列;其中,每个所述数据进程加载所述第n-1次更新后的M*M数 据块阵列中的一个数据块行,n > 2 ; 每次分组采样时,通过所述M个采样进程对所述加载的、第n-1次更新后的M*M数据块 阵列中的数据块按列进行采样;其中,每个所述采样进程采样所述加载的、第n-1次更新后 的M*M数据块阵列中的一个数据块列; a次分组采样后,通过所述控制进程输出所述M个采样进程的第n次采样结果;所述第 n次采样结果中包含有第n次采样模型和第n次更新后的a个M*M数据块阵列。
9. 根据权利要求8所述的方法,其特征在于,所述每次分组采样时对所述a个M*M数据 块阵列中的一个进行采样,包括: 每次分组采样时,通过所述M个采样进程对各自对应的数据块列中的数据块进行M轮 并行采样,每轮并行采样中所述M个采样进程各自采集所述M*M数据块阵列中不同行且不 同列的一个数据块。
10. 根据权利要求9所述的方法,其特征在于,所述通过所述M个采样进程对各自对应 的M*M数据块列中的数据块进行M轮并行采样,包括: 每次分组采样时,在第i轮并行采样中,通过第j个采样进程采样所述M个数据进程当 前加载的M*M数据块阵列中,坐标为(
的数据块; 其中,1彡i彡M,1彡j彡M。
11. 根据权利要求9所述的方法,其特征在于,所述每次分组采样时对所述a个M*M数 据块阵列中的一个进行采样,还包括: 在每一次迭代采样中,每次分组采样时,在所述M个采样进程对各自对应的数据块列 中的数据块进行一轮并行采样后,对所述M个采样进程进行采样时间上的同步; 或者, 在每一次迭代采样时中,每次分组采样时,在所述M个采样进程对各自对应的数据块 列中的数据块进行M轮并行采样后,对所述M个采样进程进行采样时间上的同步。
12. 根据权利要求6至11任一所述的方法,其特征在于,所述M个数据进程和所述M个 采样进程之间通过传输训练文档包进行通信。
13. -种语义分析系统,其特征在于,所述系统包括: 训练语料获取模块,用于获取训练语料,所述训练语料中包括N个训练文档,每个所述 训练文档中包括至少两个词; 切分模块,用于按照文档维度和词维度将所述训练语料获取模块获取到的训练语料切 分成a*M*M个数据块,其中,a为大于等于1的整数,且a*M小于所述训练文档的个数N, N彡2 ; 迭代采样模块,用于对所述切分模块切分出的所述a*M*M个数据块进行迭代采样,输 出最终收敛的采样模型; 语义分析模块,用于根据所述迭代采样模块输出的、最终收敛的采样模型进行语义分 析。
14. 根据权利要求13所述的系统,其特征在于,所述切分模块,包括: 文档切分子模块,用于将所述训练语料中的所有文档切分成a*M个文档组; 词切分子模块,用于将所述文档切分子模块切分出的每一个文档组中的词分别切分至 M个数据块。
15. 根据权利要求14所述的系统,其特征在于,所述词切分子模块,包括: 第一切分单元,用于将每一个所述文档组中的词随机切分至与所述文档组对应的M个 数据块中的一个数据块。
16. 根据权利要求14所述的系统,其特征在于,所述词切分子模块,包括: 频次统计单元,用于统计所述训练语料中每一个词的出现频次; 排序单元,用于将每一个所述文档组中的词按照所述频次统计子单元统计的出现频次 从高到低的顺序进行排序; 第二切分单元,用于分别将每一个所述文档组中的词按照排序结果依次切分至所述文 档组对应的M个数据块中预定频次最小的数据块中,所述预定频次是当前数据块中已划分 有的各个词各自的出现频次之和。
17. 根据权利要求13至16任一所述的系统,其特征在于,所述迭代采样模块,包括: 阵列切分子模块,用于将所述a*M*M个数据块切分成a个M*M数据块阵列,每个所述 M*M数据块阵列中包含有M行XM列的数据块; 分组采样子模块,用于在每一次迭代采样时进行a次分组采样,每次分组采样时对所 述a个M*M数据块阵列中的一个进行采样。
18. 根据权利要求17所述的系统,其特征在于,所述分组采样子模块,包括: 第一加载单元,用于在第1次迭代采样中,每次分组采样时,通过M个数据进程加载对 应的一个M*M数据块阵列;其中,每个所述数据进程加载所述对应的M*M数据块阵列中的一 个数据块行; 第一采样单元,用于每次分组采样时,通过M个采样进程对所述加载的M*M数据块阵列 中的数据块按列进行采样;其中,每个所述采样进程采样所述数据块阵列中的一个数据块 列; 第一输出单元,用于a次分组采样后,通过控制进程输出所述M个采样进程的第1次采 样结果;所述第1次采样结果中包含有第1次采样模型和第1次更新后的a个M*M数据块 阵列。
19. 根据权利要求18所述的系统,其特征在于,所述第一采样单元,包括: 第一主题分配子单元,用于通过所述M个采样进程为各自采样的数据块中的词随机分 配用于采样的主题号; 第二主题分配子单元,用于通过所述M个采样进程根据已有的、最终收敛的采样模型 为各自采样的数据块中的词分配用于采样的主题号。
20. 根据权利要求17所述的系统,其特征在于,所述分组采样子模块,还包括: 第二加载单元,用于在第n次迭代采样中,每次分组采样时,通过所述M个数据进程加 载对应的、第n-1次更新后的一个M*M数据块阵列;其中,每个所述数据进程加载所述第 n-1次更新后的M*M数据块阵列中的一个数据块行,n > 2 ; 第二采样单元,用于每次分组采样时,通过所述M个采样进程对所述加载的、第n-1次 更新后的M*M数据块阵列中的数据块按列进行采样;其中,每个所述采样进程采样所述加 载的、第n-1次更新后的M*M数据块阵列中的一个数据块列; 第二输出单元,用于a次分组采样后,通过所述控制进程输出所述M个采样进程的第n 次采样结果;所述第n次采样结果中包含有第n次采样模型和第n次更新后的a个M*M数 据块阵列。
21. 根据权利要求20所述的系统,其特征在于,所述分组采样子模块,用于在每次分组 采样时,通过所述M个采样进程对各自对应的数据块列中的数据块进行M轮并行采样,每轮 并行采样中所述M个采样进程各自采集所述M*M数据块阵列中不同行且不同列的一个数据 块。
22. 根据权利要求21所述的系统,其特征在于,所述分组采样子模块,用于每次分组采 样时,在第i轮并行采样中,通过第j个采样进程采样所述M个数据进程当前加载的M*M数 据块阵列中,坐标为(
)的数据块; 其中,1彡i彡M,1彡j彡M。
23. 根据权利要求21所述的系统,其特征在于,所述分组采样子模块,还包括: 第一同步单元,用于在每一次迭代采样中,每次分组采样时,在所述M个采样进程对各 自对应的数据块列中的数据块进行一轮并行采样后,对所述M个采样进程进行采样时间上 的同步; 第二同步单元,用于在每一次迭代采样中,每次分组采样时,在所述M个采样进程对各 自对应的数据块列中的数据块进行M轮并行采样后,对所述M个采样进程进行采样时间上 的同步。
24. 根据权利要求18至23任一所述的系统,其特征在于,所述M个数据进程和所述M 个采样进程之间通过传输训练文档包进行通信。
【文档编号】G06F17/30GK104346339SQ201310314194
【公开日】2015年2月11日 申请日期:2013年7月24日 优先权日:2013年7月24日
【发明者】王益, 赵学敏, 孙振龙, 严浩, 王莉峰, 靳志辉, 王流斌 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1