垃圾文本判别方法、装置及服务器与流程

文档序号:15047399发布日期:2018-07-27 22:59阅读:129来源:国知局

本发明涉及计算机技术领域,特别是涉及一种垃圾文本判别方法、装置及服务器。



背景技术:

目前文本反垃圾在各个互动、社交类的客户端、网站、app(application,应用)均有不同程度的应用。文本反垃圾犹如一张滤网,过滤掉广告、虚假宣传或影响社会健康的一系列不合适的内容,保障了各客户端、网站和app处于一个积极向上、纯净的交流环境。

在进行文本反垃圾时需要先对垃圾文本进行判别,现有技术判别垃圾文本的通常方法是,当服务器接收到文本时,将文本同时分发给不同的用于对文本进行预处理并计算的模块,各模块按一定次序对文本进行预处理后,对预处理后的文本进行属性计算,其中,各模块会分别计算出文本的不同属性,服务器再将不同模块计算出的属性汇聚起来进行总计算,得出对该文本最终的判别结果。

由于现有技术是将文本同时分发给不同模块后,不同模块各自独立地同时对该文本进行预处理,这样就会导致当不同模块存有相同的预处理时,各模块对同一文本进行重复的预处理,从而使计算量增大,占用更多的cpu资源,对垃圾文本的判别效率较低。



技术实现要素:

本发明实施例的目的在于提供一种垃圾文本判别方法、装置及服务器,可以减少对垃圾文本判别的计算量、节约cpu资源,从而提高判别垃圾文本的效率。具体技术方案如下:

第一方面,本发明实施例提供了一种垃圾文本判别方法,一种垃圾文本判别方法,应用于服务器,包括:

将接收到的文本发送给预先排序好的各模块按顺序进行判别;

针对每一个模块,将该模块下的不同预处理进行排序,得到该模块的预处理序列;

针对每一个模块的预处理序列,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;

按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,所述剩余预处理部分为当前模块的预处理序列中未被其他模块的预处理子序列预处理过的预处理部分;

针对每一个模块,将经该模块的预处理序列预处理过的文本按当前模块预设的函数进行计算,得到文本的属性;

根据每一个模块得到的文本的属性,做出对所述文本的判别结果。

可选的,所述针对每一个模块的预处理序列,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,包括:

针对每一个模块的预处理序列,判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本;

如果是,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理;

如果否,按当前模块的预处理序列对所接收到的文本进行预处理,并保存经当前预处理序列的每一预处理子序列预处理过的文本。

可选的,所述其他模块的预处理序列的预处理子序列为其他模块的预处理序列的预处理子序列中与当前模块的预处理序列的预处理子序列相同的,且含有的用于预处理接收到的文本的预处理的数量最多的预处理子序列。

可选的,所述针对每一个模块的预处理序列,判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本包括:

按照当前模块的预处理序列的子序列的用于预处理接收到的文本的预处理的数量由多到少的顺序,判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本。

可选的,所述文本的属性包括:中英文占比、分词后的单词长度、生僻字占比、语句通顺度中的至少一个。

可选的,所述针对每一个模块,将经该模块的预处理序列预处理过的文本按预设的函数进行计算,得到文本的属性后,还包括:

针对每一个模块,将所得到的文本的属性作为预设的分析模型的参数,将所述预设的分析模型的输出结果作为对文本的分析结果;

所述根据每一个模块的计算结果,得出对所述文本的判别结果,包括:

根据每一个模块对文本的分析结果,得出对所述文本的判别结果。

可选的,所述针对每一个模块,将经该模块的预处理序列预处理过的文本按预设的函数进行计算,得到文本的属性,包括:

针对每一个模块,判断是否存有与该模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性,所述其他模块的预设函数为与当前模块的预设函数相同的预设函数;

如果是,获取与当前模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性;

如果否,将当前模块的预处理序列预处理过的文本作为当前模块预设函数的参数,将当前模块预设函数的输出结果作为计算出的文本的属性,并将计算出的文本的属性保存。

可选的,所述将计算出的文本的属性保存包括:

