一种文本特征提取系统和方法

xiaoxiao2021-2-28  193

一种文本特征提取系统和方法
【技术领域】
[0001] 本发明涉及大数据/云计算技术领域,尤其涉及一种文本特征提取系统和方法。
【背景技术】
[0002] 在文本分类中,一般一类文档的词都有几十万,如果每个词都参与运算不仅会耗 费运行时间,而且分类效果会被大量不相关的词所干扰,因此文本特征提取是文本分类过 程中的一个重要环节。但目前文本特征提取方法还是基于单机运算,面对海量的互联网网 页信息,由于网页的文本特征数量巨大,采用单机运算,可扩展性差,对海量文本特征提取 无法扩展到多台机器进行并行运算,将会造成性能瓶颈。

【发明内容】

[0003] 本发明要解决的是海量文本特征提取速度慢、效率低的问题。
[0004] 根据本发明一方面,提出一种文本特征提取系统,包括:
[0005] 分词模块,用于将已分好m个类别的文档内容进行分词处理得到多个特征词;
[0006] 参数计算模块,用于计算文档的词频参数,所述参数包括每个类别的文档数量队、 包含各个特征词的文档数量N t、总文档数Ntotal和每个类别中包含各个特征词的文档数 \t;
[0007] 特征值计算模块,用于根据参数计算模块计算的词频参数并行计算每个特征词属 于各个类别的特征值;
[0008] 累加计算模块,用于对每个特征词的m个类别的特征值进行并行累加计算;
[0009] 特征提取模块,用于根据累加计算后的特征值的大小进行排序,并根据排序结果 对应的特征词进行文本特征提取。
[0010] 进一步,特征值计算模块用于根据
计算每个特征词属于各个类 别的特征值。
[0011] 进一步,初始化配置模块,用于从所述参数计算模块读取并保存文档的词频参数, 并将所述词频参数传递给所述特征值计算模块。
[0012] 进一步,特征值计算模块设置在MapReduce编程架构的Map函数中。
[0013] 进一步,累加计算模块设置在MapReduce编程架构的Reduce函数中。
[0014] 根据本发明的另一方面,还提出一种文本特征提取方法,包括:
[0015] 将已分好m个类别的文档内容进行分词处理得到多个特征词;
[0016] 计算文档的词频参数,所述参数包括每个类别的文档数量队、包含各个特征词的 文档数量Nt、总文档数Ntotal和每个类别中包含各个特征词的文档数\ t ;
[0017] 根据词频参数并行计算每个特征词属于各个类别的特征值;
[0018] 对每个特征词的m个类别的特征值进行并行累加计算;
[0019] 根据累加计算后的特征值的大小进行排序,并根据排序结果对应的特征词进行文 本特征提取。
[0020]
计算每个特征词属于各个类别的特征值。
[0021] 进一步,初始化配置,包括读取并保存文档的词频参数,并将所述词频参数传递给 Map函数。
[0022] 进一步,在MapReduce编程架构的Map函数中计算每个特征词属于各个类别的特 征值。
[0023] 进一步,在MapReduce编程架构的Reduce函数中对每个特征词的m个类别的特征 值进行并行累加计算。
[0024] 在本发明中,并行计算每个特征词属于各个类别的特征值,并对每个特征词的m 个类别的特征值进行并行累加计算,因此,通过并行运算能够提高海量文本特征的提取速 度、效率高。
[0025] 通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其 优点将会变得清楚。
【附图说明】
[0026] 构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解 释本发明的原理。
[0027] 参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
[0028] 图1为实施例中一种文本特征提取系统的结构示意图。
[0029] 图2为实施例中一种文本特征提取方法的流程图。
【具体实施方式】
[0030] 现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具 体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本 发明的范围。
[0031] 同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际 的比例关系绘制的。
[0032] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明 及其应用或使用的任何限制。
[0033] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适 当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
[0034] 在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不 是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
[0035] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一 个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0036] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照 附图,对本发明进一步详细说明。
[0037] 图1为实施例中一种文本特征提取系统的结构示意图,该系统包括:分词模块 110、参数计算模块120、特征值计算模块130、累加计算模块140和特征提取模块150。其 中:
[0038] 分词模块110,用于将已分好m个类别的文档内容进行分词处理得到多个特征词。
[0039] 参数计算模块120,用于计算文档的词频参数,所述参数包括每个类别的文档数量 队、包含各个特征词的文档数量N t、总文档数Ntotal和每个类别中包含各个特征词的文档数 \t。
[0040] 特征值计算模块130,用于根据参数计算模块120计算的词频参数,设计Map函数, 并行计算每个特征词属于各个类别的特征值。Map函数的输入key值由类别label与特征 词term组合而成,value为类别label中包含特征term的文档数\ t,把特征词term与每 个特征词属于各个类别的特征值ce作为〈key, value〉值对输出。
[0041] 在本发明的实施例中,根据如下公式,计算每个特征词属于各个类别的特征值, 即:
[0043] 该公式可以根据期望交叉熵公式进行转换而来,本领域技术人员应该可以理解, 这里只是用于举例,不应理解为对本发明的限制。
[0044] 期望交叉熵公式为:
[0046] 其中,P(t)是包含特征词t的文档在训练集中出现的概率,Ρ((;)是类Q的文档在 训练集中出现的概率,p(cyt)是包含特征词t的文档属于类Q的概率,第i类为Q,共有 m类。例如,根据需要制定m个类别的文本分类体系(如:体育、财经等类别),通过爬虫、人 工等途径搜集每个类别的语料库,构建具有m个类别的"训练集",每个类别标记为Q (i = l...m) 〇
[0047] 根据参数计算模块120计算的文档的词频参数,则:
[0049] 记Ntotal为总文档数,Nt为包含特征词t的文档数,队为类Q的文档数,队,t为类 Q中包含特征词t的文档数,则期望交叉熵的计算公式转化为:
[0051] 由于m为类别,因此,对于每个特征词属于各个类别的特征值为:
[0053] 在上述各个公式中,关于log的底数可以为2,本领域技术人员应该可以理解,这 里只是用于举例说明,不应理解为对本发明的限制。底数的取值可以为10或者其他,并不 影响处理结果。
[00 54] 累加计算模块140,设计Reduce函数,用于对每个特征词的m个类别的特征值进 行并行累加计算。Reduce函数每个key包含一个特征词term, value是把每个特征词m个 类别的ce累加起来保存为ece,其中,ce为每个特征词属于各个类别的特征值,最后把key 与ece作为〈key, value〉值对输出。
[0055] 特征提取模块150,用于根据累加计算后的特征值ece的大小进行排序,并根据排 序结果对应的特征词进行文本特征提取。
[0056] 在该实施例中,由于并行计算每个特征词属于各个类别的特征值,并对每个特征 词的m个类别的特征值进行并行累加计算。因此,通过并行运算能够提高海量文本特征的 提取速度、效率高,解决了海量文本特征提取单机运算的性能瓶颈。
[0057] 在本发明的实施例中,文本特征提取系统还包括初始化配置模块,用于从所述参 数计算模块读取并保存文档的词频参数,并将所述词频参数传递给所述特征值计算模块。 其中,初始化配置模块的输入路径设置为所述参数计算模块的输出路径。该初始化配置模 块例如是hadoop初始化函数。
[0058] 在本发明的实施例中,特征值计算模块130设置在MapReduce编程架构的Map函 数中。
[0059] 在本发明的实施例中,累加计算模块140设置在MapReduce编程架构的Reduce函 数中。
[0060] 其中,MapReduce分布式处理框架的可扩展性非常好,每增加一台服务器,其就能 将差不多的计算能力接入到集群中,当文档特征词很多的时候,可以由MapReduce架构自 动根据特征数量和机器性能分配为多个Map函数和Reduce函数在多台机器上并行处理,解 决了单机运算机器资源和性能的限制。通过1次MapReduce计算即可完成海量文本特征的 提取,不仅可以处理大规模文本数据集,而且并行效率高,能够利用集群和并行计算模型提 高海量文本特征提取的速度,解决了海量文本特征提取单机运算的性能瓶颈。
[0061] 下面将通过一个具体实施例,对本发明做进一步说明。在该实施例中,初始化配置 模块为hadoop初始化函数,特征值计算模块为Map函数,累加计算模块为Reduce函数。其 中:
[0062] 分词模块将已分好m个类别的文档内容进行分词处理得到多个特征词。
[0063] 参数计算模块计算文档的词频参数,所述参数包括每个类别的文档数量队、包含 各个特征词的文档数量N t、总文档数Ntotal和每个类别中包含各个特征词的文档数\t。
[0064] hadoop初始化函数从所述参数计算模块读取并保存文档的词频参数,并将所述词 频参数传递给Map函数。
[0065] Map函数中包括key与value值对,其中,每个key值包含一个特征词t,value为 特征词t属于各个类别的特征值。计算出特征值后,将特征词t与每个特征词属于各个类 别的特征值ce作为〈key, value〉值对输出给Reduce函数。
[0066] Reduce函数根据〈key,value〉值对,对每个特征词的m个类别的特征值进行并行 累加计算,并输出给累加值。Reduce函数每个key包含一个特征词term, value是把每个 特征词m个类别的ce累加起来保存为ece,其中,ce为每个特征词属于各个类别的特征值, 最后把key与ece作为〈key, value〉值对输出。
[0067] 特征提取模块根据累加计算后的特征值ece的大小进行排序,并根据排序结果对 应的特征词进行文本特征提取。例如,排在前面的特征词分类能力越强,可根据需要选择排 在前面的K个文本特征。
[0068] 在该实施例中,MapReduce分布式处理框架的可扩展性非常好,每增加一台 服务器,其就能将差不多的计算能力接入到集群中,当文档特征词很多的时候,可以由 MapReduce架构自动根据特征数量和机器性能分配为多个Map函数和Reduce函数在多台机 器上并行处理,解决了单机运算机器资源和性能的限制。通过1次MapReduce计算即可完 成海量文本特征的提取,不仅可以处理大规模文本数据集,而且并行效率高,能够利用集群 和并行计算模型提高海量文本特征提取的速度,解决了海量文本特征提取单机运算的性能 瓶颈。
[0069] 图2为实施例中一种文本特征提取方法的流程图。该方法包括以下步骤:
[0070] 在步骤210,将已分好m个类别的文档内容进行分词处理得到多个特征词。
[0071] 在步骤220,计算文档的词频参数,所述参数包括每个类别的文档数量队、包含各 个特征词的文档数量N t、总文档数Ntotal和每个类别中包含各个特征词的文档数\t。
[0072] 在步骤230,根据词频参数并行计算每个特征词属于各个类别的特征值。
[0073] 设计Map函数,并行计算每个特征词属于各个类别的特征值。Map函数的输入key 值由类别label与特征词term组合而成,value为类别label中包含特征term的文档数 \ t,把特征词term与每个特征词属于各个类别的特征值ce作为〈key, value〉值对输出。
[0074] 在本发明的实施例中,根据如下公式,计算每个特征词属于各个类别的特征值, 即:
[0076] 该公式可以根据期望交叉熵公式进行转换而来,本领域技术人员应该可以理解, 这里只是用于举例,不应理解为对本发明的限制。
[0077] 期望交叉熵公式为:
[0079] 其中,P(t)是包含特征词t的文档在训练集中出现的概率,Ρ((;)是类Q的文档在 训练集中出现的概率,p(cyt)是包含特征词t的文档属于类Q的概率,第i类为Q,共有 m类。例如,根据需要制定m个类别的文本分类体系(如:体育、财经等类别),通过爬虫、人 工等途径搜集每个类别的语料库,构建具有m个类别的"训练集",每个类别标记为Q (i = l...m) 〇
[0080] 根据文档的词频参数,则:
[0082] 记Ntotal为总文档数,Nt为包含特征词t的文档数,队为类Q的文档数,队,t为类 Q中包含特征词t的文档数,则期望交叉熵的计算公式转化为:
[0084] 由于m为类别,因此,对于每个特征词属于各个类别的特征值为:
[0086] 在上述各个公式中,关于log的底数可以为2,本领域技术人员应该可以理解,这 里只是用于举例说明,不应理解为对本发明的限制。底数的取值可以为10或者其他,并不 影响处理结果。
[0087] 在步骤240,对每个特征词的m个类别的特征值进行并行累加计算。
[0088] 设计Reduce函数,用于对每个特征词的m个类别的特征值进行并行累加计算。 Reduce函数每个key包含一个特征词term, value是把每个特征词m个类别的ce累加 起来保存为ece,其中,ce为每个特征词属于各个类别的特征值,最后把key与ece作为 〈key, value〉值对输出。
[0089] 在步骤250,根据累加计算后的特征值ece的大小进行排序,并根据排序结果对应 的特征词进行文本特征提取。
[0090] 在该实施例中,由于并行计算每个特征词属于各个类别的特征值,并对每个特征 词的m个类别的特征值进行并行累加计算。因此,通过并行运算能够提高海量文本特征的 提取速度、效率高,解决了海量文本特征提取单机运算的性能瓶颈。
[0091] 在本发明的实施例中,在步骤220与步骤230之间还包括:初始化配置,即,读取并 保存文档的词频参数。该初始化配置例如是hadoop初始化函数执行。其中,初始化配置的 输入路径设置为步骤220的输出路径,并将 词频参数输出到步骤230。
[0092] 在本发明的实施例中,步骤230可以通过MapReduce编程架构的Map函数计算每 个特征词属于各个类别的特征值。
[0093] 在本发明的实施例中,步骤240可以通过MapReduce编程架构的Reduce函数对每 个特征词的m个类别的特征值进行并行累加计算。
[0094] 其中,MapReduce分布式处理框架的可扩展性非常好,每增加一台服务器,其就能 将差不多的计算能力接入到集群中,当文档特征词很多的时候,可以由MapReduce架构自 动根据特征数量和机器性能分配为多个Map函数和Reduce函数在多台机器上并行处理,解 决了单机运算机器资源和性能的限制。通过1次MapReduce计算即可完成海量文本特征的 提取,不仅可以处理大规模文本数据集,而且并行效率高,能够利用集群和并行计算模型提 高海量文本特征提取的速度,解决了海量文本特征提取单机运算的性能瓶颈。
[0095] 下面将通过一个具体实施例,对本发明做进一步说明。其中:
[0096] 将已分好m个类别的文档内容进行分词处理得到多个特征词。
[0097] 计算文档的词频参数,所述参数包括每个类别的文档数量队、包含各个特征词的 文档数量N t、总文档数Ntotal和每个类别中包含各个特征词的文档数\t。
[0098] hadoop初始化函数读取并保存文档的词频参数,并将所述词频参数传递给Map函 数。
[0099] Map函数中包括key与value值对,其中,每个key值包含一个特征词t,value为 特征词t属于各个类别的特征值。计算出特征值后,将特征词t与每个特征词属于各个类 别的特征值ce作为〈key, value〉值对输出给Reduce函数。
[0100] Reduce函数根据〈key,value〉值对,对每个特征词的m个类别的特征值进行并行 累加计算,并输出给累加值。Reduce函数每个key包含一个特征词term, value是把每个 特征词m个类别的ce累加起来保存为ece,其中,ce为每个特征词属于各个类别的特征值, 最后把key与ece作为〈key, value〉值对输出。
[0101] 根据累加计算后的特征值ece的大小进行排序,并根据排序结果对应的特征词进 行文本特征提取。例如,排在前面的特征词分类能力越强,可根据需要选择排在前面的K个 文本特征。
[0102] 该实施例中,MapReduce分布式处理框架的可扩展性非常好,每增加一台服务器, 其就能将差不多的计算能力接入到集群中,当文档特征词很多的时候,可以由MapReduce 架构自动根据特征数量和机器性能分配为多个Map函数和Reduce函数在多台机器上并行 处理,解决了单机运算机器资源和性能的限制。通过1次MapReduce计算即可完成海量文 本特征的提取,不仅可以处理大规模文本数据集,而且并行效率高,能够利用集群和并行计 算模型提高海量文本特征提取的速度,解决了海量文本特征提取单机运算的性能瓶颈。
[0103] 至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公 知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术 方案。
[0104] 可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或 者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述 顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方 式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些 程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行 根据本发明的方法的程序的记录介质。
[0105] 虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技 术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技 术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发 明的范围由所附权利要求来限定。
【主权项】
1. 一种文本特征提取系统,其特征在于,包括: 分词模块,用于将已分好m个类别的文档内容进行分词处理得到多个特征词; 参数计算模块,用于计算文档的词频参数,所述参数包括每个类别的文档数量N1、包含 各个特征词的文档数量Nt、总文档数Ntotal和每个类别中包含各个特征词的文档数N li t ; 特征值计算模块,用于根据参数计算模块计算的词频参数并行计算每个特征词属于各 个类别的特征值; 累加计算模块,用于对每个特征词的m个类别的特征值进行并行累加计算; 特征提取模块,用于根据累加计算后的特征值的大小进行排序,并根据排序结果对应 的特征词进行文本特征提取。2. 根据权利要求1所述的文本特征提取系统,其特征在于,包括: 特征值计算模块用于根据计算每个特征词属于各个类别的特征值。3. 根据权利要求1或2所述的文本特征提取系统,其特征在于,还包括: 初始化配置模块,用于从所述参数计算模块读取并保存文档的词频参数,并将所述词 频参数传递给所述特征值计算模块。4. 根据权利要求1所述的文本特征提取系统,其特征在于,包括: 特征值计算模块设置在MapReduce编程架构的Map函数中。5. 根据权利要求1所述的文本特征提取系统,其特征在于,包括: 累加计算模块设置在MapReduce编程架构的Reduce函数中。6. -种文本特征提取方法,其特征在于,包括: 将已分好m个类别的文档内容进行分词处理得到多个特征词; 计算文档的词频参数,所述参数包括每个类别的文档数量Ni、包含各个特征词的文档 数量Nt、总文档数Ntotal和每个类别中包含各个特征词的文档数Nli t ; 根据词频参数并行计算每个特征词属于各个类别的特征值; 对每个特征词的m个类别的特征值进行并行累加计算; 根据累加计算后的特征值的大小进行排序,并根据排序结果对应的特征词进行文本特 征提取。7. 根据权利要求6所述的文本特征提取方法,其特征在于,包括: 根据计算每个特征词属于各个类别的特征值。8. 根据权利要求6或7所述的文本特征提取方法,其特征在于,包括: 初始化配置,包括读取并保存文档的词频参数,并将所述词频参数传递给Map函数。9. 根据权利要求6所述的文本特征提取方法,其特征在于,包括: 在MapReduce编程架构的Map函数中计算每个特征词属于各个类别的特征值。10. 根据权利要求6所述的文本特征提取方法,其特征在于,包括: 在MapReduce编程架构的Reduce函数中对每个特征词的m个类别的特征值进行并行 累加计算。
【专利摘要】本发明公开了一种文本特征提取系统和方法。该方法包括:将已分好m个类别的文档内容进行分词处理得到多个特征词;计算文档的词频参数,所述参数包括每个类别的文档数量Ni、包含各个特征词的文档数量Nt、总文档数Ntotal和每个类别中包含各个特征词的文档数Ni,t;根据词频参数并行计算每个特征词属于各个类别的特征值;对每个特征词的m个类别的特征值进行并行累加计算;根据累加计算后的特征值的大小进行排序,并根据排序结果对应的特征词进行文本特征提取。本发明通过并行运算能够提高海量文本特征的提取速度、效率高。
【IPC分类】G06F17/27
【公开号】CN105488022
【申请号】CN201410491458
【发明人】陶彩霞, 谢晓军, 陈康, 张青, 高智衡, 陈翀, 关迎晖, 刘春 , 向勇, 吴旭
【申请人】中国电信股份有限公司
【公开日】2016年4月13日
【申请日】2014年9月24日

最新回复(0)