消息分类方法和装置

申请号 CN201410850402.0 申请日 2014-12-30 公开(公告)号 CN104615653A 公开(公告)日 2015-05-13
申请人 小米科技有限责任公司; 发明人 秦秋平; 龙飞; 陈志军;
摘要 本公开是关于一种消息分类方法和装置,属于计算机技术领域。该方法包括:计算每个样本消息的特征值;按照特征值从大到小的顺序遍历,当第一样本消息的第一特征消息中正常样本消息所占比例大于第一预设 阈值 时,将第一样本消息的特征值作为第一分离阈值;按照特征值从小到大的顺序遍历,当第二样本消息的第二特征消息中垃圾样本消息所占比例大于第二预设阈值时,将第二样本消息的特征值作为第二分离阈值;将特征值大于第一分离阈值且小于第二分离阈值的样本消息作为下一层样本消息,重复执行上述步骤;基于得到的多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。本公开提高了分类准确率。
权利要求

1.一种消息分类方法,其特征在于,所述方法包括:
计算每个样本消息的特征值,所述特征值用于表示相应的样本消息是垃圾消息的可能性大小,样本消息包括正常样本消息和垃圾样本消息;
按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于所述第一样本消息的特征值的样本消息作为第一特征消息;当所述第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将所述第一样本消息的特征值作为第一分离阈值,所述第一分离阈值用于划分出正常消息;
按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于所述第二样本消息的特征值的样本消息作为第二特征消息;当所述第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将所述第二样本消息的特征值作为第二分离阈值,所述第二分离阈值用于划分出垃圾消息;
将特征值大于所述第一分离阈值且小于所述第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述确定第一分离阈值和第二分离阈值的步骤,得到下一层的第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值和第二分离阈值;
基于所述多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。
2.根据权利要求1所述的方法,其特征在于,所述计算每个样本消息的特征值包括:
根据每个样本消息的联系人信息、消息长度、文本结构、包含的特殊符号和关键词中的至少一项,获取每个样本消息的特征向量
根据每个样本消息的特征向量,应用以下公式,计算每个样本消息的特征值:
其中,Y表示分类集合,Y={c1,c2},c1表示垃圾消息,c2表示正常消息,X指代样本消息的特征向量,X={X1,X2…Xj…},j指代特征向量的维度,j为自然数,Xj指代第j个维度的特征向量,x表示当前样本消息的特征向量,x={x1,x2…xj…},xj表示当前样本消息的第j个维度的特征向量,PSN(X=x)表示当前样本消息的特征值,P(Xj=xj|Y=c1)表示垃圾样本消息中特征向量的第j个维度是xj的概率,P(Xj=xj|Y=c2)表示正常样本消息中特征向量的第j个维度是xj的概率。
3.根据权利要求1所述的方法,其特征在于,所述基于所述多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果包括:
当接收到任一消息时,根据所述消息的内容,计算所述消息的特征值;
对于每一层的第一分离阈值和第二分离阈值,当所述特征值不大于所述第一分离阈值时,确定所述消息为正常消息;或者,
当所述特征值不小于所述第二分离阈值时,确定所述消息为垃圾消息;或者,当所述特征值大于所述第一分离阈值且小于所述第二分离阈值时,基于下一层的第一分离阈值和第二分离阈值,继续对所述消息进行分类,直至得到所述分类结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于每一层的每个样本消息,根据所述样本消息对应的第一特征消息中正常样本消息的数目,以及所述样本消息对应的第二特征消息中垃圾样本消息的数目,计算分类准确率,所述分类准确率用于表示根据所述样本消息的特征值进行分类时的准确率;
将每一层中分类准确率最大的样本消息的特征值作为第三分离阈值,得到多层的第三分离阈值;
基于所述多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到所述分类结果。
5.根据权利要求4所述的方法,其特征在于,所述基于所述多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到所述分类结果包括:
对于每一层的第一分离阈值、第二分离阈值和第三分离阈值,当所述消息的特征值大于所述第一分离阈值且小于所述第三分离阈值时,将当前层作为所述消息的正常消息可能层;或者,当所述消息的特征值不小于所述第三分离阈值且小于所述第二分离阈值时,将当前层作为所述消息的垃圾消息可能层;
如果所述消息的特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值,获取所述消息的正常消息可能层的第一数目以及垃圾消息可能层的第二数目;
当所述第一数目大于所述第二数目时,确定所述消息为正常消息;或者,当所述第一数目小于所述第二数目时,确定所述消息为垃圾消息。
6.一种消息分类装置,其特征在于,所述装置包括:
特征值计算模,用于计算每个样本消息的特征值,所述特征值用于表示相应的样本消息是垃圾消息的可能性大小,样本消息包括正常样本消息和垃圾样本消息;
第一遍历模块,用于按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于所述第一样本消息的特征值的样本消息作为第一特征消息;当所述第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将所述第一样本消息的特征值作为第一分离阈值,所述第一分离阈值用于划分出正常消息;
第二遍历模块,用于按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于所述第二样本消息的特征值的样本消息作为第二特征消息;当所述第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将所述第二样本消息的特征值作为第二分离阈值,所述第二分离阈值用于划分出垃圾消息;
多层获取模块,用于将特征值大于所述第一分离阈值且小于所述第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述确定第一分离阈值和第二分离阈值的步骤,得到下一层的第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值和第二分离阈值;
分类模块,用于基于所述多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。
7.根据权利要求6所述的装置,其特征在于,所述特征值计算模块用于根据每个样本消息的联系人信息、消息长度、文本结构、包含的特殊符号和关键词中的至少一项,获取每个样本消息的特征向量;根据每个样本消息的特征向量,应用以下公式,计算每个样本消息的特征值:
其中,Y表示分类集合,Y={c1,c2},c1表示垃圾消息,c2表示正常消息,X指代样本消息的特征向量,X={X1,X2…Xj…},j指代特征向量的维度,j为自然数,Xj指代第j个维度的特征向量,x表示当前样本消息的特征向量,x={x1,x2…xj…},xj表示当前样本消息的第j个维度的特征向量,PSN(X=x)表示当前样本消息的特征值,P(Xj=xj|Y=c1)表示垃圾样本消息中特征向量的第j个维度是xj的概率,P(Xj=xj|Y=c2)表示正常样本消息中特征向量的第j个维度是xj的概率。
8.根据权利要求6所述的装置,其特征在于,所述分类模块用于当接收到任一消息时,根据所述消息的内容,计算所述消息的特征值;对于每一层的第一分离阈值和第二分离阈值,当所述特征值不大于所述第一分离阈值时,确定所述消息为正常消息;或者,当所述特征值不小于所述第二分离阈值时,确定所述消息为垃圾消息;或者,当所述特征值大于所述第一分离阈值且小于所述第二分离阈值时,基于下一层的第一分离阈值和第二分离阈值,继续对所述消息进行分类,直至得到所述分类结果。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
准确率计算模块,用于对于每一层的每个样本消息,根据所述样本消息对应的第一特征消息中正常样本消息的数目,以及所述样本消息对应的第二特征消息中垃圾样本消息的数目,计算分类准确率,所述分类准确率用于表示根据所述样本消息的特征值进行分类时的准确率;
第三阈值获取模块,用于将每一层中分类准确率最大的样本消息的特征值作为第三分离阈值,得到多层的第三分离阈值;
所述分类模块,还用于基于所述多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到所述分类结果。
10.根据权利要求9所述的装置,其特征在于,所述分类模块还用于对于每一层的第一分离阈值、第二分离阈值和第三分离阈值,当所述消息的特征值大于所述第一分离阈值且小于所述第三分离阈值时,将当前层作为所述消息的正常消息可能层;或者,当所述消息的特征值不小于所述第三分离阈值且小于所述第二分离阈值时,将当前层作为所述消息的垃圾消息可能层;如果所述消息的特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值,获取所述消息的正常消息可能层的第一数目以及垃圾消息可能层的第二数目;当所述第一数目大于所述第二数目时,确定所述消息为正常消息;或者,当所述第一数目小于所述第二数目时,确定所述消息为垃圾消息。
11.一种消息分类装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器
其中,所述处理器被配置为:
计算每个样本消息的特征值,所述特征值用于表示相应的样本消息是垃圾消息的可能性大小,样本消息包括正常样本消息和垃圾样本消息;
按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于所述第一样本消息的特征值的样本消息作为第一特征消息;当所述第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将所述第一样本消息的特征值作为第一分离阈值,所述第一分离阈值用于划分出正常消息;
按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于所述第二样本消息的特征值的样本消息作为第二特征消息;当所述第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将所述第二样本消息的特征值作为第二分离阈值,所述第二分离阈值用于划分出垃圾消息;
将特征值大于所述第一分离阈值且小于所述第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述确定第一分离阈值和第二分离阈值的步骤,得到下一层的第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值和第二分离阈值;
基于所述多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。