将当前模块的预处理序列和当前模块预设的规则的函数名的哈希值,作为计算出的文本的属性的标识,将标记标识后的文本的属性保存。

可选的,所述预设的分析模型为逻辑回归分析模型logisticregression。

第二方面,本发明实施例提供了一种垃圾文本判别装置,应用于服务器,包括:

发送单元,用于将接收到的文本发送给预先排序好的各模块按顺序进行判别;

排序单元,用于针对每一个模块,将该模块下的不同预处理进行排序,得到该模块的预处理序列;

获取单元,用于针对每一个模块的预处理序列,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;

预处理单元,用于按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,所述剩余预处理部分为当前模块的预处理序列中未被其他模块的预处理子序列预处理过的预处理部分;

计算单元,用于针对每一个模块,将经该模块的预处理序列预处理过的文本按当前模块预设的函数进行计算,得到文本的属性;

判别单元,用于根据每一个模块得到的文本的属性,做出对所述文本的判别结果。

可选的,所述获取单元包括:

文本判断子单元,用于针对每一个模块的预处理序列,判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本;

文本获取子单元,用于当所述判断子单元的判断结果为是时,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;

所述预处理单元包括:

预处理子单元,用于当所述文本判断子单元的判断结果为是时,按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,当所述文本判断子单元的判断结果为否时,按当前模块的预处理序列对所接收到的文本进行预处理,并保存经当前预处理序列的每一预处理子序列预处理过的文本。

可选的,所述其他模块的预处理序列的预处理子序列为其他模块的预处理序列的预处理子序列中与当前模块的预处理序列的预处理子序列相同的,且含有的用于预处理接收到的文本的预处理的数量最多的预处理子序列。

可选的,所述判断子单元包括:顺序判断模块,用于按照当前模块的预处理序列的子序列的预处理的数量由多到少的顺序,判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本。

可选的,所述文本的属性包括:中英文占比、分词后的单词长度、生僻字占比、语句通顺度中的至少一个。

可选的,所述装置还包括:

分析单元,用于针对每一个模块,将所得到的文本的属性作为预设的分析模型的参数,将所述预设的分析模型的输出结果作为对文本的分析结果;

所述判别单元包括判别子单元,用于根据每一个模块对文本的分析结果,得出对所述文本的判别结果。

可选的,所述计算单元包括:

文本属性判断子单元,用于针对每一个模块,判断是否存有与该模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性,所述其他模块的预设函数为与当前模块的预设函数相同的预设函数;

文本属性获取子单元,用于当所述文本属性判断子单元的判断结果为是时,获取与当前模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性;

文本属性计算子单元,用于当所述文本属性判断子单元的判断结果为否时,将当前模块的预处理序列预处理过的文本作为当前模块预设函数的参数,将当前模块预设函数的输出结果作为计算出的文本的属性,并将计算出的文本的属性保存。

可选的,所述将计算出的文本的属性保存包括:

将当前模块的预处理序列和当前模块预设的规则的函数名的哈希值,作为计算出的文本的属性的标识,将标记标识后的文本的属性保存。

可选的,所述预设的分析模型为逻辑回归分析模型logisticregression。

第三方面,本发明实施例提供了一种服务器,包括预处理器、通信接口、存储器和通信总线,其中,预处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;预处理器,用于执行存储器上所存放的程序,实现第一方面所述的方法步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被预处理器执行时实现第一方面所述的步骤。

本发明实施例通过将接收到的文本发送给预先排序好的各模块按顺序进行判别,每一个模块有各自的预处理序列,由于不同模块的预处理序列可能会有相同的预处理子序列,因此,对任一模块的预处理序列,先获取经其他模块预处理序列的预处理子序列预处理过的文本,然后直接在该预处理过的文本的基础上按照当前模块的预处理序列继续对所获取的文本进行当前模块预处理序列中剩余预处理部分的预处理,可以充分利用之前模块的预处理结果,省去了重复预处理,从而减少了计算量,节约了cpu资源,提高了对垃圾文本的预处理效率。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例的垃圾文本判别方法的一种流程示意图;

图2为本发明实施例的垃圾文本判别装置的一种结构示意图;

