分组生成方法、装置及系统转让专利

申请号 : CN201911029596.7

文献号 : CN110837955A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨秀琨钟燕平周卫平

申请人 : 广州六一信息科技有限公司

摘要 :

本申请公开了一种分组生成方法、装置及系统,所述方法包括:获取待分组的各用户的用户年龄和用户权重;根据年龄分组策略,将各用户基于用户年龄进行年龄分组;根据权重分组策略,将各用户基于用户权重进行权重分组;选择年龄分组策略或权重分组策略两者其中之一作为最优分组策略;根据最优分组策略,对各用户进行分组。与现有技术相比,本申请根据不同的年龄水平,以及根据用户的报名时间,分别执行对应的分组策略,并对比两种策略的分组结果后,会选择其中一种比较优的解进行成组,进而提高在线教育的用户分组效果。

权利要求 :

1.一种分组生成方法,其特征在于,至少包括如下步骤:

获取待分组的各用户的用户年龄和用户权重;其中所述用户权重与所述用户未组成分组的时间成正比;

根据年龄分组策略,将各所述用户基于所述用户年龄进行年龄分组,包括根据各所述用户年龄对各所述用户进行年龄排序,根据所述年龄排序,依次将符合预设条件的每N个所述用户划分为同一年龄分组,并将所有无法根据所述用户年龄成组的所述用户记录为第一无分组用户集;其中,所述预设条件为同一用户分组内任意两个所述用户的用户年龄差距不大于第一预设值,N为第二预设值,所述第二预设值大于等于2;以及,根据权重分组策略,将各所述用户基于所述用户权重进行权重分组,包括根据各所述用户权重对各所述用户进行权重排序,并根据各所述用户年龄,对所述用户权重相同的各所述用户进行二次排序后,根据所述二次排序,依次符合所述预设条件将每N个所述用户划分为同一权重分组,并将所有无法根据所述用户权重成组的所述用户记录为第二无分组用户集;

根据所述第一无分组用户集与所述第二无分组用户集的用户数量,以及第一无分组用户集中各所述用户的所述用户权重与所述第二无分组用户集中各所述用户的所述用户权重,选择所述年龄分组策略或所述权重分组策略两者其中之一作为最优分组策略;

根据所述最优分组策略,对各所述用户进行分组。

2.根据权利要求1所述的分组生成方法,其特征在于,所述根据各所述用户年龄对各所述用户进行年龄排序,根据所述年龄排序,依次将符合预设条件的每N个所述用户划分为同一年龄分组,并将所有无法根据所述用户年龄成组的所述用户记录为第一无分组用户集,包括:步骤S11,将各未分组的所述用户根据所述用户年龄从小到大排序,形成年龄排序链表;

步骤S12,以从所述年龄排序链表中提取的任一所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述年龄排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一年龄分组中,直至将N个所述用户放入同一年龄分组,或完成所述年龄排序链表的遍历后,执行步骤S13;

步骤S13,识别所述年龄分组是否存在N个所述用户,若是,则执行步骤S15,否则,执行步骤S14;

步骤S14,将第一个遍历到的不满足所述预设条件的所述用户作为基准用户,根据所述基准用户,按顺序遍历所述年龄分组,并将所述年龄分组中能够一同与所述基准用户组成同一年龄分组的用户标记为未分组的用户后,将所述年龄分组中未被标记的用户划分为无法根据所述用户年龄成组的用户,并执行步骤S15;

步骤S15,判断未分组的所述用户的数量是否小于N,若是,则结束分组,并将未分组的所述用户划分为无法根据所述用户年龄成组的用户后,将所有无法根据所述用户年龄成组的用户记录为第一无分组用户集;否则,返回步骤S11。

3.根据权利要求1所述的分组生成方法,其特征在于,所述根据各所述用户权重对各所述用户进行权重排序,并根据各所述用户年龄,对所述用户权重相同的各所述用户进行二次排序后,根据所述二次排序,依次符合所述预设条件将每N个所述用户划分为同一权重分组,并将所有无法根据所述用户权重成组的所述用户记录为第二无分组用户集,包括:步骤S21,将各未分组的用户根据各所述用户权重从大到小进行排序,并对所述用户权重相同的各未分组的所述用户,根据所述用户年龄从大到小进行二次排序,形成综合排序列表;

