数据选择方法及装置技术领域
本发明涉及到数据处理技术领域,特别涉及到数据选择方法及装置。
背景技术
二进制数据,是由0101...这样的字节流构成。区别于实数数据(实数数据
的每一个维度都是float或double类型的数据),二进制数据的每一个维度都是0
或者1,占用1个bit。
在大规模基于内容的图像检索、音乐识别、街景识别、人脸检索、人脸
验证等领域中,都广泛的采用了二进制数据的特征。由于其计算速度快,占
用存储空间少,在海量数据的今天,二进制数据的优势十分明显。尤其是在
移动互联网时代,手机、智能手表、智能眼镜等嵌入式设备越来越普及,在
这种运算和存储能力都有限的计算设备上,还要进行实时的数据特征提取时,
二进制数据更加成为首选的特征。
在海量信息检索过程中,倒排索引是常用的一种数据结构。倒排索引结
构是将相同关键字特征映射到同一个列表中的数据结构。目前已经在百度、
谷歌等搜索引擎的中文搜索服务中得到广泛应用。如何利用多媒体数据中的
二进制数据的特征建立高效的索引至今仍是一个开放的、被广泛讨论的课题。
在建立倒排索引的过程中,如何选择关键字是影响最终效果的关键。如
果关键字的分布不均匀,检索时不同关键字消耗的时间差别很大,无法对系
统的响应时间进行很好的控制。尤其是当二进制数据的bit位数较大的时候,
这种分布的不均衡性呈指数级不均衡,使得最终的检索时间十分不可控。
目前主流的二进制数据关键字选择的方法有:1)从二进制数据中随机筛
选若干bit位作为关键字,2)选择二进制数据前面的若干bit位作为关键字,3)
选择均值接近0.5的bit的若干bit位作为关键字等方式。
上述3种选择关键字的方法,都存在很大的缺陷。随机选择或选择前面若
干bit的方式都极容易导致数据分布的不均衡,选择均值为0.5的若干bit只考虑
到单个bit的分布,没有考虑到bit之间存在的关联性,所以也容易出现数据的
分布不均衡。且在关键字选择的计算过程中需要利用穷举式的方式进行选择,
关键字选择的过程复杂且不够准确,降低了关键字选择的效率和准确性。
发明内容
本发明实施例提供一种数据选择方法及装置,旨在实现减少数据选择的
计算过程,进而有效提高数据选择的效率和准确性。
本发明实施例提出一种数据选择方法,所述数据选择方法包括步骤:
A、按照预设规则从待处理数据中选择M+N个数据作为待处理数据组;
B、对所述待处理数据组中的每一个数据与其他各个数据的相关度求和得
到各个数据的总相关度;
C、从所述待处理数据组中确定N个数据,所确定的N个数据的总相关
度均大于所述待处理数据组中,除所确定的N个数据之外的其他数据的总相
关度;
D、从所述待处理数据中选择除已被选择的数据之外的N个数据替换所
确定的N个数据作为新的待处理数据组;
E、继续执行步骤B、C和D,直至所述待处理数据中的所有数据被选择
完毕;
F、从所述待处理数据组中删除最后一次确定的N个数据,得到目标数据,
所述目标数据的个数为M。
本发明实施例还提出一种数据选择装置,所述数据选择装置包括:
选择模块,用于按照预设规则从待处理数据中选择M+N个数据作为待处
理数据组;
计算模块,用于对所述待处理数据组中的每一个数据与其他各个数据的
相关度求和得到各个数据的总相关度;
处理模块,用于从所述待处理数据组中确定N个数据,所确定的N个数
据的总相关度均大于所述待处理数据组中,除所确定的N个数据之外的其他
数据的总相关度;
替换模块,用于从所述待处理数据中选择除已被选择的数据之外的N个
数据替换所确定的N个数据作为新的待处理数据组;
所述处理模块,还用于当所述待处理数据中的所有数据被选择完毕时,
从所述待处理数据组中删除最后一次确定的N个数据,得到目标数据,所述
目标数据的个数为M。
本发明实施例通过先从待处理数据中选择M+N个数据作为待处理数据
组,从所述待处理数据组中确定N个数据,并从所述待处理数据中选择除所
确定的N个数据之外的N个数据替换所确定的N个数据,重复操作,直至所
述待处理数据中所有数据被选择完毕,删除所述待处理数据组中的所确定的N
个数据,得到目标数据,所述目标数据的个数为M。实现数据选择操作,无
需进行穷举式数据选择,且从待处理数据中选择相关性小的数据。有效避免
将穷举式数据选择导致数据选择复杂度高的技术问题,减少数据选择的计算
过程,进而有效提高了数据选择的效率和准确性。
附图说明
图1为本发明数据选择方法的第一实施例的流程图;
图2为图1中步骤S10的细化流程图;
图3为图1中步骤S20的一细化流程图;
图4为图1中步骤S20的另一细化流程图;
图5为本发明数据选择方法的第二实施例的流程图;
图6为本发明数据选择方法的第三实施例的流程图;
图7为本发明数据选择方法的第四实施例的流程图;
图8为本发明数据选择装置的较佳实施例的功能模块示意图;
图9为本发明数据选择装置所在终端的硬件结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步
说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限
定本发明。
本发明提出一种数据选择方法。
如图1所示,图1为本发明数据选择方法的第一实施例的流程图。本实
施例提到的数据选择方法包括以下步骤:
步骤S10,按照预设规则从待处理数据中选择M+N个数据作为待处理数
据组;
当有待处理数据输入需要处理,或者接收到数据选择指令时,获取待处
理数据。所述待处理数据可以是二进制数据、八进制数据、十进制数据或16
进制数据等。按照预设规则从待处理数据中选择M+N个数据作为待处理数据
组。所述待处理数据包括X个数据,且X>>M,M>>N,例如,可以是X=200,
M=50,N=3,或者X=300,M=100,N=4等。所述按照预设规则从待处理数
据中选择M+N个数据作为待处理数据组的过程可以是:随机从所述待处理数
据中选择M+N个数据。例如,按照每隔预设个数选择一个数据的方式进行随
机选择,所述预设个数可以是1、2或者3等。也还可以是:参考图2,图2
为图1中步骤S10的细化流程图。步骤S101,将所述待处理数据进行混排;
步骤S102,从混排后的所述待处理数据中选择排序在前的M+N个数据。例
如,所述待处理数据中每个数据的顺序为0,1,2,3,4,5,混排的顺序为
2,3,1,5,0,4。进行混排所采用的函数可以是C++中的Shuffle函数,也
可以采用其他使用的混排函数。为了降低计算资源的利用,N优选为小于3。
可以理解的是,N也还可以是大于3。
步骤S20,对所述待处理数据组中的每一个数据与其他各个数据的相关度
求和得到各个数据的总相关度;
在从所述待处理数据中选择M+N个数据作为待处理数据组后,计算得到
所述待处理数据组中每一个数据与其他各个数据的相关度,根据计算得到的
相关度,对所述待处理数据组中的每一个数据与其他各个数据的相关度求和
得到各个数据的总相关度。例如,所述待处理数据中的一个数据为a,其他数
据分别为b、c、d。则先计算得到a与b,a与c,a与d,b与c,b与d,c
与d的相关度,再对计算得到的a与b,a与c,a与d的相关度求和得到a的
总相关度a1,对计算得到的a与b,b与c,b与d的相关度求和得到b的总
相关度b1,对计算得到的a与c,b与c,c与d的相关度求和得到c的总相
关度c1,对计算得到的a与d,b与d,c与d的相关度求和得到d的总相关
度d1。所述待处理数据组中其他各个数据的所述相关度可以通过每一个数据
与其他数据的相关系数来体现,计算相关系数的公式为:
其中表示期望,xi,yi分别代表所述待处理数
据中的各个数据。得到所述待处理数据组中每一个数据与其他数据的相关系
数Cij,其中i代表所述待处理数据组中的第一个数据,j代表所述待处理数据
组中的另一个数据。
步骤S30,从所述待处理数据组中确定N个数据,所确定的N个数据的
总相关度均大于所述待处理数据组中,除所确定的N个数据之外的其他数据
的总相关度;
在对所述待处理数据组中的每一个数据与其他各个数据的相关度求和得
到各个数据的总相关度后,从所述待处理数据组中确定N个数据,所确定的
N个数据的总相关度均大于所述待处理数据组中,除所确定的N个数据之外
的其他数据的总相关度。例如,所述待处理数据组中包括a、b、c和d四个数
据,其中M为3,N为1,a的总相关度为a1,b的总相关度为b1,c的总相
关度为c1,d的总相关度为d1,若a1=0.5,b1=0.8,c1=0.4,d1=0.9,因d1
的值大于a1、b1和c1,则从所述待处理数据组中确定d1。
所述从所述待处理数据组中确定N个数据的过程可以是:参考图3,图3
为图1中步骤S20的一细化流程图。步骤S201,按照总相关度由大至小的顺
序将求和得到的总相关度进行排序;步骤S201,从所述待处理数据组中选择
总相关度排序在前的N个数据。也还可以是:参考图4,图4为图1中步骤
S20的另一细化流程图。步骤S203,按照总相关度由小至大的顺序将求和得
到的总相关度进行排序;步骤S204,从所述待处理数据组中选择总相关度排
序在后的N个数据。
步骤S40,从所述待处理数据中选择除已被选择的数据之外的N个数据
替换所确定的N个数据作为新的待处理数据组;
在本实施例中,在确定N个数据之后,从所述待处理数据组中选择除已
被选择的数据之外的N个数据替换所确定的N个数据作为新的待处理数据
组。例如,所述待处理数据包括L个数据,第一次从所述待处理数据中选择
M+N个数据,第二次从所述待处理数据中选择除去所述M+N之外的N个数
据,继续执行步骤S20、步骤S30和步骤S40,直至所述待处理数据中的所有
数据被选择完毕。
步骤S50,从所述待处理数据组中删除最后一次确定的N个数据,得到
目标数据,所述目标数据的个数为M。
在所述待处理数据中的所有数据被选择完毕时,从所述待处理数据组中
删除最后一次确定的N个数据,得到目标数据,所述目标数据的个数为M。
本发明实施例通过先从待处理数据中选择M+N个数据作为待处理数据
组,从所述待处理数据组中确定N个数据,并从所述待处理数据中选择除所
确定的N个数据之外的N个数据替换所确定的N个数据,重复操作,直至所
述待处理数据中所有数据被选择完毕,删除所述待处理数据组中最后一次确
定的N个数据,得到目标数据,所述目标数据的个数为M。实现数据选择操
作,无需进行穷举式数据选择,且从待处理数据中选择相关性小的数据。有
效避免将穷举式数据选择导致数据选择复杂度高的技术问题,减少数据选择
的计算过程,进而有效提高了数据选择的效率和准确性。
进一步地,基于上述数据选择方法的第一实施例,提出本发明数据选择
方法的第二实施例。如图5所示,当所述待处理数据不是N的倍数时,所述
数据选择方法还包括步骤:
步骤S60,判断所述待处理数据中未被选择的数据的个数是否小于N。在
所述待处理数据中未被选择的数据的个数小于N时,执行下述步骤S70;在
所述待处理数据中未被选择的数据的个数大于或等于N时,执行步骤S40。
步骤S70,从所述待处理数据中选择所述未被选择的数据替换所确定的N
个数据作为新的待处理数据组;
步骤S80,从所述新的待处理数据组中确定S个数据,所述S个数据的
总相关度均大于所述待处理数据组中,除所述S个数据之外的其他数据的总
相关度;
步骤S90,从所述新的待处理数据组中删除所述S个数据,得到目标数据,
所述目标数据的个数为M。
当所述待处理数据的个数为N的倍数时,执行上述数据选择的第一实施
例的流程选择出目标数据。当所述待处理数据的个数不是N的倍数时,先按
照上述数据选择的第一实施例的步骤S10,S20,S30和步骤S40进行所述待
处理数据的选择,即若所述待处理数据中为被选择的数据的个数大于或者等
于N,则执行步骤S40。在最后一次未选择的数据的个数S小于N时,按照
本实施例中的步骤S70,步骤S80和步骤S90选择出目标数据。即若所述待
处理数据中未被选择的数据的个数小于N,则执行步骤S70,步骤S80和步骤
S90。所述确定所述待处理数据中未被选择的数据的个数S小于N的过程可以
是:获取所述待处理数据中未被选择的数据的个数S,将S与N比对,以得
到S是否小于N的结果。本发明实施例通过在所述待处理数据的个数不是N
的倍数时,在最后一次进行数据替换时,将所述待处理数据中未被选择的数
据替换所确定的N个数据,实现高效的进行数据的选择。
进一步地,基于上述数据选择方法的第一实施例,提出本发明数据选择
方法的第三实施例。如图6所示,所述数据选择方法还包括步骤:
步骤S100,计算得到每一个目标数据中各个数据的总相关度之和;
重复执行步骤S10,S20,S30,S40,S50和S60,重复执行的次数为P
次,得到P个目标数据,因每次选择的M+N个数据不同,因此每次重复执行
之后得到的目标数据不同,重复执行P次得到P个目标数据。提前设置重复
次数P,P的设置根据用户对数据选择的预期和系统性能进行设置,每一个待
处理数据的重复次数均可以不同,默认P为0次。在用户不进行重复次数的
设置时,不进行重复,得到一个目标数据,即为最终的目标数据。
在得到P个目标数据之后,计算得到每一个目标数据中各个数据的总相
关度,并对每一个目标数据中的各个数据的总相关度求和。
步骤S110,从所述P个目标数据中确定一个总相关度之和最小的目标数
据,将所述总相关度之和最小的目标数据作为最终的目标数据。
从所述P个目标数据中确定一个总相关度之和最小的目标数据,例如,P
为3,分别为M1、M2和M3,目标数据M1的总相关度之和为m1,目标数
据M2的总相关度之和为m2,目标数据M3的总相关度之和为m3。若m1=2.3,
m2=2.7,m3=2.1,则目标数据M3的总相关度之和最小,将目标数据M3作
为最终的目标数据,即目标数据M3为用户预期得到的数据,完成所述待处理
数据的选择。本发明实施例通过多次对所述待处理数据进行选择处理,得到
多个目标数据,并从多个目标数据中选择一个总相关度之和最小的目标数据
作为最终的目标数据,使得目标数据的选择更加准确。
进一步地,基于上述数据选择方法的第三实施例,提出本发明数据选择
方法的第四实施例。如图7所示,在所述步骤S20之前,还包括:
步骤S120,预先计算得到并保存所述待处理数据中每一个数据与其他各
个数据的相关度。
在本实施例中,在有待处理数据需要处理,或者在接收到数据选择指令
时,获取待处理数据之后,预先计算得到所述待处理数据中每一个数据与其
他各个数据的相关度。计算得到的相关度可以生成与得到的相关度对应的相
关度表。在计算得到所述待处理数据中每一个数据与其他各个数据的相关度
之后,所述对所述待处理数据组中的每一个数据与其他各个数据的相关度求
和得到各个数据的总相关度的过程可以是:参考图7。步骤S20包括:步骤
S205,根据计算得到的相关度,确定所述待处理数据组中每一个数据与其他
各个数据的相关度;步骤S206,根据确定的相关度,对所述待处理数据组中
的每一个数据与其他各个数据的相关度求和得到各个数据的总相关度。即通
过先计算并保存所述待处理数据中每一个数据与其他各个数据的相关度,在
选择M+N个数据后,从保存的相关度中,选择对应数据的相关度对所述待处
理数据组中的每一个数据与其他各个数据的相关度求和得到各个数据的总相
关度的操作。本发明实施例通过预先计算得到所述待处理数据中每一个数据
与其他各个的相关度,在需要运用各个数据与其他数据的相关度时,从提前
保存的相关度中选择对应的相关度进行求和操作,不必每次均进行数据相关
度的计算和求和操作,节省数据选择的流程,进而提高了数据选择的效率,
同时节省了系统的计算资源,提高了系统的性能。
上述数据选择方法的第一至第四实施例的数据选择方法的执行主体均可
以为终端。更进一步地,该方法可以由安装在终端上的客户端(如数据选择
软件等)实现,其中,该终端可以包括但不限于笔记本电脑、手机、平板电脑
或者PDA(PersonalDigitalAssistant,个人数字助理)等电子设备。
进一步地,提出本发明数据选择装置的较佳实施例。如图8所示,所述
数据选择装置包括:选择模块10,计算模块20、处理模块30及替换模块40,
其中所述选择模块10包括混排单元11和选择单元12。
选择模块10,用于按照预设规则从待处理数据中选择M+N个数据作为
待处理数据组;
当有待处理数据输入需要处理,或者接收到数据选择指令时,获取待处
理数据。按照预设规则从待处理数据中选择M+N个数据作为待处理数据组。
所述待处理数据包括X个数据,且X>>M,M>>N,例如,可以是X=200,
M=50,N=3,或者X=300,M=100,N=4等。所述按照预设规则从待处理数
据中选择M+N个数据作为待处理数据组的过程可以是:随机从所述待处理数
据中选择M+N个数据。例如,按照每隔预设个数选择一个数据的方式进行随
机选择,所述预设个数可以是1、2或者3等。
所述混排单元11,用于将所述待处理数据进行混排;
所述选择单元12,用于从混排后的所述待处理数据中选择排序在前的
M+N个数据。例如,所述待处理数据中每个数据的顺序为0,1,2,3,4,5,
混排的顺序为2,3,1,5,0,4。进行混排所采用的函数可以是C++中的Shuffle
函数,也可以采用其他使用的混排函数。为了降低计算资源的利用,N优选
为小于3。可以理解的是,N也还可以是大于3。
计算模块20,用于对所述待处理数据组中的每一个数据与其他各个数据
的相关度求和得到各个数据的总相关度;
在从所述待处理数据中选择M+N个数据作为待处理数据组后,计算得到
所述待处理数据组中每一个数据与其他各个数据的相关度,根据计算得到的
相关度,对所述待处理数据组中的每一个数据与其他各个数据的相关度求和
得到各个数据的总相关度。例如,所述待处理数据中的一个数据为a,其他数
据分别为b、c、d。则先计算得到a与b,a与c,a与d,b与c,b与d,c
与d的相关度,再对计算得到的a与b,a与c,a与d的相关度求和得到a的
总相关度a1,对计算得到的a与b,b与c,b与d的相关度求和得到b的总
相关度b1,对计算得到的a与c,b与c,c与d的相关度求和得到c的总相
关度c1,对计算得到的a与d,b与d,c与d的相关度求和得到d的总相关
度d1。所述待处理数据组中其他各个数据的所述相关度可以通过每一个数据
与其他数据的相关系数来体现,计算相关系数的公式为:
其中表示期望,xi,yi分别代表所述待处理数
据中的各个数据。得到所述待处理数据组中每一个数据与其他数据的相关系
数Cij,其中i代表所述待处理数据组中的第一个数据,j代表所述待处理数据
组中的另一个数据。
所述处理模块30,用于从所述待处理数据组中确定N个数据,所述N个
数据的总相关度均大于所述待处理数据组中,除所述N个数据之外的其他数
据的总相关度;
在对所述待处理数据组中的每一个数据与其他各个数据的相关度求和得
到各个数据的总相关度后,从所述待处理数据组中确定N个数据,所述N个
数据的总相关度均大于所述待处理数据组中,除所述N个数据之外的其他数
据的总相关度。例如,所述待处理数据组中包括a、b、c和d四个数据,其中
M为3,N为1,a的总相关度为a1,b的总相关度为b1,c的总相关度为c1,
d的总相关度为d1,若a1=0.5,b1=0.8,c1=0.4,d1=0.9,因d1的值大于a1、
b1和c1,则从所述待处理数据组中确定d1。
所述从所述待处理数据组中确定N个数据的过程可以是:按照总相关度
由大至小的顺序将求和得到的总相关度进行排序;从所述待处理数据组中选
择总相关度排序在前的N个数据。也还可以是:按照总相关度由大至小的顺
序将求和得到的总相关度进行排序;从所述待处理数据组中选择总相关度排
序在前的N个数据。
所述替换模块40,用于从所述待处理数据中选择除已被选择的数据之外
的N个数据替换所述N个数据作为新的待处理数据组;
所述处理模块30,还用于在所述待处理数据中的所有数据被选择完毕时,
从所述待处理数据组中删除最后一次确定的N个数据,得到目标数据,所述
目标数据的个数为M。
在本实施例中,在确定N个数据之后,从所述待处理数据组中选择除已
被选择的数据之外的N个数据替换所确定的N个数据作为新的待处理数据
组。例如,所述待处理数据包括L个数据,第一次从所述待处理数据中选择
M+N个数据,第二次从所述待处理数据中选择除去所述M+N之外的N个数
据,以此类推,直至所述待处理数据中的所有数据被选择完毕。从所述待处
理数据组中删除最后一次确定的N个数据,得到目标数据,所述目标数据的
个数为M。
本发明实施例通过先从待处理数据中选择M+N个数据作为待处理数据
组,从所述待处理数据组中确定N个数据,并从所述待处理数据中选择除所
述N个数据之外的N个数据替换所确定的N个数据,重复操作,直至所述待
处理数据中所有数据被选择完毕,删除所述待处理数据组中的最后一次确定
的N个数据,得到目标数据,所述目标数据的个数为M。实现数据选择操作,
无需进行穷举式数据选择,且从待处理数据中选择相关性小的数据。有效避
免将穷举式数据选择导致数据选择复杂度高的技术问题,减少数据选择的计
算过程,进而有效提高了数据选择的效率和准确性。
进一步地,当所述待处理数据不是N的倍数时,所述处理模块30,还用
于判断所述待处理数据中未被选择的数据的个数是否小于N。
所述替换模块40,还用于当所述待处理数据中未被选择的数据的个数小
于N时,从所述待处理数据中选择所述未被选择的数据替换所确定的N个数
据作为新的待处理数据组;
所述处理模块30,还用于从所述新的待处理数据组中确定S个数据,所
述S个数据的总相关度均大于所述待处理数据组中,除所述S个数据之外的
其他数据的总相关度;从所述新的待处理数据组中删除所述S个数据,得到
目标数据,所述目标数据的个数为M。
当所述待处理数据的个数为N的倍数时,通过计算模块20对所述待处理
数据组中的每一个数据与其他各个数据的相关度求和得到各个数据的总相关
度;处理模块30从所述待处理数据组中确定N个数据,所确定的N个数据
的总相关度均大于所述待处理数据组中,除所确定的N个数据之外的其他数
据的总相关度;替换模块40从所述待处理数据中选择除已被选择的数据之外
的N个数据替换所确定的N个数据作为新的待处理数据组;通过处理模块30,
当所述待处理数据中的所有数据被选择完毕时,从所述待处理数据组中删除
最后一次确定的N个数据,得到目标数据,所述目标数据的个数为M。
当所述待处理数据的个数不是N的倍数时,在所述待处理数据中未被选
择的数据的个数大于时,通过计算模块20对所述待处理数据组中的每一个数
据与其他各个数据的相关度求和得到各个数据的总相关度;处理模块30从所
述待处理数据组中确定N个数据,所确定的N个数据的总相关度均大于所述
待处理数据组中,除所确定的N个数据之外的其他数据的总相关度;替换模
块40从所述待处理数据中选择除已被选择的数据之外的N个数据替换所确定
的N个数据作为新的待处理数据组;在最后一次未选择的数据的个数S小于
N时,替换模块40从所述待处理数据中选择所述未被选择的数据替换所述总
相关度最大的N个数据作为新的待处理数据组;处理模块30,从所述新的待
处理数据组中确定S个数据,所述S个数据的总相关度均大于所述待处理数
据组中,除所述S个数据之外的其他数据的总相关度;从所述新的待处理数
据组中删除所述S个数据,得到目标数据。
所述处理模块30确定所述待处理数据中未被选择的数据的个数S小于N
的过程可以是:获取所述待处理数据中未被选择的数据的个数S,将S与N
比对,以得到S是否小于N的结果。本发明实施例通过在所述待处理数据的
个数不是N的倍数时,在最后一次进行数据替换时,将所述待处理数据中未
被选择的数据替换所确定的N个数据,实现高效的进行数据的选择。
进一步地,当通过选择模块10、计算模块20、处理模块30和替换模块
40得到P个目标数据时,所述计算模块20,还用于当得到P个目标数据时,
计算得到每一个目标数据中各个数据的总相关度之和;
通过选择模块10、计算模块20、处理模块30和替换模块40得到P个目
标数据,因每次选择的M+N个数据不同,因此每次得到的目标数据不同。提
前设置P的数量,P的设置根据用户对数据选择的预期和系统性能进行设置,
每一个待处理数据的获取的目标数据的次数均可以不同,默认P为0次。在
用户不进行P的数值的设置时,得到一个目标数据,即为最终的目标数据。
在得到P个目标数据之后,计算得到每一个目标数据中各个数据的总相
关度,并对每一个目标数据中的各个数据的总相关度求和,即分别得到每一
个目标数据的总相关度之和。
所述处理模块30,还用于从所述P个目标数据中确定一个总相关度之和
最小的目标数据,将所述总相关度之和最小的目标数据作为最终的目标数据。
从所述P个目标数据中确定一个总相关度之和最小的目标数据,例如,P
为3,分别为M1、M2和M3,目标数据M1的总相关度之和为m1,目标数
据M2的总相关度之和为m2,目标数据M3的总相关度之和为m3。若m1=2.3,
m2=2.7,m3=2.1,则目标数据M3的总相关度之和最小,将目标数据M3作
为最终的目标数据,即目标数据M3为用户预期得到的数据,完成所述待处理
数据的选择。本发明实施例通过多次对所述待处理数据进行选择处理,得到
多个目标数据,并从多个目标数据中选择一个总相关度之和最小的目标数据
作为最终的目标数据,使得目标数据的选择更加准确。
进一步地,所述计算模块20,还用于预先计算得到并保存所述待处理数
据中每一个数据与其他各个数据的相关度。
在本实施例中,在有待处理数据需要处理,或者在接收到数据选择指令
时,获取待处理数据之后,预先计算得到所述待处理数据中每一个数据与其
他各个数据的相关度。计算得到的相关度可以生成与得到的相关度对应的相
关度表。在计算得到所述待处理数据中每一个数据与其他各个数据的相关度
之后,所述对所述待处理数据组中的每一个数据与其他各个数据的相关度求
和得到各个数据的总相关度的过程可以是:根据计算得到的相关度,确定所
述待处理数据组中每一个数据与其他各个数据的相关度;根据确定的相关度,
对所述待处理数据组中的每一个数据与其他各个数据的相关度求和得到各个
数据的总相关度。即通过先计算并保存所述待处理数据中每一个数据与其他
各个数据的相关度,在选择M+N个数据后,从保存的相关度中,选择对应数
据的相关度对所述待处理数据组中的每一个数据与其他各个数据的相关度求
和得到各个数据的总相关度的操作。本发明实施例通过预先计算得到所述待
处理数据中每一个数据与其他各个的相关度,在需要运用各个数据与其他数
据的相关度时,从提前保存的相关度中选择对应的相关度进行求和操作,不
必每次均进行数据相关度的计算和求和操作,节省数据选择的流程,进而提
高了数据选择的效率,同时节省了系统的计算资源,提高了系统的性能。
如图9所示,图9为本发明实施例中数据选择装置所在终端的总线图。
该终端可以包括:至少一个处理器301,例如CPU,至少一个网络接口304,
用户接口303,存储器305,至少一个通信总线302。其中,通信总线302用
于实现这些组件之间的连接通信。其中,用户接口303可以包括显示屏
(Display)、键盘(Keyboard),还可以包括标准的有线接口、无线接口。网
络接口304可以包括标准的有线接口、无线接口(如无线网络接口)。存储器
305可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile
memory),例如至少一个磁盘存储器。存储器305还可以是至少一个位于远离
前述处理器301的存储装置。作为一种计算机存储介质的存储器305中可以
包括操作系统、网络通信模块、用户接口模块以及音频播放控制的程序。
在图9所示的数据选择装置所在终端中,网络接口304主要用于连接服
务器,与服务器进行数据通信;而用户接口303主要用于接收用户指令,并
与用户进行交互;而处理器301可以用于调用存储器305中存储的数据选择
的程序,并执行以下操作:
通过用户接口303侦测数据选择请求;在用户接口303侦测到数据选择
请求时,A、按照预设规则从待处理数据中选择M+N个数据作为待处理数据
组;B、对所述待处理数据组中的每一个数据与其他各个数据的相关度求和得
到各个数据的总相关度;C、从所述待处理数据组中确定N个数据,所确定的
N个数据的总相关度均大于所述待处理数据组中,除所确定的N个数据之外
的其他数据的总相关度;D、从所述待处理数据中选择除已被选择的数据之外
的N个数据替换所确定的N个数据作为新的待处理数据组;E、继续执行步
骤B、C和D,直至所述待处理数据中的所有数据被选择完毕;F、从所述待
处理数据组中删除最后一次确定的N个数据,得到目标数据,所述目标数据
的个数为M。
在一个实施例中,当所述待处理数据的个数不是N的倍数时,处理器301
调用存储器305中存储的数据选择的程序还可以执行以下操作:
当所述待处理数据中未被选择的数据的个数S小于N时,从所述待处理
数据中选择所述未被选择的数据替换所述总相关度最大的N个数据作为新的
待处理数据组;
从所述新的待处理数据组中确定S个数据,所述S个数据的总相关度均
大于所述待处理数据组中,除所述S个数据之外的其他数据的总相关度;
从所述新的待处理数据组中删除所述S个数据,得到目标数据。
在一个实施例中,处理器301调用存储器305中存储的数据选择的程序
还可以执行以下操作:
重复执行步骤A、B、C、D、E和F,重复执行的次数为P次,得到P个
目标数据;
计算得到每一个目标数据中各个数据的总相关度之和;
从所述P个目标数据中确定一个总相关度之和最小的目标数据,将所述
总相关度之和最小的目标数据作为最终的目标数据。
在一个实施例中,处理器301调用存储器305中存储的数据选择的程序
还可以执行以下操作:
将所述待处理数据进行混排;
从混排后的所述待处理数据中选择排序在前的M+N个数据。
在一个实施例中,处理器301调用存储器305中存储的数据选择的程序
还可以执行以下操作:
预先计算得到并保存所述待处理数据中每一个数据与其他各个数据的相
关度。
在一个实施例中,处理器301调用存储器305中存储的数据选择的程序
还可以执行以下操作:
预先计算得到并保存所述待处理数据中每一个数据与其他各个的相关
度。
在一个实施例中,处理器301调用存储器305中存储的数据选择的程序
还可以执行以下操作:
按照总相关度由大至小的顺序将求和得到的总相关度进行排序;
从所述待处理数据组中选择总相关度排序在前的N个数据。
在一个实施例中,处理器301调用存储器305中存储的数据选择的程序
还可以执行以下操作:
按照总相关度由小至大的顺序将求和得到的总相关度进行排序;
从所述待处理数据组中选择总相关度排序在后的N个数据。
本实施例图9所描述的数据选择装置所在终端,通过先从待处理数据中
选择M+N个数据作为待处理数据组,从所述待处理数据组中确定N个数据,
并从所述待处理数据中选择除所述N个数据之外的N个数据替换所述N个数
据,重复操作,直至所述待处理数据中所有数据被选择完毕,删除所述待处
理数据组中的所述N个数据,得到目标数据,实现数据选择操作,无需进行
穷举式数据选择。有效避免将穷举式数据选择导致数据选择复杂度高的技术
问题,减少数据选择的计算过程,进而有效提高了数据选择的效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体
意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或
者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还
包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情
况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、
方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述
实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通
过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的
技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体
现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光
盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务
器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,
凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接
或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。