图3为本发明实施例提供的服务器的一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了减少垃圾文本判别过程中的计算量,节约cpu资源,从而提高对垃圾文本的预处理效率,本发明实施例提供了一种垃圾文本判别方法,该方法将接收到的文本发送给预先排序好的各模块按顺序进行判别,其中,每一个模块有各自的预处理序列,由于不同模块的预处理序列可能会有相同的预处理子序列,因此,对任一模块的预处理序列,先获取经其他模块预处理序列的预处理子序列预处理过的文本,然后在该预处理过的文本的基础上按当前模块的预处理序列继续对所获取的文本进行当前模块预处理序列中剩余预处理部分的预处理,可以省去了重复预处理,从而减少了计算量,节约了cpu资源,提高了对垃圾文本的预处理效率。

下面首先对本发明实施例所提供的垃圾文本判别方法进行介绍。

需要说明的是,本发明实施例所提供的垃圾文本判别方法可以应用于微博、视频网站、论坛或其他任何允许用户上传文本内容的互联网行业。

如图1所示,是本发明实施例所提供的一种垃圾文本判别方法,应用于服务器,可以包括如下步骤:

s101:将接收到的文本发送给预先排序好的各模块按顺序进行判别;

在实际应用中,用户会在客户端输入各种评论内容或文章等文本,所以服务器接收到的文本可以为由客户端发送的文本。

在一种具体实施例中,步骤s101可以通过如下步骤来按顺序进行判别:预先将各模块排序,服务器接收到文本后,将文本首先发送到第一个模块进行判别,第一个模块判别结束后再将文本发送到第二个模块进行判别,各模块依次进行判别,直至最后一个模块判别结束。各模块按顺序进行判别,可以使各模块在判别过程中复用其他模块在判别过程中保存的预处理或计算结果,提高文本判别速度和效率。

服务器中预设有多个用于判别文本的模块,不同模块会依据文本的不同属性对文本进行判别,可以至少通过两种具体实施例实现对该文本的判别。

在一种具体实施例中,上述各个模块可以设置在一台服务器中。当多个模块设置在一台服务器中时,就会由一台服务器接收文本,只在一台服务器中就可完成对文本的判别,从而可以节省网络开销。

在第二种具体实施例中,在服务将接收到的文本发送给预先排序好的各模块按顺序进行判断的过程中,当任何一个模块判别出一段文本是垃圾文本后,服务器就可以控制排在该模块后面的模块停止对该文本的判别。

在实际应用中,为了召回更多的垃圾文本,尽量避免垃圾文本在网络中被传播,当一段文本被多个模块判别时,只要有一个模块判别该段文本是垃圾文本,就应该认为该文本是垃圾文本。因此,若经过某一模块的判别后,得出该文本是垃圾文本,就可以结束对该文本在其他模块的继续判别,当某一模块判别出的文本不是垃圾文本时,再将该文本发送至下一模块继续对该文本进行判别。这样,可以避免对一条重复判别,从而提高对文本的判别速度和效率。

s102:针对每一个模块,将该模块下的不同预处理进行排序,得到该模块的预处理序列;

所述的预处理指对所接收到的文本进行无用信息的预处理。由于接收到的文本会含有很多无用信息,例如,用户名称、表情符号、空格、语气词、标点符号等信息,服务器在对接收到的文本进行判别时,若将这些无用信息一起进行文本的判别,会影响判别结果。因此在对文本进行判别前,各模块要用不同的预处理方式将这些无用信息预处理掉,从而提高判别准确率和判别效率。

对一段文本而言,预处理的顺序不同,对文本的预处理结果可能也不同。因此,步骤s102中针对每一个模块,该模块下的不同预处理可以是:对文本进行去用户名称、去表情符号、去空格、去语气词、去标点符号等预处理中的部分或所有预处理,将该模块下的不同预处理进行排序后得到的预处理序列可以是去用户名称-去表情符号-去空格-去语气词,也可以是去空格-去语气词-去标点符号。本领域技术人员可以按照实际需要自行定义不同模块下所具有的预处理序列,本申请不对预处理序列作具体限定。