步骤S22,识别所述综合排序列表中各所述用户的用户年龄差距是否大于所述第一预设值,并在识别到所述综合排序列表中,各所述用户的用户年龄差距不大于所述第一预设值时,执行步骤S23;

步骤S23,以从所述综合排序链表中提取的首位所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述综合排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一权重分组中,直至将N个所述用户放入同一权重分组后,执行步骤S24;

步骤S24,判断未分组的所述用户的数量是否小于N,若是,则结束分组,并将未分组的所述用户划分为无法根据所述用户权重成组的用户后,将所有无法根据所述用户权重成组的用户记录为第二无分组用户集;否则,返回步骤S21。

4.根据权利要求3所述的分组生成方法,其特征在于,所述步骤S22还包括:

在识别到所述综合排序列表中,存在用户年龄差距大于所述第一预设值的一对所述用户时,执行步骤S25;

所述根据各所述用户权重对各所述用户进行权重排序,并根据各所述用户年龄,对所述用户权重相同的各所述用户进行二次排序后,根据所述二次排序,依次符合所述预设条件将每N个所述用户划分为同一权重分组,并将所有无法根据所述用户权重成组的所述用户记录为第二无分组用户集,还包括:步骤S25,以从所述综合排序链表中提取的首位所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述年龄排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一年龄分组中,直至将N个所述用户放入同一权重分组,或完成所述综合排序链表的遍历后,执行步骤S26;

步骤S26,识别所述权重分组是否存在N个所述用户,若是,则执行步骤S24,否则,执行步骤S27;

步骤S27,将所述权重分组中首位用户和所述综合排序链表中首位未分组的用户划分为无法根据所述用户权重成组的用户后,执行步骤S24。

5.根据权利要求1、3或4任意一项所述的分组生成方法,其特征在于,所述用户权重的计算方式为:其中,weight为所述用户权重,currentTime为

所述用户未组成分组的时间,applyTime为所述用户的报名时间。

6.一种分组生成装置,包括:

数据获取模块,用于获取待分组的各用户的用户年龄和用户权重;其中所述用户权重与所述用户未组成分组的时间成正比;

年龄分组模块,用于根据年龄分组策略,将各所述用户基于所述用户年龄进行年龄分组,包括根据各所述用户年龄对各所述用户进行年龄排序,根据所述年龄排序,依次将符合预设条件的每N个所述用户划分为同一年龄分组,并将所有无法根据所述用户年龄成组的所述用户记录为第一无分组用户集;

权重分组模块,用于根据权重分组策略,将各所述用户基于所述用户权重进行权重分组,包括根据各所述用户权重对各所述用户进行权重排序,并根据各所述用户年龄,对所述用户权重相同的各所述用户进行二次排序后,根据所述二次排序,依次符合所述预设条件将每N个所述用户划分为同一权重分组,并将所有无法根据所述用户权重成组的所述用户记录为第二无分组用户集;其中,所述预设条件为同一用户分组内任意两个所述用户的用户年龄差距不大于第一预设值,N为第二预设值,所述第二预设值大于等于2;

策略确定模块,用于根据所述第一无分组用户集与所述第二无分组用户集的用户的数量差,以及第一无分组用户集中最大的所述用户权重与所述第二无分组用户集中最大的所述用户权重,选择所述年龄分组策略或所述权重分组策略两者其中之一作为最优分组策略;

分组执行模块,用于根据所述最优分组策略,对各所述用户进行分组。

7.根据权利要求6所述的分组生成装置,其特征在于,所述年龄分组模块具体用于执行:

步骤S11,将各未分组的所述用户根据所述用户年龄从小到大排序,形成年龄排序链表;

步骤S12,以从所述年龄排序链表中提取的任一所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述年龄排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一年龄分组中,直至将N个所述用户放入同一年龄分组,或完成所述年龄排序链表的遍历后,执行步骤S13;

步骤S13,识别所述年龄分组是否存在N个所述用户,若是,则执行步骤S15,否则,执行步骤S14;