说明书全文

消息分类方法和装置

技术领域

[0001] 本公开是关于计算机技术领域,具体来说是关于消息分类方法和装置。

背景技术

[0002] 随着智能手机的普及,短信的应用越来越广泛,已经成为日常生活中常用的交流方式。然而,短信不仅为用户提供了便利,也为用户带来了困扰。很多商家、机构或者个人为了广告宣传或者诈骗钱财等原因,会给用户发送其不需要的短信,使得用户经常收到垃圾短信,严重影响了用户的正常生活。
[0003] 为了避免打扰用户,可以选取若干个正常短信和垃圾短信,作为样本短信,获取每个样本短信的特征向量,对于每个样本短信,根据该样本短信的特征向量,计算该样本短信是垃圾短信的概率,根据每个样本短信是垃圾短信的概率以及每个样本短信的实际类别进行训练,确定概率阈值。每当接收到一条未知类别的短信时,可以根据该短信的特征向量,计算该短信是垃圾短信的概率,当计算出的概率大于该概率阈值时,确定该短信是垃圾短信,则对该短信进行过滤,使得用户不会看到该短信。发明内容
[0004] 为了解决相关技术中存在的问题,本公开提供了一种消息分类方法和装置。所述技术方案如下:
[0005] 根据本公开实施例的第一方面,提供了一种消息分类方法,所述方法包括:
[0006] 计算每个样本消息的特征值,所述特征值用于表示相应的样本消息是垃圾消息的可能性大小,样本消息包括正常样本消息和垃圾样本消息;
[0007] 按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于所述第一样本消息的特征值的样本消息作为第一特征消息;当所述第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将所述第一样本消息的特征值作为第一分离阈值,所述第一分离阈值用于划分出正常消息;
[0008] 按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于所述第二样本消息的特征值的样本消息作为第二特征消息;当所述第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将所述第二样本消息的特征值作为第二分离阈值,所述第二分离阈值用于划分出垃圾消息;
[0009] 将特征值大于所述第一分离阈值且小于所述第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述确定第一分离阈值和第二分离阈值的步骤,得到下一层的第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值和第二分离阈值;
[0010] 基于所述多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。
[0011] 在另一实施例中,所述计算每个样本消息的特征值包括:
[0012] 根据每个样本消息的联系人信息、消息长度、文本结构、包含的特殊符号和关键词中的至少一项,获取每个样本消息的特征向量;
[0013] 根据每个样本消息的特征向量,应用以下公式,计算每个样本消息的特征值:
[0014]
[0015] 其中,Y表示分类集合,Y={c1,c2},c1表示垃圾消息,c2表示正常消息,X指代样本消息的特征向量,X={X1,X2…Xj…},j指代特征向量的维度,j为自然数,Xj指代第j个维度的特征向量,x表示当前样本消息的特征向量,x={x1,x2…xj…},xj表示当前样本消息的第j个维度的特征向量,PSN(X=x)表示当前样本消息的特征值,P(Xj=xj|Y=c1)表示垃圾样本消息中特征向量的第j个维度是xj的概率,P(Xj=xj|Y=c2)表示正常样本消息中特征向量的第j个维度是xj的概率。
[0016] 在另一实施例中,所述基于所述多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果包括:
[0017] 当接收到任一消息时,根据所述消息的内容,计算所述消息的特征值;
[0018] 对于每一层的第一分离阈值和第二分离阈值,当所述特征值不大于所述第一分离阈值时,确定所述消息为正常消息;或者,
[0019] 当所述特征值不小于所述第二分离阈值时,确定所述消息为垃圾消息;或者,[0020] 当所述特征值大于所述第一分离阈值且小于所述第二分离阈值时,基于下一层的第一分离阈值和第二分离阈值,继续对所述消息进行分类,直至得到所述分类结果。
[0021] 在另一实施例中,所述方法还包括:
[0022] 对于每一层的每个样本消息,根据所述样本消息对应的第一特征消息中正常样本消息的数目,以及所述样本消息对应的第二特征消息中垃圾样本消息的数目,计算分类准确率,所述分类准确率用于表示根据所述样本消息的特征值进行分类时的准确率;
[0023] 将每一层中分类准确率最大的样本消息的特征值作为第三分离阈值,得到多层的第三分离阈值;
[0024] 基于所述多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到所述分类结果。
[0025] 在另一实施例中,所述基于所述多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到所述分类结果包括:
[0026] 对于每一层的第一分离阈值、第二分离阈值和第三分离阈值,当所述消息的特征值大于所述第一分离阈值且小于所述第三分离阈值时,将当前层作为所述消息的正常消息可能层;或者,当所述消息的特征值不小于所述第三分离阈值且小于所述第二分离阈值时,将当前层作为所述消息的垃圾消息可能层;
[0027] 如果所述消息的特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值,获取所述消息的正常消息可能层的第一数目以及垃圾消息可能层的第二数目;
[0028] 当所述第一数目大于所述第二数目时,确定所述消息为正常消息;或者,[0029] 当所述第一数目小于所述第二数目时,确定所述消息为垃圾消息。
[0030] 根据本公开实施例的第二方面,提供了一种消息分类装置,所述装置包括:
[0031] 特征值计算模,用于计算每个样本消息的特征值,所述特征值用于表示相应的样本消息是垃圾消息的可能性大小,样本消息包括正常样本消息和垃圾样本消息;
[0032] 第一遍历模块,用于按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于所述第一样本消息的特征值的样本消息作为第一特征消息;当所述第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将所述第一样本消息的特征值作为第一分离阈值,所述第一分离阈值用于划分出正常消息;
[0033] 第二遍历模块,用于按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于所述第二样本消息的特征值的样本消息作为第二特征消息;当所述第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将所述第二样本消息的特征值作为第二分离阈值,所述第二分离阈值用于划分出垃圾消息;
[0034] 多层获取模块,用于将特征值大于所述第一分离阈值且小于所述第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述确定第一分离阈值和第二分离阈值的步骤,得到下一层的第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值和第二分离阈值;
[0035] 分类模块,用于基于所述多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。
[0036] 在另一实施例中,所述特征值计算模块用于根据每个样本消息的联系人信息、消息长度、文本结构、包含的特殊符号和关键词中的至少一项,获取每个样本消息的特征向量;根据每个样本消息的特征向量,应用以下公式,计算每个样本消息的特征值:
[0037]
[0038] 其中,Y表示分类集合,Y={c1,c2},c1表示垃圾消息,c2表示正常消息,X指代样本消息的特征向量,X={X1,X2…Xj…},j指代特征向量的维度,j为自然数,Xj指代第j个维度的特征向量,x表示当前样本消息的特征向量,x={x1,x2…xj…},xj表示当前样本消息的第j个维度的特征向量,PSN(X=x)表示当前样本消息的特征值,P(Xj=xj|Y=c1)表示垃圾样本消息中特征向量的第j个维度是xj的概率,P(Xj=xj|Y=c2)表示正常样本消息中特征向量的第j个维度是xj的概率。
[0039] 在另一实施例中,所述分类模块用于当接收到任一消息时,根据所述消息的内容,计算所述消息的特征值;对于每一层的第一分离阈值和第二分离阈值,当所述特征值不大于所述第一分离阈值时,确定所述消息为正常消息;或者,当所述特征值不小于所述第二分离阈值时,确定所述消息为垃圾消息;或者,当所述特征值大于所述第一分离阈值且小于所述第二分离阈值时,基于下一层的第一分离阈值和第二分离阈值,继续对所述消息进行分类,直至得到所述分类结果。
[0040] 在另一实施例中,所述装置还包括:
[0041] 准确率计算模块,用于对于每一层的每个样本消息,根据所述样本消息对应的第一特征消息中正常样本消息的数目,以及所述样本消息对应的第二特征消息中垃圾样本消息的数目,计算分类准确率,所述分类准确率用于表示根据所述样本消息的特征值进行分类时的准确率;
[0042] 第三阈值获取模块,用于将每一层中分类准确率最大的样本消息的特征值作为第三分离阈值,得到多层的第三分离阈值;
[0043] 所述分类模块,还用于基于所述多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到所述分类结果。
[0044] 在另一实施例中,所述分类模块还用于对于每一层的第一分离阈值、第二分离阈值和第三分离阈值,当所述消息的特征值大于所述第一分离阈值且小于所述第三分离阈值时,将当前层作为所述消息的正常消息可能层;或者,当所述消息的特征值不小于所述第三分离阈值且小于所述第二分离阈值时,将当前层作为所述消息的垃圾消息可能层;如果所述消息的特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值,获取所述消息的正常消息可能层的第一数目以及垃圾消息可能层的第二数目;当所述第一数目大于所述第二数目时,确定所述消息为正常消息;或者,当所述第一数目小于所述第二数目时,确定所述消息为垃圾消息。
[0045] 根据本公开实施例的第三方面,提供了一种消息分类装置,包括:
[0046] 处理器;
[0047] 用于存储处理器可执行指令的存储器
[0048] 其中,所述处理器被配置为:
[0049] 计算每个样本消息的特征值,所述特征值用于表示相应的样本消息是垃圾消息的可能性大小,样本消息包括正常样本消息和垃圾样本消息;
[0050] 按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于所述第一样本消息的特征值的样本消息作为第一特征消息;当所述第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将所述第一样本消息的特征值作为第一分离阈值,所述第一分离阈值用于划分出正常消息;
[0051] 按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于所述第二样本消息的特征值的样本消息作为第二特征消息;当所述第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将所述第二样本消息的特征值作为第二分离阈值,所述第二分离阈值用于划分出垃圾消息;
[0052] 将特征值大于所述第一分离阈值且小于所述第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述确定第一分离阈值和第二分离阈值的步骤,得到下一层的第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值和第二分离阈值;
[0053] 基于所述多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。
[0054] 本公开的实施例提供的技术方案可以包括以下有益效果:
[0055] 本实施例提供的方法和装置,通过根据每个样本消息的特征值,确定第一分离阈值和第二分离阈值,将特征值大于该第一分离阈值且小于该第二分离阈值的样本消息作为下一层样本消息,继续确定下一层的第一分离阈值和第二分离阈值,最终得到多层第一分离阈值和第二分离阈值。在每一层以该第一分离阈值和该第二分离阈值对接收到的消息进行分类,且基于下一层的第一分离阈值和第二分离阈值对上一层未分类的消息继续进行分类,提高了分类准确率。
[0056] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。附图说明
[0057] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0058] 图1是根据一示例性实施例示出的一种消息分类方法的流程图
[0059] 图2是根据一示例性实施例示出的一种消息分类方法的流程图;
[0060] 图3是根据一示例性实施例示出的分类模型示意图;
[0061] 图4是根据一示例性实施例示出的一种消息分类装置的框图
[0062] 图5是根据一示例性实施例示出的另一种消息分类装置的框图;
[0063] 图6是根据一示例性实施例示出的一种用于消息分类的装置的框图。