在一种具体实施例中,步骤s102中针对每一个模块,对该模块下的不同预处理进行排序,得到该模块的预处理序列可以通过如下步骤实现:将该模块下的不同预处理用标识区别标记,其中,不同模块的相同预处理应使用相同的标识,将被标记后的不同预处理进行排序,得到用标识来表示的该模块的预处理序列。示例性的,可以用数字标记不同预处理,例如用1、2、3分别作为去标点、去空格、去表情的标识,则若该模块的预处理序列为:去标点-去空格-去表情,则该模块的预处理序列就可以表示成:1-2-3,在该模块下对文本进行预处理时,可以按1-2-3的预处理序列对文本进行预处理。当第一个模块中都有“去标点”这一预处理时,若第一模块中“去标点”的标识是“1”,则若其他模块中也有“去标点”这一标识,则其他模块中,“去标点”的标识也应是“1”。对预处理的标识也可以是字母、字符串等各种形式的标识符号,本申请不对标识形式做限制,只要可实现对预处理的区别标记即可。由于标识简单、易被识别,当对模块中的预处理用标识标记后,服务器中的其他模块在获取该模块的预处理序列时,速度可以更快,从而进一步使文本判别速度更快。

s103:针对每一个模块的预处理序列,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;

所述经预处理序列的预处理子序列预处理过的文本指的是按该预处理序列的预处理顺序,每完成一次对文本的预处理后,所得到文本。例如,预处理序列为1-2-3-4,则该预处理序列的预处理子序列包括:1,1-2,1-2-3,1-2-3-4四个预处理子序列。在按预处理序列1-2-3-4对文本进行预处理时,会依次得到经1,1-2,1-2-3,1-2-3-4四个预处理子序列预处理过的文本。需要说明的是,预处理序列的预处理子序列应从预处理序列的开头划分,不可从预处理序列的中间划分。例如预处理子序列2-3,2-3-4均不是预处理序列1-2-3-4的预处理子序列。

所述其他模块的预处理序列的预处理子序列具体可以包括:其他模块的预处理序列的预处理子序列中与当前模块的预处理序列的预处理子序列相同的,且含有的用于预处理接收到的文本的预处理的数量最多的预处理子序列。由于在其他模块的预处理序列的预处理子序列中,可能会有多个与当前模块的预处理序列的预处理子序列相同的预处理子序列,此时,可以在与当前模块具有相同预处理子序列的其他模块的预处理子序列中,选择含有的用于预处理接收到的文本的预处理的数量最多的预处理子序列。例如,当前模块的预处理序列为1-2-4-6,若判断出存有的经其他模块的预处理序列的预处理子序列预处理过的文本为:经其他模块预处理序列的预处理子序列1,1-2,1-2-4预处理过的三个文本,则获取的文本为经其他模块预处理序列的预处理子序列1-2-4预处理过的文本。这样,可以最大限度地减少重复预处理,使文本预处理效率更高。

在实际应用中,上述经其他模块预处理序列的预处理子序列预处理过的文本可以存储在服务器的硬盘中,或者可以存储在服务器的缓存中,或者可以存放在与服务器连接的移动存储器中。当存储在服务器的缓存中时,可以使被预处理过的文本被快速获取,从而提高了对文本的判别速度。

在一种具体实施例中,步骤s103中,获取经其他模块预处理序列的预处理子序列预处理过的文本可以通过如下步骤实现:针对每一个模块的预处理序列,当该模块接收到文本后,先判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本;如果是,获取经其他模块预处理序列的预处理子序列预处理过的文本,其中,其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同。由于获取的文本是经过其他模块预处理过的文本,在当前模块中是对经过预处理的文本进行当前模块未被预处理过的部分的预处理,可以减少对文本的重复预处理,提升了预处理效率。

示例性的,若当前模块的预处理序列为1-2-4-6,则先判断是否存有经其他模块的预处理子序列1,1-2,1-2-4,1-2-4-6中任意一个预处理子序列预处理过的文本,若判断出有经其他模块的预处理子序列1预处理过的文本,就获取经其他模块的预处理子序列1预处理过的文本。