步骤S14,将第一个遍历到的不满足所述预设条件的所述用户作为基准用户,根据所述基准用户,按顺序遍历所述年龄分组,并将所述年龄分组中能够一同与所述基准用户组成同一年龄分组的用户标记为未分组的用户后,将所述年龄分组中未被标记的用户划分为无法根据所述用户年龄成组的用户,并执行步骤S15;

步骤S15,判断未分组的所述用户的数量是否小于N,若是,则结束分组,并将未分组的所述用户划分为无法根据所述用户年龄成组的用户后,将所有无法根据所述用户年龄成组的用户记录为第一无分组用户集;否则,返回步骤S11。

8.根据权利要求6所述的分组生成装置,其特征在于,所述权重分组模块具体用于执行:

步骤S21,将各未分组的用户根据各所述用户权重从大到小进行排序,并对所述用户权重相同的各未分组的所述用户,根据所述用户年龄从大到小进行二次排序,形成综合排序列表;

步骤S22,识别所述综合排序列表中各所述用户的用户年龄差距是否大于所述第一预设值,并在识别到所述综合排序列表中,各所述用户的用户年龄差距不大于所述第一预设值时,执行步骤S23;

步骤S23,以从所述综合排序链表中提取的首位所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述综合排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一权重分组中,直至将N个所述用户放入同一权重分组后,执行步骤S24;

步骤S24,判断未分组的所述用户的数量是否小于N,若是,则结束分组,并将未分组的所述用户划分为无法根据所述用户权重成组的用户后,将所有无法根据所述用户权重成组的用户记录为第二无分组用户集;否则,返回步骤S21。

9.根据权利要求8所述的分组生成装置,其特征在于,所述步骤S22还包括:

在识别到所述综合排序列表中,存在用户年龄差距大于所述第一预设值的一对所述用户时,执行步骤S25;

所述权重分组模块还用于执行:

步骤S25,以从所述综合排序链表中提取的首位所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述年龄排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一年龄分组中,直至将N个所述用户放入同一权重分组,或完成所述综合排序链表的遍历后,执行步骤S26;

步骤S26,识别所述权重分组是否存在N个所述用户,若是,则执行步骤S24,否则,执行步骤S27;

步骤S27,将所述权重分组中首位用户和所述综合排序链表中首位未分组的用户划分为无法根据所述用户权重成组的用户,并将所述权重分组中的其余所述用户标记为未分组的用户后,执行步骤S24。

10.一种分组生成系统,其特征在于,包括如权利要求6-9任意一项所述的分组生成装置。

说明书 :

分组生成方法、装置及系统

技术领域

[0001] 本申请涉及分组技术领域,尤其涉及一种分组生成方法、装置及系统。

背景技术

[0002] 随着社会的进步,越来越多的用户开始选择在线教育。而随着在线教育的人数的增多,如何对选择在线教育的用户进行合理的分组安排,是急需解决的一个技术问题。为解决上述问题,现有技术中,采用传统的高校以及培训机构的自动分组技术,来对在线教育的用户进行自动分组。但由于传统的高校和培训机构的分组技术,其进行分组的目标对象是相同或相似年龄段的用户,这些用户具有相同或相似的接收能力,而在线教育中,用户的年龄水平可能相差甚远,如在线美术教育,其目标对象年龄从4-10岁不等,导致接收能力参差不齐。且由于传统的分组技术对人数没有要求,所有用户均会在一定批次内进行分组,而在线教育大多为是小班制度,对分组人数有比较严格的限制,人数过多会影响教学效果,人数太少不利于教师资源的利用。因此,传统的分组技术并不能很好地适用于在线教育。

发明内容