具体实施方式

[0064] 为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
[0065] 本公开实施例提供一种消息分类方法和装置,以下结合附图对本公开进行详细说明。
[0066] 图1是根据一示例性实施例示出的一种消息分类方法的流程图,如图1所示,包括以下步骤:
[0067] 在步骤101中,计算每个样本消息的特征值,该特征值用于表示相应的样本消息是垃圾消息的可能性大小,样本消息包括正常样本消息和垃圾样本消息。
[0068] 在实际应用中,用户经常会收到正常消息或者垃圾消息,且正常消息与垃圾消息之间没有绝对的界限,目前用户订阅的很多正常消息的内容越来越像垃圾消息,收到的很多垃圾消息的内容也越来越像正常消息,如用户订阅的商品推荐消息很容易被认为是垃圾消息,而很多垃圾消息中会添加很多表情符号或者标点,则很容易被认为是正常消息。正常消息和垃圾消息的内容越来越相似,容易导致分类错误。
[0069] 为了便于后续对接收到的消息进行分类,可以先获取样本消息,这些样本消息中包括正常样本消息,也包括垃圾样本消息。对于一个正常样本消息来说,从该样本消息的内容来看,该样本消息还可能是垃圾消息,而对于一个垃圾样本消息来说,从该样本消息的内容来看,该样本消息还可能是正常消息。则计算该样本消息的特征值,该特征值可以表示该样本消息是垃圾消息的可能性大小,该特征值越大,表示该样本消息是垃圾消息的可能性越大,该特征值越小,表示该样本消息是正常消息的可能性越大。
[0070] 在步骤102中,按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于该第一样本消息的特征值的样本消息作为第一特征消息;当该第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将该第一样本消息的特征值作为第一分离阈值,该第一分离阈值用于划分出正常消息。
[0071] 本实施例中,该第一分离阈值用于划分出正常消息,也即是,该第一分离阈值用于表示特征值不大于该第一分离阈值的消息是正常消息。该第一分离阈值可以根据每个样本消息的特征值以及该第一预设阈值确定,其中,该第一预设阈值可以预先根据分类精确度的需求设定,例如该第一预设阈值可以为[0.95,0.99]范围内的值,本实施例对此不做限定。
[0072] 在步骤103中,按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于该第二样本消息的特征值的样本消息作为第二特征消息;当该第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将该第二样本消息的特征值作为第二分离阈值,该第二分离阈值用于划分出垃圾消息。
[0073] 在本实施例中,该第二分离阈值用于划分出垃圾消息,也即是,该第二分离阈值用于表示特征值不小于该第二分离阈值的消息是垃圾消息。该第二分离阈值可以根据每个样本消息的特征值以及该第二预设阈值确定,其中,该第二预设阈值可以预先根据分类精确度的需求设定,例如该第二预设阈值可以为[0.95,0.99]范围内的值,本实施例对此不做限定。
[0074] 在步骤104中,将特征值大于该第一分离阈值且小于该第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述确定第一分离阈值和第二分离阈值的步骤,得到下一层的第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值和第二分离阈值。
[0075] 当获取到该第一分离阈值和该第二分离阈值时,可以认为特征值不大于该第一分离阈值的消息是正常消息,特征值不小于该第二分离阈值的消息是垃圾消息。而对于特征值大于该第一分离阈值且小于该第二分离阈值的消息,很难明确的区分该消息是正常消息还是垃圾消息,则为了提高分类准确率,在分类训练的过程中,特征值大于该第一分离阈值且小于该第二分离阈值的样本消息不会直接被划分为正常消息或者划分为垃圾消息,而是作为下一层样本消息,继续进行训练,即基于下一层样本消息,继续执行上述步骤102和103,得到第一分离阈值和第二分离阈值,以此类推,每一层都可以得到第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,不再对这些剩余的样本消息执行上述步骤102和103。
[0076] 在步骤105中,基于该多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。
[0077] 当获取到多层的第一分离阈值和第二分离阈值之后,即可基于该多层的第一分离阈值和第二分离阈值,建立分类模型,每当接收到一条消息时,获取该消息的特征值,作为该分类模型的输入,根据该分类模型,对该消息进行分类,输出分类结果,以判断该消息是正常消息还是垃圾消息。
[0078] 本实施例提供的方法,通过根据每个样本消息的特征值,确定第一分离阈值和第二分离阈值,将特征值大于该第一分离阈值且小于该第二分离阈值的样本消息作为下一层样本消息,继续确定下一层的第一分离阈值和第二分离阈值,最终得到多层第一分离阈值和第二分离阈值。在每一层以该第一分离阈值和该第二分离阈值对接收到的消息进行分类,且基于下一层的第一分离阈值和第二分离阈值对上一层未分类的消息继续进行分类,提高了分类准确率。
[0079] 在另一实施例中,该计算每个样本消息的特征值包括:
[0080] 根据每个样本消息的联系人信息、消息长度、文本结构、包含的特殊符号和关键词中的至少一项,获取每个样本消息的特征向量;
[0081] 根据每个样本消息的特征向量,应用以下公式,计算每个样本消息的特征值:
[0082]
[0083] 其中,Y表示分类集合,Y={c1,c2},c1表示垃圾消息,c2表示正常消息,X指代样本消息的特征向量,X={X1,X2…Xj…},j指代特征向量的维度,j为自然数,Xj指代第j个维度的特征向量,x表示当前样本消息的特征向量,x={x1,x2…xj…},xj表示当前样本消息的第j个维度的特征向量,PSN(X=x)表示当前样本消息的特征值,P(Xj=xj|Y=c1)表示垃圾样本消息中特征向量的第j个维度是xj的概率,P(Xj=xj|Y=c2)表示正常样本消息中特征向量的第j个维度是xj的概率。
[0084] 在另一实施例中,该基于该多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果包括:
[0085] 当接收到任一消息时,根据该消息的内容,计算该消息的特征值;
[0086] 对于每一层的第一分离阈值和第二分离阈值,当该特征值不大于该第一分离阈值时,确定该消息为正常消息;或者,
[0087] 当该特征值不小于该第二分离阈值时,确定该消息为垃圾消息;或者,[0088] 当该特征值大于该第一分离阈值且小于该第二分离阈值时,基于下一层的第一分离阈值和第二分离阈值,继续对该消息进行分类,直至得到该分类结果。
[0089] 在另一实施例中,该方法还包括:
[0090] 对于每一层的每个样本消息,根据该样本消息对应的第一特征消息中正常样本消息的数目,以及该样本消息对应的第二特征消息中垃圾样本消息的数目,计算分类准确率,该分类准确率用于表示根据该样本消息的特征值进行分类时的准确率;
[0091] 将每一层中分类准确率最大的样本消息的特征值作为第三分离阈值,得到多层的第三分离阈值;
[0092] 基于该多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到该分类结果。
[0093] 在另一实施例中,该基于该多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到该分类结果包括:
[0094] 对于每一层的第一分离阈值、第二分离阈值和第三分离阈值,当该消息的特征值大于该第一分离阈值且小于该第三分离阈值时,将当前层作为该消息的正常消息可能层;或者,当该消息的特征值不小于该第三分离阈值且小于该第二分离阈值时,将当前层作为该消息的垃圾消息可能层;
[0095] 如果该消息的特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值,获取该消息的正常消息可能层的第一数目以及垃圾消息可能层的第二数目;
[0096] 当该第一数目大于该第二数目时,确定该消息为正常消息;或者,[0097] 当该第一数目小于该第二数目时,确定该消息为垃圾消息。
[0098] 上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
[0099] 图2是根据一示例性实施例示出的一种消息分类方法的流程图,如图2所示,该消息分类方法用于分类装置中,包括以下步骤:
[0100] 在步骤201中,该分类装置获取样本消息,计算每个样本消息的特征值。
[0101] 在本实施例中,该样本消息可以为两个终端之间传递的短信,还可以即时通信服务器向终端推送的即时通信消息,或者其他应用服务器向终端推送的消息,如网络购物服务器向终端推送的商品推荐消息等,该分类装置可以获取多个终端的消息,作为样本消息,本实施例对此不做限定。
[0102] 样本消息可能会包含特殊符号,如URL(Uniform Resource Locator,统一资源标识符)、行卡号或者邮箱地址等,样本消息还可能会包括多个关键词,如“转账”、“优惠活动”等词汇,样本消息的发送方可以为某一电话号码、某一机构号码或者某一用户账号,如电话号码138XXXX4415、机构号码10086或者106954812545441,用户账号kingsley等,样本消息的接收方可以为一个或多个电话号码或者一个或多个用户账号,样本消息的消息长度可长可短,样本消息可以包括多个段落或者包括多个并列结构的句子等。该分类装置可以根据该样本消息的联系人信息、消息长度、文本结构、包含的特殊符号和关键词中的至少一项,获取特征向量。
[0103] 例如,该分类装置可以根据该样本消息的发送方的号码类型或者接收方的数目获取特征向量,根据该样本消息的消息长度的大小获取特征向量,根据该样本消息中包括的特殊符号获取特征向量,或者,对该样本消息进行分词,得到多个关键词,如果根据每个关键词获取特征向量会导致特征向量过大,则可以根据每个关键词的权重,筛选出多个权重较大的关键词,根据筛选出的关键词获取特征向量。其中,每个关键词的权重可以根据每个关键词的词频确定,本实施例对此不做限定。当然,该分类装置还可以根据样本消息的其他信息,获取特征向量,本实施例对此也不限定。
[0104] 当该分类装置获取到该样本消息对应的多个特征向量时,可以将该多个特征向量进行组合,得到该样本消息的特征向量,再根据该特征向量,计算该样本消息的特征值。
[0105] 该分类装置可以根据该特征向量,应用以下公式,计算该样本消息的特征值:
[0106]
[0107] 其中,Y表示分类集合,Y={c1,c2},c1表示垃圾消息,c2表示正常消息,X指代样本消息的特征向量,X={X1,X2…Xj…},j指代特征向量的维度,j为自然数,Xj指代第j个维度的特征向量,x表示当前样本消息的特征向量,x={x1,x2…xj…},xj表示当前样本消息的第j个维度的特征向量,PSN(X=x)表示当前样本消息的特征值,P(Xj=xj|Y=c1)表示垃圾样本消息中特征向量的第j个维度是xj的概率,P(Xj=xj|Y=c2)表示正常样本消息中特征向量的第j个维度是xj的概率。
[0108] 根据朴素贝叶斯算法的条件独立性假设,样本消息的后验概率为:
[0109]
[0110] 则垃圾样本消息与正常样本消息的后验概率的比例为:
[0111]
[0112] 其中,P(Y=c1|X=x)表示当前样本消息是垃圾消息的概率,P(Y=c2|X=x)表示当前样本消息是正常消息的概率,P(Y=c1)和P(Y=c2)是垃圾消息和正常消息的先验概率,与每个实际的样本消息无关,因此定义该样本消息的垃圾消息/正常消息的比例为:
[0113]
[0114] 将该样本消息的垃圾消息/正常消息的比例作为该样本消息的特征值,则可以看出,该特征值越大,表示该样本消息是垃圾消息的可能性越大,该特征值越小,表示该样本消息是正常消息的可能性越大。
[0115] 当然,该分类装置还可以采用其他的算法,根据该样本消息的特征向量,计算特征值,本实施例对此不做限定。
[0116] 在步骤202中,该分类装置按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于该第一样本消息的特征值的样本消息作为第一特征消息;当该第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将该第一样本消息的特征值作为第一分离阈值。
[0117] 为了确定该第一分离阈值,该分类装置可以按照特征值从大到小的顺序,依次遍历每个样本消息。对于每个当前遍历到的第一样本消息,将特征值小于该第一样本消息的特征值的样本消息作为第一特征消息,获取该第一特征消息的数目,以及该第一特征消息中正常样本消息的数目,从而计算出该第一特征消息中正常样本消息所占的比例。那么,在该遍历过程中,随着遍历到的第一样本消息的特征值越来越小,第一特征消息中正常样本消息所占的比例也越来越大,如果当前遍历到的第一样本消息所对应的比例不大于该第一预设阈值时,继续按照顺序遍历下一个样本消息,而如果当前遍历到的第一样本消息所对应的比例大于该第一预设阈值时,可以将该第一样本消息的特征值作为第一分离阈值。此时,可以停止本次遍历过程,不再遍历剩余的样本消息。
[0118] 在步骤203中,该分类装置按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于该第二样本消息的特征值的样本消息作为第二特征消息;当该第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将该第二样本消息的特征值作为第二分离阈值。
[0119] 为了确定该第二分离阈值,该分类装置可以按照特征值从小到大的顺序,依次遍历每个样本消息。对于每个当前遍历到的第二样本消息,将特征值大于该第二样本消息的特征值的样本消息作为第二特征消息,获取该第二特征消息的数目,以及该第二特征消息中垃圾样本消息的数目,从而计算出该第二特征消息中垃圾样本消息所占的比例。那么,在遍历过程中,随着遍历到的第二样本消息的特征值越来越大,第二特征消息中垃圾样本消息所占的比例越来越大,如果当前遍历到的第二样本消息所对应的比例不大于该第二预设阈值时,继续按照顺序遍历下一个样本消息,而如果当前遍历到的第二样本消息所对应的比例大于该第二预设阈值时,可以将该第二样本消息的特征值作为第二分离阈值。此时,可以停止本次遍历过程,不再遍历剩余的样本消息。
[0120] 上述步骤202和203之间没有必然的时序关系,该步骤202可以在步骤203之前执行,或者在步骤203之后执行,或者与步骤203同时执行,本实施例对此不做限定。
[0121] 在步骤204中,对于每个样本消息,该分类装置根据该样本消息对应的第一特征消息中正常样本消息的数目,以及该样本消息对应的第二特征消息中垃圾样本消息的数目,计算分类准确率,将分类准确率最大的样本消息的特征值作为第三分离阈值。
[0122] 本实施例以该分类装置执行该步骤202,确定当前遍历到的第一样本消息所对应的比例大于该第一预设阈值之后,停止本次遍历过程,以及执行该步骤203,确定当前遍历到的第二样本消息所对应的比例大于该第二预设阈值之后,停止本次遍历过程为例进行说明,实际上,该分类装置可以继续进行遍历,对于遍历到的每个样本消息,将特征值小于该样本消息的特征值的样本消息作为第一特征消息,将特征值大于该样本消息的特征值的样本消息作为第二特征消息,则若是将该样本消息的特征值作为阈值对样本消息进行分类,该第一特征消息会被划分为正常消息,第二特征消息会被划分为垃圾消息,那么,该第一特征消息中的正常样本消息为分类正确的消息,该第一特征消息中的垃圾样本消息为分类错误的消息,该第二特征消息中的垃圾样本消息为分类正确的消息,该第二特征消息中的正常消息样本为分类错误的消息。该分类装置可以获取第一特征消息中正常样本消息的数目,以及该第二特征消息中垃圾样本消息的数目,根据获取到的数目,计算分类准确率,该分类准确率用于表示根据该样本消息的特征值进行分类时的准确率。
[0123] 例如,该分类装置可以计算该第一特征消息中正常样本消息的数目与该第二特征消息中垃圾样本消息的数目的和值,作为该分类准确率,或者,将该和值与样本消息的数目之间的比例作为该分类准确率。或者,该分类装置还可以根据该第一特征消息的数目以及该第一特征消息中正常样本消息的数目,计算该第一特征消息中正常样本消息所占的第一比例,根据该第二特征消息的数目以及该第二特征消息中垃圾样本消息的数目,计算该第二特征消息中垃圾样本消息所占的第二比例,将该第一比例与该第二比例的和值作为该分类准确率,本实施例对此不做限定。
[0124] 当已获取到每个样本消息的分类准确率时,将分类准确率最大的样本消息的特征值作为第三分离阈值,表示以该第三分离阈值对样本消息进行分类时,分类结果最准确。后续过程中,该分类装置可以根据该第三分离阈值,判断接收到的消息是正常消息或者垃圾消息的可能性。
[0125] 需要说明的是,该步骤204为可选步骤,本实施例以该分类装置在获取到该第一分离阈值和该第二分离阈值后,执行步骤204为例,而在实际应用中,该分类装置在获取到该第一分离阈值和该第二分离阈值后,还可以不执行步骤204,直接获取下一层的第一分离阈值和第二分离阈值,最终得到多层的第一分离阈值和第二分离阈值,根据该多层的第一分离阈值和第二分离阈值建立分类模型,本实施例对该分类装置是否执行步骤204不做限定。
[0126] 在步骤205中,该分类装置将特征值大于该第一分离阈值且小于该第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述步骤202至204,得到下一层的第一分离阈值、第二分离阈值和第三分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值、第二分离阈值和第三分离阈值。
[0127] 该分类装置根据该第一分离阈值,可以划分出特征值不大于该第一分离阈值的正常消息,根据该第二分离阈值,可以划分出特征值不小于该第二分离阈值的垃圾消息,但是,对于特征值大于该第一分离阈值且小于该第二分离阈值的消息,该分类装置根据该第一分离阈值和该第二分离阈值,无法确定该消息的分类结果。
[0128] 为了提高分类准确率,该分类装置将特征值大于该第一分离阈值且小于该第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述步骤202至204,得到下一层的第一分离阈值、第二分离阈值和第三分离阈值。以此类推,该分类装置可以获取到多层的第一分离阈值、第二分离阈值和第三分离阈值。
[0129] 该分类装置可以预先确定该预设数目,该预设数目用于表示样本消息的最小数目,每当该分类装置获取到剩余的特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息时,确定剩余样本消息的数目,判断该数目是否小于该预设数目,当该数目小于该预设数目时停止,不再获取下一层的第一分离阈值、第二分离阈值和第三分离阈值。其中,该预设数目可以由该分类装置根据分类精确度的需求和计算量预先确定,本实施例对此不做限定。
[0130] 在本实施例中,不同层的第一预设阈值和第二预设阈值可以相同,也可以不同,本实施例对此不做限定。每一层的第一分离阈值与该第一预设阈值相互关联,该第二分离阈值与该第二预设阈值相互关联,通过调整该第一预设阈值可以调整该第一分离阈值,通过调整该第二预设阈值可以调整该第二分离阈值,最终能够对分类模型的总层数进行调整。该分类模型的总层数过多会造成训练数据过拟合,总层数过少会造成分类准确率低,则该分类装置可以根据分类需求,调整该第一预设阈值和该第二预设阈值,从而调整该分类模型的总层数。
[0131] 在步骤206中,当该分类装置接收到任一消息时,计算该消息的特征值,执行步骤207、208、209或者210。
[0132] 该分类装置获取到多层的第一分离阈值、第二分离阈值和第三分离阈值时,可以根据该多层的第一分离阈值、第二分离阈值和第三分离阈值,建立分类模型,该分类模型包括多层,每层包括第一分离阈值、第二分离阈值和第三分离阈值。在后续过程中,当该分类装置接收到一条消息时,可以计算该消息的特征值,根据该消息的特征值和该分类模型,对该消息进行分类,判断该消息是正常消息还是垃圾消息。
[0133] 当该分类装置计算出该消息的特征值时,将该特征值作为该分类模型的输入,从该分类模型的第一层开始,对于每一层的第一分离阈值和第二分离阈值,该分类装置将该特征值与该第一分离阈值和该第二分离阈值分别进行比较。
[0134] 在步骤207中,对于每一层的第一分离阈值和第二分离阈值,当该特征值不大于该第一分离阈值时,该分类装置确定该消息为正常消息,结束。
[0135] 在步骤208中,当该特征值不小于该第二分离阈值时,该分类装置确定该消息为垃圾消息,结束。
[0136] 在步骤209中,当该特征值大于该第一分离阈值且小于该第三分离阈值时,该分类装置将当前层作为该消息的正常消息可能层,执行步骤211或者步骤212。
[0137] 在步骤210中,当该消息的特征值不小于该第三分离阈值且小于该第二分离阈值时,该分类装置将当前层作为该消息的垃圾消息可能层,执行步骤211或者步骤212。
[0138] 当该消息的特征值大于该第一分离阈值且小于该第二分离阈值时,该消息可能是正常消息,也可能是垃圾消息,此时根据该第一分离阈值和该第二分离阈值不能得到该消息的分类结果,则可以进入下一层,根据下一层的第一分离阈值和第二分离阈值,继续对该消息进行分类。
[0139] 为了在所有层都未得到该消息的分类结果时能够对该消息进行分类,在当前层该分类装置可以判断该特征值是否小于该第三分离阈值。当该特征值大于该第一分离阈值且小于该第三分离阈值时,表示该消息很可能是正常消息,则将当前层作为该消息的正常消息可能层,表示当前层的“投票”为该消息可能是正常消息,而当该消息的特征值不小于该第三分离阈值且小于该第二分离阈值时,表示该消息很可能是垃圾消息,则将当前层作为该消息的垃圾消息可能层,表示当前层的“投票”为该消息可能是垃圾消息。
[0140] 在步骤211中,该分类装置基于下一层的第一分离阈值和第二分离阈值,继续对该消息进行分类,直至确定该消息是正常消息或者垃圾消息,结束。
[0141] 该分类装置进入下一层后,继续根据该下一层的第一分离阈值和该第二分离阈值,对该消息进行分类,直至得到该消息的分类结果,确定了该消息是正常消息或者垃圾消息为止。当该消息的特征值不大于某一层的第一分离阈值时,确定该消息为正常消息,当该消息的特征值不小于某一层的第二分离阈值时,确定该消息为垃圾消息。
[0142] 在步骤212中,该分类装置基于下一层的第一分离阈值和第二分离阈值,继续对该消息进行分类,直至确定该特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值时,获取该消息的正常消息可能层的第一数目以及垃圾消息可能层的第二数目,执行步骤213或者步骤214。
[0143] 如果对每一层来说,该消息的特征值都大于对应的第一分离阈值且小于对应的第二分离阈值,那么,直到最后一层,该分类装置会确定该特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值,此时,该分类装置可以获取该消息的正常消息可能层的数目,作为第一数目,获取该消息的垃圾消息可能层的数目,作为第二数目。当该第一数目大于该第二数目时,表示更多层“投票”该消息为正常消息,则该分类装置确定该消息为正常消息。当该第一数目小于该第二数目时,表示更多层“投票”该消息为垃圾消息,则该分类装置确定该消息为垃圾消息。当该第一数目等于该第二数目时,该分类装置可以确定该消息为正常消息,也可以确定该消息为垃圾消息。
[0144] 本实施例以该分类装置获取每一层的第三分离阈值为例进行说明,而当该分类装置未获取每一层的第三分离阈值时,如果该消息的特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值,则可以随机地对该消息进行分类,确定该消息为正常消息或者垃圾消息均可。
[0145] 在步骤213中,当该第一数目大于该第二数目时,该分类装置确定该消息为正常消息,结束。
[0146] 在步骤214中,当该第一数目小于该第二数目时,该分类装置确定该消息为垃圾消息,结束。
[0147] 参见图3,该分类模型的第一层包括第一分离阈值n11、第二分离阈值n12和第三分离阈值n13,第二层包括第一分离阈值n21、第二分离阈值n22和第三分离阈值n23,第三层包括第一分离阈值n31、第二分离阈值n32和第三分离阈值n33,每一层的第二分离阈值大于第三分离阈值,第三分离阈值大于第一分离阈值。待分类的第一消息的特征值为a,待分类的第二消息的特征值为b,待分类的第三消息的特征值为c。
[0148] 对于第一消息来说,在第一层可以确定第一消息的特征值a小于第一分离阈值n11,则确定该第一消息为正常消息。
[0149] 对于第二消息来说,以m1表示正常消息可能层的数目,m2表示垃圾消息可能层的数目,m1和m2的初始值为0。在第一层确定第二消息的特征值b大于第一分离阈值n11且小于第三分离阈值n13,将m1的值加1,并进入第二层,在第二层确定b大于第一分离阈值n21且小于第三分离阈值n23,则将m1的值再加1,进入第三层,在第三层确定c大于第三分离阈值n33且小于第二分离阈值n32,则将m2的值加1。此时已到最后一层,此时m1的值为2,m2的值为1,确定m1大于m2,则可以确定第二消息为正常消息。
[0150] 对于第三消息来说,在第一层确定第三消息的特征值c大于第三分离阈值n13且小于第二分离阈值n12,则进入第二层,在第二层确定c大于第二分离阈值n22,则确定第二消息为垃圾消息。
[0151] 当该分类装置对该消息进行分类之后,可以根据分类结果,对该消息进行处理。当该消息为正常消息时,该分类装置可以正常地展示该消息,而当该消息为垃圾消息时,该分类装置可以对该消息进行过滤,不再展示该消息。
[0152] 该分类装置采用多层训练的方式,每层中去除了分类效果较好的样本消息,对分类效果较差的样本消息继续进行下一层训练,使得每层训练都能减少样本消息,提高了分类训练的准确率。在后续的分类过程中,每一层只在分类效果较好的情况下才会输出分类结果,当分类效果较差时,不会直接输出分类结果,而是在下一层继续进行分类,直至分类效果较好时才会输出分类结果。且在所有层都未输出分类结果的情况下,根据每一层对该消息的投票输出分类结果,提高了分类准确率。
[0153] 需要说明的是,本实施例以该分类装置执行上述步骤201-214为例进行说明,而在实际应用中,可以由不同的装置分别执行上述步骤。以第一装置和第二装置为例,该第一装置可以执行步骤201-205,建立分类模型,向该第二装置发送该分类模型,该第二装置保存该分类模型,当该第二装置接收到消息时,执行步骤206-214,以根据该分类模型,对该消息进行分类,得到分类结果。其中,该第一装置可以为服务器,该第二装置可以为终端或者服务器,本实施例对此不做限定。
[0154] 以服务器执行步骤201-214为例,该服务器可以获取样本消息,执行步骤201-205,建立分类模型,当该服务器接收到要发送给终端的消息时,根据该分类模型,对该消息进行分类,当确定该消息是正常消息时,该服务器可以向该终端发送该消息,由该终端将该消息展示给用户,而当确定该消息是垃圾消息时,该服务器可以对该消息进行过滤,不再向该终端发送该消息。
[0155] 再以服务器执行步骤201-205,终端执行步骤206-214为例,当该服务器建立该分类模型时,向该终端发送该分类模型,该终端保存该分类模型。当该终端接收到消息时,不会直接展示给用户,而是先根据该分类模型,对该消息进行分类,当确定该消息是正常消息时,将该消息展示给用户,当确定该消息是垃圾消息时,对该消息进行过滤,不再将该消息展示给用户。
[0156] 该终端还可以预先设定联系人的白名单和黑名单,当该终端接收到该消息时,获取该消息的发送方,判断该白名单中是否包括该发送方,当该白名单中包括该发送方时,确定该消息是正常消息,当该白名单中不包括该发送方时,判断该黑名单中是否包括该发送方,当该黑名单中包括该发送方时,确定该消息为垃圾消息,当该黑名单中不包括该发送方时,再根据该分类模型,对该消息进行分类。
[0157] 本实施例提供的方法,通过根据每个样本消息的特征值,确定第一分离阈值、第二分离阈值和第三分离阈值,将特征值大于该第一分离阈值且小于该第二分离阈值的样本消息作为下一层样本消息,继续确定下一层的第一分离阈值、第二分离阈值和第三分离阈值,最终得到多层第一分离阈值、第二分离阈值和第三分离阈值。在每一层以该第一分离阈值和该第二分离阈值对接收到的消息进行分类,且基于下一层的第一分离阈值和第二分离阈值对上一层未分类的消息继续进行分类。基于每一层的第三分离阈值,对所有层都未输出分类结果的消息进行投票,得到分类结果,提高了分类准确率。
[0158] 图4是根据一示例性实施例示出的一种消息分类装置的框图。参见图4,该装置包括特征值计算模块401,第一遍历模块402,第二遍历模块403,多层获取模块404和分类模块405。
[0159] 特征值计算模块401被配置为用于计算每个样本消息的特征值,该特征值用于表示相应的样本消息是垃圾消息的可能性大小,样本消息包括正常样本消息和垃圾样本消息;
[0160] 第一遍历模块402被配置为用于按照特征值从大到小的顺序遍历样本消息,对于当前遍历到的第一样本消息,将特征值小于该第一样本消息的特征值的样本消息作为第一特征消息;当该第一特征消息中正常样本消息所占的比例大于第一预设阈值时,将该第一样本消息的特征值作为第一分离阈值,该第一分离阈值用于划分出正常消息;
[0161] 第二遍历模块403被配置为用于按照特征值从小到大的顺序遍历样本消息,对于当前遍历到的第二样本消息,将特征值大于该第二样本消息的特征值的样本消息作为第二特征消息;当该第二特征消息中垃圾样本消息所占的比例大于第二预设阈值时,将该第二样本消息的特征值作为第二分离阈值,该第二分离阈值用于划分出垃圾消息;
[0162] 多层获取模块404被配置为用于将特征值大于该第一分离阈值且小于该第二分离阈值的样本消息作为下一层样本消息,对下一层样本消息重复执行上述确定第一分离阈值和第二分离阈值的步骤,得到下一层的第一分离阈值和第二分离阈值,直至特征值大于当前层的第一分离阈值且小于当前层的第二分离阈值的样本消息的数目小于预设数目时停止,得到多层的第一分离阈值和第二分离阈值;
[0163] 分类模块405被配置为用于基于该多层的第一分离阈值和第二分离阈值,对接收到的消息进行分类,得到分类结果。
[0164] 本实施例提供的装置,通过根据每个样本消息的特征值,确定第一分离阈值和第二分离阈值,将特征值大于该第一分离阈值且小于该第二分离阈值的样本消息作为下一层样本消息,继续确定下一层的第一分离阈值和第二分离阈值,最终得到多层第一分离阈值和第二分离阈值。在每一层以该第一分离阈值和该第二分离阈值对接收到的消息进行分类,且基于下一层的第一分离阈值和第二分离阈值对上一层未分类的消息继续进行分类,提高了分类准确率。
[0165] 在另一实施例中,该特征值计算模块401被配置为用于根据每个样本消息的联系人信息、消息长度、文本结构、包含的特殊符号和关键词中的至少一项,获取每个样本消息的特征向量;根据每个样本消息的特征向量,应用以下公式,计算每个样本消息的特征值:
[0166]
[0167] 其中,Y表示分类集合,Y={c1,c2},c1表示垃圾消息,c2表示正常消息,X指代样本消息的特征向量,X={X1,X2…Xj…},j指代特征向量的维度,j为自然数,Xj指代第j个维度的特征向量,x表示当前样本消息的特征向量,x={x1,x2…xj…},xj表示当前样本消息的第j个维度的特征向量,PSN(X=x)表示当前样本消息的特征值,P(Xj=xj|Y=c1)表示垃圾样本消息中特征向量的第j个维度是xj的概率,P(Xj=xj|Y=c2)表示正常样本消息中特征向量的第j个维度是xj的概率。
[0168] 在另一实施例中,该分类模块405被配置为用于当接收到任一消息时,根据该消息的内容,计算该消息的特征值;对于每一层的第一分离阈值和第二分离阈值,当该特征值不大于该第一分离阈值时,确定该消息为正常消息;或者,当该特征值不小于该第二分离阈值时,确定该消息为垃圾消息;或者,当该特征值大于该第一分离阈值且小于该第二分离阈值时,基于下一层的第一分离阈值和第二分离阈值,继续对该消息进行分类,直至得到该分类结果。
[0169] 参见图5,在另一实施例中,该装置还包括:
[0170] 准确率计算模块406被配置为用于对于每一层的每个样本消息,根据该样本消息对应的第一特征消息中正常样本消息的数目,以及该样本消息对应的第二特征消息中垃圾样本消息的数目,计算分类准确率,该分类准确率用于表示根据该样本消息的特征值进行分类时的准确率;
[0171] 第三阈值获取模块407被配置为用于将每一层中分类准确率最大的样本消息的特征值作为第三分离阈值,得到多层的第三分离阈值;
[0172] 该分类模块405还被配置为用于基于该多层的第一分离阈值、第二分离阈值和第三分离阈值,对接收到的消息进行分类,得到该分类结果。
[0173] 在另一实施例中,该分类模块405还被配置为用于对于每一层的第一分离阈值、第二分离阈值和第三分离阈值,当该消息的特征值大于该第一分离阈值且小于该第三分离阈值时,将当前层作为该消息的正常消息可能层;或者,当该消息的特征值不小于该第三分离阈值且小于该第二分离阈值时,将当前层作为该消息的垃圾消息可能层;如果该消息的特征值大于最后一层的第一分离阈值且小于最后一层的第二分离阈值,获取该消息的正常消息可能层的第一数目以及垃圾消息可能层的第二数目;当该第一数目大于该第二数目时,确定该消息为正常消息;或者,当该第一数目小于该第二数目时,确定该消息为垃圾消息。
[0174] 上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
[0175] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0176] 需要说明的是:上述实施例提供的消息分类装置在对消息进行分类时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将分类装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的消息分类装置与消息分类方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0177] 图6是根据一示例性实施例示出的一种用于消息分类的装置600的框图。例如,装置600可以被提供为一服务器。参照图6,装置600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理部件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述消息分类方法。
[0178] 装置600还可以包括一个电源组件626被配置为执行装置600的电源管理,一个有线或无线网络接口650被配置为将装置600连接到网络,和一个输入输出(I/O)接口658。装置600可以操作基于存储在存储器632的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
[0179] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0180] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
QQ群二维码
意见反馈