在一种具体实施例中,上述判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本可以通过如下步骤实现:按照当前模块的预处理序列的预处理子序列的用于预处理接收到的文本的预处理的数量由多到少的顺序,判断是否有存经其他模块预处理序列的预处理子序列预处理过的文本。在按照当前模块的预处理序列的预处理子序列的预处理的数量由多到少的顺序,判断出存有经其他模块预处理序列的预处理子序列预处理过的文本后,就停止判断。这样可以加快判断速度,同时保证判断出的被预处理过的文本是被其它模块的预处理子序列中含有的预处理的数量最多的预处理子序列预处理过的文本,从而可以最大限度地减少重复预处理,提升对文本的判别效率。

例如,当前模块的预处理序列为1-2-4-6,在判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本时,先判断是否存有经其他模块预处理序列的预处理子序列1-2-4-6预处理过的文本;若有,则获取经其他模块预处理序列的预处理子序列1-2-4-6预处理过的文本,停止判断;若没有,则继续判断是否存有经其他模块预处理序列的预处理子序列1-2-4预处理过的文本,若存有经其他模块预处理序列的预处理子序列1-2-4预处理过的文本,则获取经1-2-4预处理过的文本,停止判断;若没有经其他模块预处理序列的预处理子序列1-2-4预处理过的文本,则继续判断是否存有经其他模块预处理序列的预处理子序列1-2预处理过的文本,依次类推,直至判断至当前模块的预处理序列的最小预处理序列1。

s104:按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,所述剩余预处理部分为当前模块的预处理序列中未被其他模块的预处理子序列预处理过的预处理部分;

在一种具体实施例中,步骤s104中对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理可以通过如下步骤实现:

针对每一模块,当该模块获取了经其他模块预处理序列的预处理子序列预处理过的文本后,按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理;当判断出不存有经其他模块预处理序列的预处理子序列预处理过的文本,其中,其他模块预处理序列的预处理子序列与当前模块预处理序列的预处理子序列相同,则按当前模块的预处理序列对所接收到的文本进行预处理,并保存经当前预处理序列的每一预处理子序列预处理过的文本。获取经其他模块预处理子序列预处理过的文本继续进行预处理,能避免当前模块与其它模块对同一文本进行相同的预处理,简化了预处理过程,节省了预处理时间,提高了预处理速度与预处理效率。按预处理序列的预处理顺序对文本进行预处理,将预处理过程中,将经当前预处理序列的每一预处理子序列预处理过的文本保存后,保存后的文本可以被其他模块获取,使其他模块在预处理文本时速度更快。且经任意模块下的预处理序列或预处理子序列预处理过的文本,可以被多次调用来作为其他模块预设函数的参数值,提高了经预处理过的文本的复用率,进一步减少了重复计算,提高了判别速度和判别效率。

例如,针对当前模块,获取了经其他模块预处理序列的预处理子序列1-2预处理过的文本,当前模块的预处理序列为1-2-4-5,则对所获取的文本继续进行4-5序列的预处理。若判断出不存有经其他模块预处理序列的预处理子序列1,1-2,1-2-4,1-2-4-5任一序列预处理过的文本,则对接收到的文本按当前模块的预处理序列1-2-4-5对文本进行预处理,预处理过程中,分别保存经1,1-2,1-2-4,1-2-4-5四个预处理子序列预处理过的文本。

s105:针对每一个模块,将经该模块的预处理序列预处理过的文本按当前模块预设的函数进行计算,得到文本的属性;

在实际应用中,文本的属性可以为:中英文占比、分词后的单词长度、生僻字占比、语句通顺度或者其他用以表示文本属性的参考量,对文本的属性的解释不应作为对本申请实际保护范围的限制。