[0003] 本申请实施例所要解决的技术问题在于,提供一种分组生成方法、装置及系统,提高在线教育的用户分组效果。
[0004] 为解决上述问题,本申请实施例提供一种分组生成方法,至少包括如下步骤:
[0005] 获取待分组的各用户的用户年龄和用户权重;其中所述用户权重与所述用户未组成分组的时间成正比;
[0006] 根据年龄分组策略,将各所述用户基于所述用户年龄进行年龄分组,包括根据各所述用户年龄对各所述用户进行年龄排序,根据所述年龄排序,依次将符合预设条件的每N个所述用户划分为同一年龄分组,并将所有无法根据所述用户年龄成组的所述用户记录为第一无分组用户集;其中,所述预设条件为同一用户分组内任意两个所述用户的用户年龄差距不大于第一预设值,N为第二预设值,所述第二预设值大于等于2;以及,[0007] 根据权重分组策略,将各所述用户基于所述用户权重进行权重分组,包括根据各所述用户权重对各所述用户进行权重排序,并根据各所述用户年龄,对所述用户权重相同的各所述用户进行二次排序后,根据所述二次排序,依次符合所述预设条件将每N个所述用户划分为同一权重分组,并将所有无法根据所述用户权重成组的所述用户记录为第二无分组用户集;
[0008] 根据所述第一无分组用户集与所述第二无分组用户集的用户数量,以及第一无分组用户集中各所述用户的所述用户权重与所述第二无分组用户集中各所述用户的所述用户权重,选择所述年龄分组策略或所述权重分组策略两者其中之一作为最优分组策略;
[0009] 根据所述最优分组策略,对各所述用户进行分组。
[0010] 进一步的,所述根据各所述用户年龄对各所述用户进行年龄排序,根据所述年龄排序,依次将符合预设条件的每N个所述用户划分为同一年龄分组,并将所有无法根据所述用户年龄成组的所述用户记录为第一无分组用户集,包括:
[0011] 步骤S11,将各未分组的所述用户根据所述用户年龄从小到大排序,形成年龄排序链表;
[0012] 步骤S12,以从所述年龄排序链表中提取的任一所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述年龄排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一年龄分组中,直至将N个所述用户放入同一年龄分组,或完成所述年龄排序链表的遍历后,执行步骤S13;
[0013] 步骤S13,识别所述年龄分组是否存在N个所述用户,若是,则执行步骤S15,否则,执行步骤S14;
[0014] 步骤S14,将第一个遍历到的不满足所述预设条件的所述用户作为基准用户,根据所述基准用户,按顺序遍历所述年龄分组,并将所述年龄分组中能够一同与所述基准用户组成同一年龄分组的用户标记为未分组的用户后,将所述年龄分组中未被标记的用户划分为无法根据所述用户年龄成组的用户,并执行步骤S15;
[0015] 步骤S15,判断未分组的所述用户的数量是否小于N,若是,则结束分组,并将未分组的所述用户划分为无法根据所述用户年龄成组的用户后,将所有无法根据所述用户年龄成组的用户记录为第一无分组用户集;否则,返回步骤S11。
[0016] 进一步的,所述根据各所述用户权重对各所述用户进行权重排序,并根据各所述用户年龄,对所述用户权重相同的各所述用户进行二次排序后,根据所述二次排序,依次符合所述预设条件将每N个所述用户划分为同一权重分组,并将所有无法根据所述用户权重成组的所述用户记录为第二无分组用户集,包括:
[0017] 步骤S21,将各未分组的用户根据各所述用户权重从大到小进行排序,并对所述用户权重相同的各未分组的所述用户,根据所述用户年龄从大到小进行二次排序,形成综合排序列表;
[0018] 步骤S22,识别所述综合排序列表中各所述用户的用户年龄差距是否大于所述第一预设值,并在识别到所述综合排序列表中,各所述用户的用户年龄差距不大于所述第一预设值时,执行步骤S23;
[0019] 步骤S23,以从所述综合排序链表中提取的首位所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述综合排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一权重分组中,直至将N个所述用户放入同一权重分组后,执行步骤S24;
[0020] 步骤S24,判断未分组的所述用户的数量是否小于N,若是,则结束分组,并将未分组的所述用户划分为无法根据所述用户权重成组的用户后,将所有无法根据所述用户权重成组的用户记录为第二无分组用户集;否则,返回步骤S21。
[0021] 进一步的,所述步骤S22还包括:
[0022] 在识别到所述综合排序列表中,存在用户年龄差距大于所述第一预设值的一对所述用户时,执行步骤S25;
[0023] 所述根据各所述用户权重对各所述用户进行权重排序,并根据各所述用户年龄,对所述用户权重相同的各所述用户进行二次排序后,根据所述二次排序,依次符合所述预设条件将每N个所述用户划分为同一权重分组,并将所有无法根据所述用户权重成组的所述用户记录为第二无分组用户集,还包括:
[0024] 步骤S25,以从所述综合排序链表中提取的首位所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述年龄排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一年龄分组中,直至将N个所述用户放入同一权重分组,或完成所述综合排序链表的遍历后,执行步骤S26;
[0025] 步骤S26,识别所述权重分组是否存在N个所述用户,若是,则执行步骤S24,否则,执行步骤S27;
[0026] 步骤S27,将所述权重分组中首位用户和所述综合排序链表中首位未分组的用户划分为无法根据所述用户权重成组的用户,并将所述权重分组中的其余所述用户标记为未分组的用户后,执行步骤S24。
[0027] 进一步的,所述用户权重的计算方式为:
[0028] 其中 ,weight为所述用户权重,currentTime为所述用户未组成分组的时间,applyTime为所述用户的报名时间。
[0029] 进一步的,还提供一种分组生成装置,包括:
[0030] 数据获取模块,用于获取待分组的各用户的用户年龄和用户权重;其中所述用户权重与所述用户未组成分组的时间成正比;
[0031] 年龄分组模块,用于根据年龄分组策略,将各所述用户基于所述用户年龄进行年龄分组,包括根据各所述用户年龄对各所述用户进行年龄排序,根据所述年龄排序,依次将符合预设条件的每N个所述用户划分为同一年龄分组,并将所有无法根据所述用户年龄成组的所述用户记录为第一无分组用户集;
[0032] 权重分组模块,用于根据权重分组策略,将各所述用户基于所述用户权重进行权重分组,包括根据各所述用户权重对各所述用户进行权重排序,并根据各所述用户年龄,对所述用户权重相同的各所述用户进行二次排序后,根据所述二次排序,依次符合所述预设条件将每N个所述用户划分为同一权重分组,并将所有无法根据所述用户权重成组的所述用户记录为第二无分组用户集;其中,所述预设条件为同一用户分组内任意两个所述用户的用户年龄差距不大于第一预设值,N为第二预设值,所述第二预设值大于等于2;
[0033] 策略确定模块,用于根据所述第一无分组用户集与所述第二无分组用户集的用户的数量差,以及第一无分组用户集中最大的所述用户权重与所述第二无分组用户集中最大的所述用户权重,选择所述年龄分组策略或所述权重分组策略两者其中之一作为最优分组策略;
[0034] 分组执行模块,用于根据所述最优分组策略,对各所述用户进行分组。
[0035] 进一步的,所述年龄分组模块具体用于执行:
[0036] 步骤S11,将各未分组的所述用户根据所述用户年龄从小到大排序,形成年龄排序链表;
[0037] 步骤S12,以从所述年龄排序链表中提取的任一所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述年龄排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一年龄分组中,直至将N个所述用户放入同一年龄分组,或完成所述年龄排序链表的遍历后,执行步骤S13;
[0038] 步骤S13,识别所述年龄分组是否存在N个所述用户,若是,则执行步骤S15,否则,执行步骤S14;
[0039] 步骤S14,将第一个遍历到的不满足所述预设条件的所述用户作为基准用户,根据所述基准用户,按顺序遍历所述年龄分组,并将所述年龄分组中能够一同与所述基准用户组成同一年龄分组的用户标记为未分组的用户后,将所述年龄分组中未被标记的用户划分为无法根据所述用户年龄成组的用户,并执行步骤S15;
[0040] 步骤S15,判断未分组的所述用户的数量是否小于N,若是,则结束分组,并将未分组的所述用户划分为无法根据所述用户年龄成组的用户后,将所有无法根据所述用户年龄成组的用户记录为第一无分组用户集;否则,返回步骤S11。
[0041] 进一步的,所述权重分组模块具体用于执行:
[0042] 步骤S21,将各未分组的用户根据各所述用户权重从大到小进行排序,并对所述用户权重相同的各未分组的所述用户,根据所述用户年龄从大到小进行二次排序,形成综合排序列表;
[0043] 步骤S22,识别所述综合排序列表中各所述用户的用户年龄差距是否大于所述第一预设值,并在识别到所述综合排序列表中,各所述用户的用户年龄差距不大于所述第一预设值时,执行步骤S23;
[0044] 步骤S23,以从所述综合排序链表中提取的首位所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述综合排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一权重分组中,直至将N个所述用户放入同一权重分组后,执行步骤S24;
[0045] 步骤S24,判断未分组的所述用户的数量是否小于N,若是,则结束分组,并将未分组的所述用户划分为无法根据所述用户权重成组的用户后,将所有无法根据所述用户权重成组的用户记录为第二无分组用户集;否则,返回步骤S21。
[0046] 进一步的,所述步骤S22还包括:
[0047] 在识别到所述综合排序列表中,存在用户年龄差距大于所述第一预设值的一对所述用户时,执行步骤S25;
[0048] 所述权重分组模块还用于执行:
[0049] 步骤S25,以从所述综合排序链表中提取的首位所述用户的用户年龄为基准信息,根据所述基准信息,按顺序遍历所述年龄排序链表,并将依次遍历到的符合所述预设条件的所述用户放入同一年龄分组中,直至将N个所述用户放入同一权重分组,或完成所述综合排序链表的遍历后,执行步骤S26;
[0050] 步骤S26,识别所述权重分组是否存在N个所述用户,若是,则执行步骤S24,否则,执行步骤S27;
[0051] 步骤S27,将所述权重分组中首位用户和所述综合排序链表中首位未分组的用户划分为无法根据所述用户权重成组的用户后,执行步骤S24。
[0052] 进一步的,还提供一种分组生成系统,包括如上述实施例所述的分组生成装置。
[0053] 实施本申请实施例,具有如下有益效果:
[0054] 与现有技术相比,本实施例根据不同的年龄水平,以及根据用户的报名时间,分别执行对应的分组策略,并对比两种策略的分组结果后,会选择其中一种比较优的解进行成组,进而提高在线教育的用户分组效果。