在一种具体实施例中,步骤s105中,得到文本的属性可以通过如下步骤实现:当完成对文本的预处理后,调用预设的函数,将经预处理过的文本作为所调用的函数的参数值,将函数的输出结果作为文本的属性。其中,预设的函数可以是开发人员预先写好的、具有某一具体功能的函数。例如该函数可以是:用来分析文本中英文占比的函数、计算文本中生僻字占比的函数、分析文本语句通顺度的函数等。关于预设的函数,本领域技术人员可以按照需要自己编写,用以实现所需的功能。编写具有一定功能的预设函数是本领域的公知常识,此处不再赘述。得到文本的属性后,可以根据文本属性来判别该文本是否是垃圾文本了。用户可以根据实际需要自定义预设函数,来得到不同的文本的属性,对文本的判别更灵活,适用性更广。

在另一种具体实施例中,步骤s105中,得到文本的属性可以通过如下步骤实现:判断是否存有与该模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性,所述其他模块的预设函数为与当前模块的预设函数相同的预设函数;如果是,获取与当前模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性;如果否,将当前模块的预处理序列预处理过的文本作为当前模块预设函数的参数,将当前模块预设函数的输出结果作为计算出的文本的属性,并将计算出的文本的属性保存。

在实际应用中,不同预处理模块中,可能会存在相同的预处理序列和相同的用于计算文本属性的预设函数。因此针对每一个模块,可以先判断是否存有与该模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性,其中,其他模块的预设函数与当前模块的预设函数相同,如果存有,就直接获取该文本的属性,如果没有,再将经该模块的预处理序列预处理过的文本按当前模块预设的函数进行计算,得到文本的属性。例如,若当前模块对文本的预处理序列是1-3-4,计算文本的属性的预设的函数是通顺度计算函数,若判断出存有经其他模块的预处理序列1-3-4预处理过的并经通顺度计算函数计算过的文本的属性,则,直接获取该文本的属性。在当前模块对文本进行计算时,若将计算出的文本的属性保存,可以使其他模块获取该计算出的文本属性。由于直接获取文本属性可以减少重复的计算,从而可以减少计算量,提高对文本的判别速度和效率。

在一种具体实施例中,还可以将步骤s105中得到的文本属性按如下步骤进行标记:可以将当前模块的预处理序列和当前模块预设的规则的函数名的哈希值,作为计算出的文本的属性的标识,将标记标识后的文本的属性保存。其中,哈希值是一段数据唯一且极其紧凑的数值表示形式,可以用于对复杂数据的唯一且简单标记。用哈希值作为文本属性的标识,可以使标记更简单,其他模块在获取时也能更简便快捷。

在一种具体实施例中,在步骤s105中得到文本的属性后,还可以包括如下步骤:将所得到的文本的属性作为预设的分析模型的参数,将所述预设的分析模型的输出结果作为对文本的分析结果。

在实际应用中,仅根据文本的属性来对一段文本进行判别,可能只能判别出少量的文本,因此,针对每一个模块所计算出的一个或多个文本的属性,可以将所计算出来的文本的属性用预设的分析模型来进一步分析。从而判别出更多的文本,提高判别效率。

在一种具体实施例中,上述预设的分析模型可以是回归分析模型regressionmodel。例如:逻辑回归模型logisticregression、多重线性回归模型multiplelinearregression。关于预设的分析模型的选择,任何用于分析一个/些变量相对于另一个/些变量的具体依赖关系的模型都可作为预设的分析模型,本申请不对预设的分析模型做具体限定,本领域技术人员可根据实际情况自行选择。由logisticregression模型预测结果是界于0和1之间的概率,预测结果容易被使用和解释,因此本申请优选logisticregression来作为预设的分析模型,可以提高根据分析结果做出对文本判别结果的速度。

例如,计算出的文本属性为:中文占比70%、英文占比30%、分词后的单词长度3个字符、生僻字占比9%、语句通顺度85%,则分别将70%、30%、3、9%、85%作为logisticregression模型的参数值,得到的结果如果是0.8,则0.8就是对文本的分析结果。

s106:根据每一个模块得到的文本的属性,做出对所述文本的判别结果。

由于根据文本的属性对垃圾文本进行判别时,判别指标比较生硬,因此,在一种具体实施例中,根据文本的属性做出的对文本的判别结果有两种:垃圾文本与未知文本,即当用文本的属性判别一段文本后,会得出该文本是垃圾文本还是未知文本两种结果,无法判别该段文本是否是非垃圾文本。这样可以召回更多的垃圾文本,提高垃圾文本的判别准确度。

在一种具体实施例中,步骤s106中做出对所述文本的判别结果可以按以下步骤实现:针对每一个模块,若当前模块根据文本的属性判别出该文本是垃圾文本,则终止对该文本的判别,直接将判别结果输出。这样就可以避免其他模块做重复判别的操作,节省了判别时间,提升了判别效率。

在另一种具体实施例中,步骤s106中做出对所述文本的判别结果可以按以下步骤实现:各模块根据当前模块得到的文本属性,做出对文本的是垃圾文本还是未知文本的判别结果,若其中有一个模块对文本的判别是垃圾文本,则对该文本的最终判别结果为垃圾文本,若所有模块对文本的判别结果都是未知文本,则对该文本的判别结果为未知文本,其中,未知文本指不确定该文本是不是垃圾文本。采用多个模块分别判别,可以提高对文本判别的准确度,也可以提高所判别出的垃圾文本的数量。

若每一个模块还对文本进行了分析,则在其他具体实施例中,步骤106中做出对所述文本的判别结果可以按以下步骤实现:根据每一个模块对文本的分析结果,得出对所述文本的判别结果。由于对文本按预设的模型进行分析后,分析结果可以对一段文本进行更准确的判别,从而使判别结果更准确与合理,所判别出的文本数量更多,判别效率更高。

在一种具体实施例中,上述根据对文本的分析结果得出对文本的判别结果可以按以下步骤实现:各模块根据当前模块得到的分析结果,做出对文本的是垃圾文本、非垃圾文本、未知文本的判别结果,若有一个模块对文本的判别结果是垃圾文本,则对该文本做出的最终判别结果就是垃圾文本;若有一个模块对文本的判别结果是非垃圾文本,且没有任何一个模块对文本的判别结果是垃圾文本,则对该文本做出的最终判别结果就是非垃圾文本;若所有模块对文本的判别结果都是未知文本,则该文本的判别结果为未知文本。其中,未知文本指不确定该文本是不是垃圾文本。采用多个模块分别判别,可以提高对文本判别的准确度,也可以提高所判别出的垃圾文本的数量。

如图2所示,是本发明实施例的垃圾文本判别装置的一种结构示意图,应用于服务器,该装置包括:

发送单元101,用于将接收到的文本发送给预先排序好的各模块按顺序进行判别;

排序单元102,用于针对每一个模块,将该模块下的不同预处理进行排序,得到该模块的预处理序列;

获取单元103,用于针对每一个模块的预处理序列,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;

在一种具体实施例中,获取单元103包括:文本判断子单元和文本获取子单元。

上述文本判断子单元,用于针对每一个模块的预处理序列,判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本;

在一种具体实施例中,上述判断子单元包括:顺序判断模块,用于按照当前模块的预处理序列的子序列的预处理的数量由多到少的顺序,判断是否存有经其他模块预处理序列的预处理子序列预处理过的文本。

上述文本获取子单元,用于当所述判断子单元的判断结果为是时,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同。

在一种具体实施例中,所述其他模块的预处理序列的预处理子序列为其他模块的预处理序列的预处理子序列中与当前模块的预处理序列的预处理子序列相同的,且含有的用于预处理接收到的文本的预处理的数量最多的预处理子序列。

预处理单元104,用于按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,所述剩余预处理部分为当前模块的预处理序列中未被其他模块的预处理子序列预处理过的预处理部分;

在一种具体实施例中,所述预处理单元104包括:

预处理子单元,用于当所述文本判断子单元的判断结果为是时,按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,当所述文本判断子单元的判断结果为否时,按当前模块的预处理序列对所接收到的文本进行预处理,并保存经当前预处理序列的每一预处理子序列预处理过的文本。

计算单元105,用于针对每一个模块,将经该模块的预处理序列预处理过的文本按当前模块预设的函数进行计算,得到文本的属性;

在一种具体实施例中,所述文本的属性包括:中英文占比、分词后的单词长度、生僻字占比、语句通顺度中的至少一个。