附图说明

[0055] 图1是本申请的实施例一提供的分组生成方法的流程示意图;
[0056] 图2是实施例一中步骤S2的流程示意图;
[0057] 图3是实施例一中步骤S3的流程示意图;
[0058] 图4是实施例一中步骤S3的又一流程示意图;
[0059] 图5是本申请的实施例二提供的分组生成装置的结构示意图。

具体实施方式

[0060] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0061] 参见图1,是本申请的实施例一提供的分组生成方法的流程示意图,如图1所示,包括:
[0062] 步骤S1,获取待分组的各用户的用户年龄和用户权重。
[0063] 其中用户权重与用户未组成分组的时间成正比。
[0064] 在本实施例中,获取到的各用户的信息包括用户年龄、用户权重、用户ID、所选择的在线教育上课时间段等,并生成一个信息链表,保存获取到的各用户的信息。其中,用户权重根据以下公式计算得出:
[0065] 其中 ,weight为所述用户权重,currentTime为所述用户未组成分组的时间,applyTime为所述用户的报名时间。
currentTime和applyTime的单位为毫秒。
[0066] 步骤S2,根据年龄分组策略,将各用户基于用户年龄进行年龄分组,包括根据各用户年龄对各用户进行年龄排序,根据年龄排序,依次将符合预设条件的每N个用户划分为同一年龄分组,并将所有无法根据用户年龄成组的用户记录为第一无分组用户集。
[0067] 需要说明的是,预设条件为同一用户分组内任意两个用户的用户年龄差距不大于第一预设值,N为第二预设值,第二预设值大于等于2。
[0068] 在本实施例中,采用递归执行的方式对各用户进行年龄分组,具体执行方式如图2所示,包括:
[0069] 步骤S11,将各未分组的用户根据用户年龄从小到大排序,形成年龄排序链表。
[0070] 在本实施例中,将形成的年龄排序链表定义为userList1。
[0071] 步骤S12,以从年龄排序链表中提取的任一用户的用户年龄为基准信息,根据基准信息,按顺序遍历年龄排序链表,并将依次遍历到的符合预设条件的用户放入同一年龄分组中,直至将N个用户放入同一年龄分组,或完成年龄排序链表的遍历后,执行步骤S13。
[0072] 在本实施例中,从userList1中获取首位用户的用户年龄,将其作为基准信息后,按顺序遍历userList1,并将依次遍历到的符合预设条件的用户放入同一年龄分组group1中,直至将N个用户放入同一年龄分组group1,或完成userList1的遍历,并将不满足预设条件或未被遍历到的用户放置到leftUsers文件中。
[0073] 步骤S13,识别年龄分组是否存在N个用户,若是,则执行步骤S15,否则,执行步骤S14。
[0074] 步骤S14,将第一个遍历到的不满足预设条件的用户作为基准用户,根据基准用户,按顺序遍历年龄分组,并将年龄分组中能够一同与基准用户组成同一年龄分组的用户标记为未分组的用户后,将年龄分组中未被标记的用户划分为无法根据用户年龄成组的用户,并执行步骤S15。
[0075] 在本实施例中,若group1中的用户数量不足N个,则生成一个临时分组nextGroup,同时将第一个放入leftUsers的用户放入nextGroup中,并将其作为基准用户,依次遍历Group1中的用户后,将Group1中与nextGroup中所有的用户满足预设条件的用户放入nextGroup中,并将nextGroup中的用户放入leftUsers中,标记为未分组用户,将Group1中无法放入nextGroup中的用户划分为无法根据用户年龄成组的用户。
[0076] 步骤S15,判断未分组的用户的数量是否小于N,若是,则结束分组,并将未分组的用户划分为无法根据用户年龄成组的用户后,将所有无法根据用户年龄成组的用户记录为第一无分组用户集;否则,返回步骤S11。
[0077] 在本实施例中,当leftUsers中的用户数量小于N时,则结束分组,并将leftUsers中所有的用户,以及被划分为无法根据用户年龄成组的用户,记录为第一无分组用户集。
[0078] 步骤S3,根据权重分组策略,将各用户基于用户权重进行权重分组,包括根据各用户权重对各用户进行权重排序,并根据各用户年龄,对用户权重相同的各用户进行二次排序后,根据二次排序,依次符合预设条件将每N个用户划分为同一权重分组,并将所有无法根据用户权重成组的用户记录为第二无分组用户集。
[0079] 在本实施例中,采用递归执行的方式对各用户进行权重分组,具体执行方式如图3所示,包括:
[0080] 步骤S21,将各未分组的用户根据各用户权重从大到小进行排序,并对用户权重相同的各未分组的用户,根据用户年龄从大到小进行二次排序,形成综合排序列表。
[0081] 在本实施例中,将综合排序列表定义为userList2。
[0082] 步骤S22,识别综合排序列表中各用户的用户年龄差距是否大于第一预设值,并在识别到综合排序列表中,各用户的用户年龄差距不大于第一预设值时,执行步骤S23。
[0083] 步骤S23,以从综合排序链表中提取的首位用户的用户年龄为基准信息,根据基准信息,按顺序遍历综合排序链表,并将依次遍历到的符合预设条件的用户放入同一权重分组中,直至将N个用户放入同一权重分组后,执行步骤S24。
[0084] 在本实施例中,从userList2中获取首位用户的用户年龄,将其作为基准信息后,按顺序遍历userList2,并将依次遍历到的符合预设条件的用户放入同一权重分组group2中,直至将N个用户放入同一权重分组group2后,将userList2中剩余的用户放置到nextUsers文件中。
[0085] 步骤S24,判断未分组的用户的数量是否小于N,若是,则结束分组,并将未分组的用户划分为无法根据用户权重成组的用户后,将所有无法根据用户权重成组的用户记录为第二无分组用户集;否则,返回步骤S21。
[0086] 在本实施例中,当nextUsers中的用户数量小于N时,则结束分组,并将nextUsers中所有的用户作为无法根据用户权重成组的用户。
[0087] 在本实施例中,如图4所示,是步骤S3的又一流程示意图。在本实施例中,除图3所示流程外,步骤S22还包括:在识别到所述综合排序列表中,存在用户年龄差距大于所述第一预设值的一对所述用户时,执行步骤S25。
[0088] 步骤S25,以从综合排序链表中提取的首位用户的用户年龄为基准信息,根据基准信息,按顺序遍历年龄排序链表,并将依次遍历到的符合预设条件的用户放入同一年龄分组中,直至将N个用户放入同一权重分组,或完成综合排序链表的遍历后,执行步骤S26。
[0089] 在本实施例中,从userList2中获取首位用户的用户年龄,将其作为基准信息后,按顺序遍历userList2,并将依次遍历到的符合预设条件的用户放入同一权重分组group2中,直至将N个用户放入同一年龄分组group2,或完成userList2的遍历,并将不满足预设条件或未被遍历到的用户放置到nextUsers文件中。
[0090] 步骤S26,识别权重分组是否存在N个用户,若是,则执行步骤S24,否则,执行步骤S27。
[0091] 步骤S27,将权重分组中首位用户和综合排序链表中首位未分组的用户划分为无法根据用户权重成组的用户,并将权重分组中的其余用户标记为未分组的用户后,执行步骤S24。
[0092] 在本实施例中,将权重分组中被标记为未分组的用户放置到nextUsers文件中。
[0093] 步骤S4,根据第一无分组用户集与第二无分组用户集的用户的数量差,以及第一无分组用户集中最大的用户权重与第二无分组用户集中最大的用户权重,选择年龄分组策略或权重分组策略两者其中之一作为最优分组策略。
[0094] 在本实施例中,当第一无分组用户集与第二无分组用户集中某一个的用户数量为零时,则选择与该无分组用户集对应的分组策略作为最优策略。如第一无分组用户集中用户数量为零,则选择年龄分组策略作为最优分组策略,或两者的用户数量均为零,则随机选择。否侧,判断第一无分组用户集与第二无分组用户集的用户数量差是否大于预设阈值,若数量差大于预设阈值时,则选择与数量较小的无分组用户集对应的分组策略。其中预设阈值可根据需要自行设定,在此不做限定;若数量差不大于预设阈值时,则优先将第一无分组用户集中所有用户的平均权重,与第二无分组用户集中所有用户的平均权重进行比较,将平均权重较大一方对应的分组策略作为最优分组策略。若平均权重相同,则对比两方最大的用户权重,并选择用户权重较大一方对应的分组策略作为最优分组策略;若两方最大的用户权重相同,则比较次大的用户权重,以此类推。
[0095] 步骤S5,根据最优分组策略,对各用户进行分组。
[0096] 与现有技术相比,本实施例根据不同的年龄水平,以及根据用户的报名时间,分别执行对应的分组策略,并对比两种策略的分组结果后,会选择其中一种比较优的解进行成组,进而提高在线教育的用户分组效果。
[0097] 进一步的,参见图5,是本申请的实施例二提供的分组生成装置的结构示意图。包括:
[0098] 数据获取模块101,用于获取待分组的各用户的用户年龄和用户权重。
[0099] 其中用户权重与用户未组成分组的时间成正比。
[0100] 年龄分组模块102,用于根据年龄分组策略,将各用户基于用户年龄进行年龄分组,包括根据各用户年龄对各用户进行年龄排序,根据年龄排序,依次将符合预设条件的每N个用户划分为同一年龄分组,并将所有无法根据用户年龄成组的用户记录为第一无分组用户集。
[0101] 在本实施例中,年龄分组模块102具体用于执行如图2所述的步骤流程。
[0102] 权重分组模块103,用于根据权重分组策略,将各用户基于用户权重进行权重分组,包括根据各用户权重对各用户进行权重排序,并根据各用户年龄,对用户权重相同的各用户进行二次排序后,根据二次排序,依次符合预设条件将每N个用户划分为同一权重分组,并将所有无法根据用户权重成组的用户记录为第二无分组用户集。
[0103] 其中,预设条件为同一用户分组内任意两个用户的用户年龄差距不大于第一预设值,N为第二预设值,第二预设值大于等于2。
[0104] 在本实施例中,权重分组模块103具体用于执行如图3或图4所示的步骤流程。
[0105] 策略确定模块104,用于根据第一无分组用户集与第二无分组用户集的用户的数量差,以及第一无分组用户集中最大的用户权重与第二无分组用户集中最大的用户权重,选择年龄分组策略或权重分组策略两者其中之一作为最优分组策略。
[0106] 分组执行模块105,用于根据最优分组策略,对各用户进行分组。
[0107] 进一步的,本申请的另一实施例还提供一种分组生成系统,包括如实施例二所述的分组生成装置。
[0108] 本申请的又一实施例还提供了一种分组生成终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述实施例所述的分组生成方法。
[0109] 以上所述是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
[0110] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。