在一种具体实施例总,计算单元105包括:文本属性判断子单元,文本属性计算子单元和文本属性获取子单元。

所述文本属性判断子单元,用于针对每一个模块,判断是否存有与该模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性,所述其他模块的预设函数为与当前模块的预设函数相同的预设函数。

所述文本属性获取子单元,用于当所述文本属性判断子单元的判断结果为是时,获取与当前模块的预处理序列所对应的经其他模块的预设函数计算出的文本的属性。

所述文本属性计算子单元,用于当所述文本属性判断子单元的判断结果为否时,将当前模块的预处理序列预处理过的文本作为当前模块预设函数的参数,将当前模块预设函数的输出结果作为计算出的文本的属性,并将计算出的文本的属性保存。在一种具体实施例中,所述将计算出的文本的属性保存包括:将当前模块的预处理序列和当前模块预设的规则的函数名的哈希值,作为计算出的文本的属性的标识,将标记标识后的文本的属性保存。

判别单元106,用于根据每一个模块得到的文本的属性,做出对所述文本的判别结果。

在一种具体实施例中,所述装置还包括:分析单元,用于针对每一个模块,将所得到的文本的属性作为预设的分析模型的参数,将所述预设的分析模型的输出结果作为对文本的分析结果;所述判别单元106包括判别子单元,用于根据每一个模块对文本的分析结果,得出对所述文本的判别结果。

在一种具体实施例中,所述预设的分析模型可以为逻辑回归分析模型logisticregression。

可选的,在一种具体实现方式中,本发明实施例还提供了一种服务器,如图3所示,包括预处理器301、通信接口302、存储器303和通信总线304,其中,预处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,

存储器303,用于存放计算机程序;

预处理器301,用于执行存储器303上所存放的程序时,实现如下步骤:,实现如下步骤:

将接收到的文本发送给预先排序好的各模块按顺序进行判别;

针对每一个模块,将该模块下的不同预处理进行排序,得到该模块的预处理序列;

针对每一个模块的预处理序列,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;

按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,所述剩余预处理部分为当前模块的预处理序列中未被其他模块的预处理子序列预处理过的预处理部分;

针对每一个模块,将经该模块的预处理序列预处理过的文本按当前模块预设的函数进行计算,得到文本的属性;

根据每一个模块得到的文本的属性,做出对所述文本的判别结果。

本发明实施例还提供了一种计算机可读存储介质,应用服服务器,所述存储介质内存储有计算机程序,所述计算机程序被预处理器执行时实现如下步骤:

将接收到的文本发送给预先排序好的各模块按顺序进行判别;

针对每一个模块,将该模块下的不同预处理进行排序,得到该模块的预处理序列;

针对每一个模块的预处理序列,获取经其他模块预处理序列的预处理子序列预处理过的文本,所述其他模块的预处理序列的预处理子序列与当前模块的预处理序列的预处理子序列相同;

按当前模块的预处理序列对所获取的文本进行当前模块的预处理序列中剩余预处理部分的预处理,所述剩余预处理部分为当前模块的预处理序列中未被其他模块的预处理子序列预处理过的预处理部分;

针对每一个模块,将经该模块的预处理序列预处理过的文本按当前模块预设的函数进行计算,得到文本的属性;

根据每一个模块得到的文本的属性,做出对所述文本的判别结果。

由此可见,由于本发明实施例通过将接收到的文本发送给预先排序好的各模块按顺序进行判别,对任一模块的预处理序列,先获取经其他模块预处理序列的预处理子序列预处理过的文本,然后直接在该预处理过的文本的基础上按照当前模块的预处理序列继续对所获取的文本进行当前模块预处理序列中剩余预处理部分的预处理,可以充分利用之前模块的预处理结果,省去了重复预处理,从而减少了计算量,节约了cpu资源,提高了对垃圾文本的预处理效率。

上述服务器提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述服务器与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述预处理器的存储装置。

上述的预处理器可以是通用预处理器,包括中央预处理器(centralprocessingunit,cpu)、网络预处理器(networkprocessor,np)等;还可以是数字信号预处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

对于装置/服务器/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存有任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存有另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、服务器、存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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