本申请涉及计算机技术领域,尤其是涉及一种自动呼叫分配方法、装置、电子设备及存储介质。
背景技术:
自动呼叫分配器(automaticcalldistributor,acd)又称排队机,主要用来处理来话呼叫;在呼叫中心中,acd自动呼叫分配是一项很重要的技术,acd将呼叫中心系统的呼入电话按特定规则自动转接至正确的坐席或进行其它自动处理,如排队或留言等,其性能的优劣直接影响着呼叫中心的效率和顾客满意度。
但在一些大型语音联络中心,坐席量在一千席以上,各个空闲坐席应当按照预设规则进行排序;由于空闲坐席量属于流动变化量,既有空闲坐席的新增,同时又会有空闲坐席的占用,因此当有大量用户呼入时,易因各新增空闲坐席就绪时间长,导致查找空闲坐席的时间较长,从而易导致用户等待时间增长,进而导致用户的体验较差。
技术实现要素:
为了降低查找空闲坐席的时间,以降低用户等待时间以及提升用户体验,本申请提供一种自动呼叫分配方法、装置、电子设备及存储介质,具体如下所示。
第一方面,本申请提供一种自动呼叫分配方法,采用如下的技术方案:
一种自动呼叫分配方法,包括:
当检测到任一坐席由占用状态变更为空闲状态时,获取所述任一坐席对应的属性信息;
基于所述任一坐席对应的属性信息,确定所述任一坐席对应的权重信息;基于所述任一坐席对应的权重信息从索引链表中查找待插入的位置,并将所述任一坐席对应的坐席信息插入至所述待插入的位置;
基于插入处理后的索引链表,为呼叫分配坐席;
其中,所述索引链表包括:原始链表以及对应的至少一级索引,所述原始链表为对当前空闲坐席按照各自对应的权重信息进行排序得到的,所述至少一级索引中每级索引是基于所述权重信息创建的。
通过采用上述技术方案,当有任一被占用的坐席由被占用状态变更为空闲状态时,获取该坐席的属性信息,并根据该坐席的属性信息确定该坐席的权重信息,然后根据该坐席的权重信息在索引链表中查找待插入位置并插入,由于待插入的索引链表中包含按照空闲坐席的权重排序的原始链表以及基于权重信息创建的至少一级索引,也就是说,在查找待插入位置时,基于至少一级索引和该原始链表进行位置查询,可以加快查找到待插入位置的速度,减少新增空闲坐席的就绪时间,即提高索引链表的就绪效率;从而便于使得在有大量用户呼叫呼入时,快速地为各呼叫分配坐席,有效减少用户呼叫等待时间,进而可以提升用户体验。
在另一种可能实现的方式中,基于述任一坐席对应的权重信息从索引链表中查找待插入的位置,之前还包括:
创建原始链表,所述原始链表中包含多个结点;
其中,各个结点包含对应坐席的权重信息;
基于所述原始链表,创建所述至少一级索引,得到所述索引链表。
通过上述技术方案,创建至少一级索引,在任一变更为空闲状态的坐席查找插入位置时,可首先由一级索引开始遍历,当遍历到最接近该坐席对应的权重信息时,由包含该权重信息的位置下降至原始链表,从而便于快速在原始链表中查找到待插入坐席的插入位置。
在另一种可能实现的方式中,所述基于所述原始链表,创建所述至少一级索引,包括:
将所述原始链表中的各个结点划分为至少两个结点组,每个结点组中包含至少两个相邻的结点,各个结点组中包含的结点不重叠;
确定所述各个结点组分别对应的索引,任一结点组对应的索引为所述任一结点组中的最大权重值或者最小权重值;
若未满足预设条件,确定当前级索引,并基于所述当前级索引确定下一级索引;
若未满足预设条件,则循环执行确定当前级索引,基于所述当前级索引确定下一级索引,直至满足所述预设条件;
所述预设条件包括:
当前级索引包含结点组成的结点组的数目小于2。
通过采用上述技术方案,在创建一级索引时,对原始链表的每相邻的至少两个结点作为一个结点组,并将结点组中包含最大或最小权重值的结点做为索引结点,各索引结点形成一级索引;当一级索引中索引结点数小于2时,继续确定当前级索引,直至当前级索引中包含的结点数小于2,完成索引链表的创建;多级索引的创立,便于提高任一变更为空闲状态的坐席插入原始链表的速度,提高了索引链表更新就绪的效率,从而便于坐席的快速分配,提升用户体验。
在另一种可能实现的方式中,当前级索引中包含多个索引结点;
基于所述当前级索引确定下一级索引,包括:
将各个索引结点划分为至少两个索引结点组,每个索引结点组中包含至少两个相邻的索引结点,各个索引结点组中包含的索引结点不重叠;
基于所述至少两个索引结点组确定下一级索引。
通过采用上述技术方案,基于当前级索引确定下一级索引时,首先将一级索引中的每相邻的至少两个索引结点作为一个索引结点组,并将索引结点组中包含的最大或最小权重值的索引结点作为二级索引的索引结点;此时若二级索引中包含的索引结点数小于2,停止创建索引;若二级索引中包含的索引结点数不小于2时,继续对二级索引中包含的索引结点创建索引结点组,并最终形成三级索引,直至索引结点数小于2时,停止创建索引;对各级索引中的索引结点继续创建索引结点组,并始终使索引结点组中包含的最大权重值或最小权重值作为下一级的索引结点,便于提高任一变更为空闲状态的坐席最终插入原始链表的效率。
在另一种可能实现的方式中,基于所述任一坐席对应的权重信息从索引链表中查找待插入的位置,之后还包括:
确定待插入结点的各级索引;
基于所述任一坐席对应的权重信息在所述待插入结点的各级索引中分别插入索引结点。
通过采用上述技术方案,在将任一变更为空闲状态的坐席插入原始链表前,判断包含该坐席权重信息的结点是否为索引结点,若是,则需在插入对应结点时,同步插入索引结点至对应的至少一级索引中,以便使索引链表处于最新状态,从而便于下次快速确定出变更为空闲状态的坐席的位置,提高该坐席的就绪效率,进而便于提高为用户分配坐席的效率以及提升用户体验。
在另一种可能实现的方式中,获取当前各个空闲状态的坐席分别对应的属性信息;
基于所述当前各个空闲状态的坐席分别对应的属性信息,确定所述当前各个空闲状态的坐席分别对应的权重信息;
基于所述当前各个空闲状态的坐席分别对应的权重信息创建所述原始链表。
通过采用上述技术方案,在创建索引链表前,首先创建原始链表;在创建原始链表前,首先获取当前处于空闲状态的坐席的属性信息,并根据对应属性信息,确定各坐席的权重信息,并根据各个坐席的权重信息,按照预设规则对各个坐席进行排序,以使原始链表具备一定规则,从而为变更为空闲状态的坐席的快速插入提供便利。
在另一种可能实现的方式中,当检测到至少两个呼叫时,
基于原始链表,为呼叫分配坐席,包括:
基于检测到各个呼叫的时间信息,确定呼叫顺序;
基于呼叫顺序从所述原始链表中确定各自对应的坐席,并为所述各个呼叫分配坐席。
通过采用上述技术方案,当有大量用户呼入时,首先确定各个呼叫的时间信息,并依据各个呼叫的时间信息确定呼叫顺序;然后根据呼叫顺序依次将原始链表中的处于空闲状态的坐席分配给各呼叫,也即可以为呼叫靠前用户优先分配合适的坐席,从而可以提升分配效率,进而可以提升用户的体验度。
在另一种可能实现的方式中,当检测到任一坐席由空闲状态变更为占用状态时,从所述有序链表中确定待删除的结点以及从各级索引中确定各自待删除的结点;
删除所述有序链表中待删除的结点以及所述各级索引中确定出的待删除的结点。
通过采用上述技术方案,当原始链表中的坐席由空闲状态变更为占用状态时,即该坐席接入呼叫时,将包含该坐席权重信息的结点由原始链表中删除,以实现索引链表的更新;若包含该坐席权重信息的结点同时为索引结点时,应当在对应层级索引中将对应索引结点同步删除,以减小索引链表混乱的可能性,便于使索引链表始终维持原有规则,从而便于准确、快速地为呼叫分配坐席。
第二方面,本申请提供一种自动呼叫分配装置,采用如下的技术方案:
一种自动呼叫分配装置,包括:
第一获取模块,用于当检测到任一坐席由占用状态变更为空闲状态时,获取所述任一坐席对应的属性信息;
第一确定模块,用于基于所述任一坐席对应的属性信息,确定所述任一坐席对应的权重信息;
第一插入模块,用于基于所述任一坐席对应的权重信息从索引链表中查找待插入的位置,并将所述任一坐席对应的坐席信息插入至所述待插入的位置;
第一分配模块,用于基于插入处理后的索引链表,为呼叫分配坐席;
其中,所述索引链表包括:原始链表以及对应的至少一级索引,所述原始链表为对当前空闲坐席按照各自对应的权重信息进行排序得到的,所述至少一级索引中每级索引是基于所述权重信息创建的。
通过采用上述技术方案,当检测到任一坐席由占用状态变更为空闲状态时,说明该坐席处于未接入呼叫状态,即就绪状态,此时第一获取模块获取该坐席对应的属性信息;然后通过第一确定模块确定该坐席的权重信息,再由第一插入模块依据对应权重信息将该坐席插入包含至少一级索引的索引链表中,至少一级索引的建立,为该坐席的插入提供了便利,以便实现索引链表的快速更新;从而在有大量呼叫呼入时,更新完毕的索引链表可及时、快速地将原始链表中的坐席依次分配给各呼叫,减少用户呼叫等待时间,提升用户体验感。
在另一种可能的实现方式中,所述装置还包括第一创建模块及第二创建模块,其中,
第一创建模块,用于创建原始链表,所述原始链表中包含多个结点;
其中,各个结点中包含对应坐席的权重信息;
第二创建模块,用于基于所述原始链表,创建所述至少一级索引,得到所述索引链表。
通过采用上述技术方案,第一创建模块创建出原始链表,原始链表包含各个坐席的权重信息;再使第二创建模块基于原始链表创建至少一级索引,至少一级索引的设置,便于第一插入模块快速的将变更为空闲状态的坐席插入原始链表,从而实现索引链表的快速更新。
在另一种可能的实现方式中,第二创建模块在基于原始链表,创建至少一级索引时,具体用于:
将原始链表中的各个结点划分为至少两个结点组,每个结点组中包含至少两个相邻的结点,各个结点组中包含的结点不重叠;
确定各个结点组分别对应的索引结点,任一结点组对应的索引结点为任一结点组中的包含最大权重值或者最小权重值的结点;
若未满足预设条件,确定当前级索引,并基于当前级索引确定下一级索引;
若未满足预设条件,则循环执行确定当前级索引,基于当前级索引确定下一级索引,直至满足预设条件。
其中,当前级索引中包含多个索引结点;
预设条件包括:
当前级索引包含的索引结点数目小于2。
通过采用上述技术方案,先将原始链表中的各个结点划分为至少一个结点组,再为各个结点组确定对应索引,在第一插入模块需要根据权重信息将对应坐席进行插入时,可首先由对应索引开始遍历,并由对应索引处最终下降至原始链表,如此可便于第一插入模块快速的将变更为空闲状态的坐席插入原始链表;若当前级索引中包含的结点组成的结点组数目不小于2,则确定当前级索引,并基于当前级索引确定下一级索引;若下一级索引仍未满足预设条件,则循环执行确定当前级索引,并基于当前级索引创建下一级索引,直至满足预设条件,完成索引链表的创建,以便进一步的提高第一插入模块的工作效率。
在另一种可能的实现方式中,第二创建模块在基于所述当前级索引确定下一级索引时,具体用于:
将各个索引结点划分为至少两个索引结点组,每个索引结点组中包含至少两个相邻的索引结点,各个索引结点组中包含的索引结点不重叠;
基于所述至少两个索引结点组确定下一级索引。
通过采用上述技术方案,在未满足预设条件时,将当前级索引中的各索引结点划分为各个索引结点组,以便确定当前级索引;此时若当前级索引的索引结点组数目不小于2时,继续确定下一级索引,直至最终完成索引链表的创立。
在另一种可能的实现方式中,所述装置还包括第二确定模块及第二插入模块,其中
第二确定模块,用于确定待插入结点的各级索引;
第二插入模块,用于基于所述任一坐席对应的权重信息在所述待插入结点的各级索引中分别插入索引结点。
通过采用上述技术方案,第二确定模块对待插入结点是否为各级的索引结点进行判断,即对待插入坐席的权重信息是否与索引结点包含的权重信息进行判断,并在待插入结点为各级索引结点时,第二插入模块在对应层级索引同时插入索引结点。
在另一种可能的实现方式中,所述装置还包括第二获取模块、第三确定模块及第三创建模块,其中,
第二获取模块,用于获取当前各个空闲状态的坐席分别对应的属性信息;
第三确定模块,用于基于所述当前各个空闲状态的坐席分别对应的属性信息,确定所述当前各个空闲状态的坐席分别对应的权重信息;
第三创建模块,用于基于所述当前各个空闲状态的坐席分别对应的权重信息创建所述原始链表。
通过采用上述技术方案,第二获取模块用于获取当前处于空闲状态的坐席对应的属性信息,第三确定模块基于当前处于空闲状态的各个坐席的属性信息确定其对应的权重信息;然后第三创建模块基于第三确定模块确定出的各个坐席对应的权重信息创建原始链表。
在另一种可能的实现方式中,当检测到至少两个呼叫时,装置20还可以包括:第二分配模块,其中,
第二分配模块在基于原始链表,为呼叫分配坐席时,具体用于:基于检测到各个呼叫的时间信息,确定呼叫顺序;基于呼叫顺序从所述原始链表中确定各自对应的坐席,并为所述各个呼叫分配坐席。
通过采用上述技术方案,当有至少两个呼叫呼入时,首先对各个呼叫的顺序进行确定,以便第二分配模块将原始链表中的对应坐席依次分配给各呼叫,完成自动呼叫分配。
在另一种可能的实现方式中,所述装置还包括第四确定模块及删除模块,其中,
第四确定模块,用于当检测到任一坐席由空闲状态变更为占用状态时,从所述有序链表中确定待删除的结点以及从各级索引中确定各自待删除的结点;
删除模块,用于删除所述有序链表中待删除的结点以及所述各级索引中确定出的待删除的结点。
通过采用上述技术方案,当任一坐席由空闲状态变更为占用状态时,第四确定模块基于待删除的结点确定该结点是否为索引结点,删除模块将待删除的结点及该结点对应的各索引结点同步删除,以便索引链表的维护和更新。
第三方面,本申请提供一种电子设备,采用如下的技术方案:
一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行根据第一方面任一种可能的实现方式所示的一种自动呼叫分配的方法。
第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,包括:存储有能够被处理器加载并执行实现第一方面任一种可能的实现方式所示的一种自动呼叫分配方法的计算机程序。
综上所述,本申请包括以下至少一种有益技术效果:
1.在查找变更为空闲状态的坐席对应的权重信息的待插入位置时,基于至少一级索引和该原始链表进行位置查询,可以加快查找到待插入位置的速度,减少新增空闲坐席的就绪时间,即提高索引链表的就绪效率,就绪后的索引链表保持原有规则;从而便于使得在有大量用户呼叫呼入时,快速地为各呼叫分配坐席,有效减少用户呼叫等待时间,进而可以提升用户体验;
2.当有任一坐席变更为空闲状态时,确定待插入结点的各级索引,并在各级索引及原始链表中插入该结点;当有任一坐席变更为占用状态时,确定该结点是否为索引结点,若是,则在删除原始链表的对应结点时,同步删除对应索引结点;通过上述方式实现索引链表的维护,便于准确的为呼叫分配坐席。
附图说明
图1是本申请实施例的一种自动呼叫分配方法的流程示意图。
图2是本申请实施例的一种自动呼叫分配装置的结构示意图。
图3是本申请实施例的电子设备的结构示意图。
图4是索引链表创建方法的示意图。
图5是将待插入坐席对应的权重信息插入索引链表的示意图。
具体实施方式
以下结合附图1-5对本申请作进一步详细说明。
领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
本申请实施例提供了一种自动呼叫分配方法,由电子设备执行,该电子设备可以为服务器也可以为终端设备,其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此,该终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制,如图1所示,该方法包括:
步骤s10,当检测到任一坐席由占用状态变更为空闲状态时,获取任一坐席对应的属性信息。
其中,坐席的占用状态指该坐席正在为呼叫用户服务,坐席的空闲状态指该坐席未对任何呼叫进行服务处于空闲状态;坐席的属性信息包括坐席工号、租户信息及工作时长等,同时坐席的属性信息也可以包括坐席等级等信息;在本申请实施例中,租户信息包括:坐席所属单位,坐席所属单位具体可以指该坐席所属部门。
进一步地,在本申请实施例中,当有任一用户(呼叫)挂断时,呼叫服务终止,此时电子设备可检测到对应坐席(终止呼叫服务的坐席)由占用状态变更为空闲状态,该坐席处于可对呼叫进行服务的状态,即就绪状态,此时获取该坐席对应的属性信息,以确定该坐席在索引链表中的插入位置。
步骤s11,基于任一坐席对应的属性信息,确定任一坐席对应的权重信息。
其中,权重信息由预设规则对坐席的属性信息进行归一化得出,预设规则可以是先闲先服务规则,也可以是最短工作时长规则,还可以是其它任一话务分配行业所应用的规则,在本申请实施例中不作限定。
对于本申请实施例,任一坐席对应的属性信息包括:工作时长,在本申请实施例中,通过公式1确定任一坐席对应的权重信息,其中,
权重信息=坐席时间数据/预设数值;(公式1)
其中,坐席时间数据为任一坐席对应的工作时长,预设数值是预先设定的,权重信息为该任一坐席对应的权重信息。例如,预设数值可以为100000.00000。
具体地,针对先闲先服务规则及最短工作时间规则,均由凌晨零点开始统计,以秒为单位,一天最长86400秒;针对先闲先服务及最短工作时间规则也可以不由凌晨零点开始统计,可以用以其他任何预设时间点开始统计,并且先闲先服务以及最短工作时间规则所采用的开始统计的时间点可以相同,也可以不同,在本申请实施例中不做限定。
其中,针对先闲先服务规则及最短工作时间规则均由凌晨零点开始统计的方式,对于先闲先服务规则来说,坐席时间数据为最近一次就绪状态时间与凌晨零点的秒数差;对于最短工作时间规则来说,坐席时间数据为当天累计工作时长,单位为秒;对于先闲先服务规则,若某一坐席最近一次就绪时间为08:00,则该坐席的坐席时间数据为28800s;对于最短工作时间规则,若某一坐席当天工作时长由08:00-16:00,即8个小时,则该坐席的坐席时间数据为28800s。
具体地,在本申请实施例中,预设数值可以为任一正数,在对权重信息进行计算时,应保持预设数值为同一预设数值,且使预设数值的小数部分的位数尽可能的多,例如100000.00000;本申请实施例中取预设数值为100000.00,此时通过预设规则得出的权重信息均为[0-1]间的小数;当电子设备获取到任一变更为空闲状态的坐席的属性信息后,根据预设规则及该坐席对应的属性信息,对该坐席的权重信息进行计算;具体地,当使预设数值的小数部分位数尽可能的多时,得到的各个坐席权重信息可保留尽可能多的小数位,从而便于精准的依据权重信息对各个坐席进行区分,提升对各个坐席进行排序的准确度。
步骤s12,基于任一坐席对应的权重信息从索引链表中查找待插入的位置,并将任一坐席对应的坐席信息插入至待插入的位置。
其中,索引链表包括:原始链表以及对应的至少一级索引,原始链表为对当前空闲坐席按照各自对应的权重信息进行排序得到的,至少一级索引中每级索引是基于权重信息创建的。
具体地,原始链表包含多个结点,各个结点对应各个空闲坐席,且各个结点包含对应空闲坐席的属性信息及权重信息。
具体地,当前空闲坐席为当前未对任一呼叫进行服务而处于空闲状态下的坐席;在本申请实施例中,电子设备根据公式1得出当前各个空闲坐席的权重信息后,依据当前各个空闲坐席的权重信息对各个当前空闲坐席进行排序,并得到原始链表。在本申请实施例中,原始链表的顺序即各个坐席对应的权重值的顺序;其中排序顺序可以按照权重值从大到小进行排序,也可以按照权重值从小到大进行排序。
进一步地,在确定原始链表后,基于该原始链表确定至少一级索引,其中,创建至少一级索引的方式详见下述实施例。
具体地,在本申请实施例中,电子设备获取到由占用状态变更为空闲状态的坐席对应的权重信息后,在索引链表中查找该坐席的待插入位置,将该坐席插入后,原始链表仍旧保持原有的顺序规则;在寻找待插入坐席的插入位置时,首先遍历各级索引,再由各级索引最终下降至原始链表对应位置;通过以上方法对索引链表进行遍历,无需每次都遍历原始链表中的所有结点,从而可以提高确定待插入坐席的插入的速度,进而提升用户体验。
步骤s13,基于插入处理后的索引链表,为呼叫分配坐席。
对于本申请实施例,电子设备将待插入坐席插入索引链表后,得到的索引链表保持原有顺序规则;也即,当存在大量用户呼叫时,确定出呼叫顺序,并基于呼叫顺序以及索引链表为各个呼叫分配坐席;在为各个呼叫分配坐席的过程中,检测到某一坐席由占用状态变更为空闲状态时,可以将变更为空闲状态的坐席插入至相应的位置,并基于插入处理后的索引链表为呼叫分配坐席。
对于本申请实施例,当有大量用户呼入时,通过索引链表快速插入空闲坐席,并且依据插入后的索引链表为呼叫分配坐席,减少了因插入坐席所带来的时间浪费,从而提高坐席分配效率,并且当检测到空闲坐席时,将空闲坐席插入,基于插入后的索引链表为呼叫分配坐席,以提高坐席分配的准确度。
对于本申请实施例,当电子设备检测到由占用状态变更为空闲状态的坐席时,首先获取其属性信息,并根据公式1得出对应权重信息,然后依据该坐席的权重信息首先由各级索引中依次遍历,直至最终在原始链表中找到插入位置并插入,以得到当前索引链表,当前索引链表保持和原始索引链表一致的顺序规则。
具体地,如图4所示的索引链表,若待插入坐席对应的权重值为0.270,则在为该坐席寻找插入位置时,首先由顶层索引遍历,该有序链表的顶层索引为四级索引;当遍历至三级索引中包含权重值为0.250的结点时,由该位置下降至二级索引、一级索引,直至最终在原始链表中查找到插入位置,至此,一共遍历了七次;若直接在原始链表中进行查找,由头结点处开始,则需遍历十次;因此通过创建如图4所示的四级索引,有效减少了遍历次数,从而使电子设备在计算出变更为空闲状态的坐席的权重信息时,可快速的将该坐席插入至索引链表适宜位置,有效减少了索引链表的就绪准备时间,从而便于快速、准确的为呼叫分配坐席。
本申请实施例的一种可能的实现方式,步骤s12之前还包括步骤sa(图中未示出)及步骤sb(图中未示出),其中,
步骤sa,创建原始链表。
其中,原始链表中包含多个结点,各个结点中包含对应坐席的权重信息。
步骤sb,基于原始链表,创建至少一级索引,得到索引链表。
其中,至少一级索引依据原始链表中的各结点包含的权重信息创建;对于如图4所示的索引链表,其一级索引、二级索引、三级索引及四级索引均基于原始链表中各结点包含的权重信息创建的。
具体地,基于原始链表,创建至少一级索引,具体可以包括:步骤sb0(图中未示出)、步骤sb1(图中未示出)、步骤sb2(图中未示出)及步骤sb3(图中未示出),其中,
步骤sb0(图中未示出),将原始链表中的各个结点划分为至少两个结点组。
其中,每个结点组中包含至少两个相邻的结点,各个结点组中包含的结点不重叠。
具体地,在本申请实施例中,在创建至少一级索引时,依次将原始链表中的每至少两个相邻的结点划分为一个结点组,如图4所示,依次将原始链表中的每相邻的两个结点划分为一个结点组,该原始链表最终划分的结点组分别包括由包含权重值为0.010的结点和包含权重值为0.030的结点所组成的结点组、由包含权重值为0.040和包含权重值为0.060的结点所组成的结点组、由包含权重值为0.100和包含权重值为0.130的结点所组成的结点组、由包含权重值为0.140和包含权重值为0.141的结点所组成的结点组、由包含权重值为0.250和包含权重值为0.270的结点所组成的结点组,以及由包含权重值为0.280和包含权重值为0.300的结点所组成的结点组。
步骤sb1(图中未示出),确定各个结点组分别对应的索引结点。
其中,任一结点组对应的索引结点为任一结点组中的包含最大权重值或者最小权重值的结点。
在本申请实施例中,按照原始链表的排序规则,将每个结点组中包含最大权重值或最小权重值的结点作为该结点组的索引结点,对于如图4所示的有序链表,依据各自结点包含的权重值的大小,按由小到大的顺序对各结点进行排序,因此此时应将各结点组中包含最小权重值的结点作为该结点组的索引结点;例如,针对由包含权重值为0.010的结点和包含权重值为0.030的结点所组成的结点组,其对应的一级索引结点所包含的权重值为0.010,由包含权重值为0.040和包含权重值为0.060的结点所组成的结点组,其对应的一级索引结点所包含的权重值为0.040,由包含权重值为0.100和包含权重值为0.130的结点所组成的结点组,其对应的一级索引结点所包含的权重值为0.100,由包含权重值为0.140和包含权重值为0.141的结点所组成的结点组,其对应的一级索引结点所包含的权重值为0.140,对于由包含权重值为0.250和包含权重值为0.270的结点组成的结点组来说,其对应的一级索引结点所包含的权重值为0.250,以及由包含权重值为0.280和包含权重值为0.300的结点所组成的结点组,其对应的一级索引结点所对应的权重值为0.280。
步骤sb2(图中未示出),若未满足预设条件,确定当前级索引,并基于当前级索引确定下一级索引。
其中,预设条件包括:当前级索引包含的索引结点数目小于2。也就是说,当当前级索引包含的索引结点数目不小于2时,确定当前级索引,并基于当前级索引确定下一级索引。具体地,在本申请实施例中,如图4所示,原始链表为一个包含12个结点的单链表,当需要查找末尾结点的数据时,需从头遍历数据到尾,遍历次数为12次,此时的时间复杂度是o(n);针对图4所示的单链表,若将每相邻的两个结点组成一个结点组,则由原始链表形成的一级索引中包含6个索引结点,此时因一级索引中包含的索引结点数不小于2,需继续依据当前级索引创建下一级索引,即二级索引。
具体地,基于当前级索引确定下一级索引具体还包括步骤sb20(图中未示出)和步骤sb21(图中未示出),其中,
步骤sb20(图中未示出),将各个索引结点划分为至少两个索引结点组。
其中,每个索引结点组中包含至少两个相邻的索引结点,各个索引结点组中包含的索引结点不重叠。
步骤sb21(图中未示出),基于至少两个索引结点组确定下一级索引。
在本申请实施例中,确定下一级索引时,首先依次将当前级索引中的每相邻的至少两个索引结点划分为一个索引结点组,下一级索引中应至少包含一个索引结点;例如,在图4中,一级索引包含,包含权重值为0.010的一级索引结点、包含权重值为0.040的一级索引结点,包含权重值为0.100的一级索引结点,包含权重值为0.140的一级索引结点、包含权重值为0.250的一级索引结点,以及包含权重值为0.280的一级索引结点,对于该一级索引,将包含权重值为0.010的一级索引结点以及包含权重值为0.040的一级索引结点组成索引结点组,将包含权重值0.100的一级索引结点以及权重值0.140的一级索引结点组成索引结点组,将权重值为0.250的一级索引结点以及权重值为0.280的一级索引结点组成索引结点组。
进一步地,将包含权重值为0.010的一级索引结点以及包含权重值0.040的一级索引结点组成索引结点组,此时所对应的二级索引结点为包含权重值为0.010的二级索引结点;将包含权重值为0.100的一级索引结点以及包含权重值为0.140的一级索引结点组成索引结点组,此时所对应的二级索引结点为包含权重值为0.100的二级索引结点;将包含权重值为0.250的一级索引结点以及包含权重值为0.280的一级索引结点组成索引结点组,此时所对应的二级索引结点为权重值为0.250的二级索引结点。
具体地,针对如图4所示的索引链表,在创建二级索引时,将一级索引包含的各个索引结点中的每相邻的两个索引结点作为一个索引结点组,最终形成三个索引结点组,依据各个索引结点组确定各个索引结点组的索引结点,各个索引结点形成二级索引;此时若需查找包含权重值为0.300的结点时,可由二级索引开始遍历,在遍历至包含权重值为0.250的索引结点时,由该索引结点下降至原始链表中,最终共遍历8次即可得到值为0.300的结点;若直接由原始链表开始遍历,则需遍历12次,显而易见的,通过创建二级索引,提高了数据的查询效率。
步骤sb3(图中未示出),若未满足预设条件,则循环执行确定当前级索引,基于当前级索引确定下一级索引,直至满足预设条件。
其中预设条件包括:当前级索引包含的索引结点数目小于2。也就是说,若当前级索引包含的索引结点数目不小于2,确定当前级索引,并基于当前级索引确定下一级索引。
具体地,基于当前级索引确定下一级索引,包括:将各个索引结点划分为至少两个索引结点组,每个索引结点组中包含至少两个相邻的索引结点,各个索引结点组中包含的索引结点不重叠;基于至少两个索引结点组确定下一级索引。
具体地,基于当前级索引确定下一级索引的方式具体详见上述实施例,在此不再赘述,且对于如图4所示的索引链表,因二级索引中的索引结点数不小于2,因此需继续基于二级索引创建三级索引,三级索引中包含的索引结点数为3,不小于2,未满足预设条件;因此需基于三级索引继续创建四级索引,此时四级索引包含的结点数目为1,小于2,满足预设条件,停止下一级索引的确定,完成索引链表的创建。
具体地,当此时需查找包含权重值为0.300的结点时,可由四级索引开始遍历,首先由包含权重值为0.010的索引结点下降至三级索引,由三级索引中包含权重值为0.010的索引结点处向后遍历,直至遍历至包含权重值为0.250的索引结点时,由该索引结点下降至二级索引;然后下降至一级索引,由一级索引中包含权重值为0.250的索引结点继续向后遍历,直至最终由包含权重值为0.280的索引结点,由该索引结点下降至原始链表,直至最终遍历出0.300,共计遍历次数为8次,遍历次数小于直接由原始链表遍历的次数。
本申请实施例的一种可能的实现方式,基于任一坐席对应的权重信息从索引链表中查找待插入的位置,之后还包括步骤s120(图中未示出)及步骤s121(图中未示出),其中,
步骤s120(图中未示出),确定待插入结点的各级索引。
其中,各级索引指需要插入索引结点的除原始链表外的至少一级索引;在本申请实施例中,在将任一坐席的权重信息插入至原始链表之后,需要对与之存在关联的索引进行索引结点的插入,从而可以避免仅是对原始链表进行结点的插入,而不对各级索引进行调整导致的时间复杂度的持续增加。
进一步地,在本申请实施例中,确定待插入结点的各级索引的方式,包括:通过随机数函数,生成一个随机数l,随机数l代表该原始数据对应的索引结点插入到哪几层的索引中;若根据随机数函数生的随机数l的值为3时,则需要在第1-3层索引中添加索引结点。
步骤s121(图中未示出),基于任一坐席对应的权重信息在待插入结点的各级索引中分别插入索引结点。
对于本申请实施例,在插入任一坐席对应的权重信息所对应的结点后,在原始链表中确定存在影响的结点,并基于存在影响的结点,进而对存在影响的结点,按照如上方式重新划分结点组,并基于重新划分的结点组,在确定待插入结点的各级索引中插入对应的索引结点。
例如,如图5所示,l=2,将包含权重值为0.290的索引结点插入至原始链表后,其中,包含权重值为0.280的一级索引结点为包含权重值为0.280的结点以及包含权重值为0.290的结点所组成的索引结点组所对应的一级索引,增加包含权重值为0.300的结点所对应的一级索引结点(包含权重值为0.300的一级索引结点),基于此,在二级索引中增加包含权重信息为0.300所对应的二级索引结点。
本申请实施例的一种可能的实现方式,该方法还可以包括:步骤sc(图中未示出)、步骤sd(图中未示出)及步骤se(图中未示出),其中,步骤sc、步骤sd以及步骤se可以位于步骤s10之前执行,也可以位于步骤s11之前执行,也可以位于步骤s12之前执行,也可以是其他可能的执行顺序,在本申请实施例中不作限定,其中,
步骤sc(图中未示出),获取当前各个空闲状态的坐席分别对应的属性信息。
对于本申请实施例,电子设备首先获取当前各个空闲坐席对应的属性信息,其中属性信息应包括前述该坐席的坐席工号、租户信息及工作时长等。
步骤sd(图中未示出),基于当前各个空闲状态的坐席分别对应的属性信息,确定当前各个空闲状态的坐席分别对应的权重信息。
对于本申请实施例,根据预设规则及各个当前空闲坐席的属性信息对当前空闲坐席的权重信息进行计算,权重信息计算方法如上实施例,此处不再赘述。
步骤se(图中未示出),基于当前各个空闲状态的坐席分别对应的权重信息创建原始链表。
对于本申请实施例,依据各个当前空闲坐席的权重信息对当前空闲坐席进行排序,得到有序的原始链表;其中,排序规则如上实施例,此处不再赘述。
本申请实施例的一种可能的实现方式,该方法还包括,当检测到至少两个呼叫时,基于原始链表,为呼叫分配坐席,具体可以包括步骤so(图中未示出)和步骤sq(图中未示出)其中
步骤so(图中未示出),基于检测到各个呼叫的时间信息,确定呼叫顺序;
步骤sq(图中未示出),基于呼叫顺序从原始链表中确定各自对应的坐席,并为各个呼叫分配坐席。
对于本申请实施例,电子设备实时的对呼叫进行检测,当检测到有至少两个呼叫时,获取对应呼叫的时间信息,时间信息指该呼叫呼入时的时间,基于该时间信息确定对应呼叫的呼叫顺序;然后电子设备按照呼叫的呼入先后将有序链表中的坐席依次分配给对应呼叫。
例如,在检测到三个呼叫呼入时,获取到三个呼叫的呼入时间分别为09:12、09:13、09:14,则可依次将如图4所示的有序链表中位于前三位的对应权重值为0.010、0.030及0.040的三个坐席依次分配至三个呼叫。
对于本申请实施例,在上述实施例中为各个呼叫分配坐席的方式,可以基于原始链表进行分配,也可以基于插入后的索引链表进行分配。在本申请实施例中不作限定。
本申请实施例的另一种可能的实现方式,该方法还可以包括:当检测到任一坐席由空闲状态变更为占用状态时,从有序链表中确定待删除的结点以及从各级索引中确定各自待删除的结点;删除有序链表中待删除的结点以及各级索引中确定出的待删除的结点。
对于本申请实施例,当电子设备检测到任一坐席由空闲状态变更为占用状态时,即检测到原始链表中的任一坐席接入呼叫时,也即由于原始链表中的结点表征当前处于空闲状态的坐席,当任一坐席由空闲状态变更为占用状态时,则需要原始链表中删除对应的结点,以及删除该结点相关联的索引结点。
具体地,首先确定有序链表中包含该坐席对应的权重信息的结点,该结点可能仅为原始链表中的结点,也可能还是对应层级索引中的索引结点,确定完毕后将这些结点同步删除。
具体地,对于如图4所示的有序链表,当检测到对应权重值为0.250的坐席接入呼叫时,首先可以确定应该删除的结点为包含权重值为0.250的结点,由该有序链表可知,包含权重值为0.250的结点同时为三级索引、二级索引及一级索引的索引结点,此时,应同时将这些结点由该有序链表中删除,并形成新的有序链表。
上述实施例从方法流程的角度介绍一种自动呼叫分配的方法,下述实施例从虚拟模块或者虚拟单元的角度介绍了一种自动呼叫分配的装置,具体详见下述实施例。
本申请实施例提供一种自动呼叫分配的装置20,如图2所示,该自动呼叫分配的装置20具体可以包括:第一获取模块200、第一确定模块201、第一插入模块202及第一分配模块203,其中,
第一获取模块200,用于当检测到任一坐席由占用状态变更为空闲状态时,获取任一坐席对应的属性信息;
第一确定模块201,用于基于任一坐席对应的属性信息,确定任一坐席对应的权重信息;
第一插入模块202,用于基于任一坐席对应的权重信息从索引链表中查找待插入的位置,并将任一坐席对应的坐席信息插入至待插入的位置;
第一分配模块203,用于基于插入处理后的索引链表,为呼叫分配坐席。
本申请实施例的另一种可能的实现方式,装置20还包括第一创建模块及第二创建模块,其中,
第一创建模块,用于创建原始链表;
第二创建模块,用于基于原始链表,创建至少一级索引,得到索引链表;
其中,原始链表包含多个结点。
本申请实施例的另一种可能的实现方式,第二创建模块在基于原始链表,创建至少一级索引时,具体用于:将原始链表中的各个结点划分为至少两个结点组,每个结点组中包含至少两个相邻的结点,各个结点组中包含的结点不重叠;确定各个结点组分别对应的索引结点,任一结点组对应的索引结点为任一结点组中的包含最大权重值或者最小权重值的结点;若未满足预设条件,确定当前级索引,并基于当前级索引确定下一级索引;若未满足预设条件,则循环执行确定当前级索引,基于当前级索引确定下一级索引,直至满足预设条件。
其中,当前级索引中包含多个索引结点;
预设条件包括:
当前级索引包含的索引结点数目小于2。
本申请实施例的另一种可能的实现方式,第二创建模块在基于当前级索引确定下一级索引时,具体用于:
将各个索引结点划分为至少两个索引结点组,每个索引结点组中包含至少两个相邻的索引结点,各个索引结点组中包含的索引结点不重叠;
基于至少两个索引结点组确定下一级索引。
本申请实施例的另一种可能的实现方式,装置20还包括:
第二确定模块,用于确定待插入结点的各级索引;
第二插入模块,用于基于任一坐席对应的权重信息在待插入结点的各级索引中分别插入索引结点。
本申请实施例的另一种可能的实现方式,装置20还包括:
第二获取模块,用于获取当前各个空闲状态的坐席分别对应的属性信息;
第三确定模块,用于基于当前各个空闲状态的坐席分别对应的属性信息,确定当前各个空闲状态的坐席分别对应的权重信息;
第三创建模块,用于基于当前各个空闲状态的坐席分别对应的权重信息创建原始链表。
本申请实施例的另一种可能的实现方式,当检测到至少两个呼叫时,装置20还可以包括:第二分配模块,其中,
第二分配模块在基于原始链表,为呼叫分配坐席时,具体用于:基于检测到各个呼叫的时间信息,确定呼叫顺序;基于呼叫顺序从原始链表中确定各自对应的坐席,并为各个呼叫分配坐席。
本申请实施例的另一种可能的实现方式,装置20还包括第四确定模块及删除模块,其中,
第四确定模块,用于当检测到任一坐席由空闲状态变更为占用状态时,从有序链表中确定待删除的结点以及从各级索引中确定各自待删除的结点;
删除模块,用于删除有序链表中待删除的结点以及各级索引中确定出的待删除的结点。
进一步地,在本申请实施例中,第一获取模块200和第二获取模块可以为同一获取模块,也可以为不同获取模块;第一确定模块201、第二确定模块、第三确定模块以及第四确定模块可以均为同一确定模块,也可以均为不同确定模块,也可以部分为相同确定模块;第一插入模块202以及第二插入模块可以为同一插入模块,也可以为不同的插入模块;第一分配模块203以及第二分配模块可以为相同的分配模块,也可以为不同的分配模块;第一创建模块、第二创建模块以及第三创建模块可以均为同一创建模块,也可以均为不同创建模块,也可以部分为相同创建模块;在本申请实施例不做限定。
本申请实施例提供了一种自动呼叫分配的装置,在本申请实施例中,当检测到任一坐席由占用状态变更为空闲状态时,说明该坐席处于未接入呼叫状态,即就绪状态,此时第一获取模块获取该坐席对应的属性信息;然后通过第一确定模块确定该坐席的权重信息,再由第一插入模块依据对应权重信息将该坐席插入包含至少一级索引的索引链表中,至少一级索引的建立,为该坐席的插入提供了便利,以便实现索引链表的快速更新;从而在有大量呼叫呼入时,更新完毕的索引链表可及时、快速地将原始链表中的坐席依次分配给各呼叫,减少用户呼叫等待时间,提升用户体验感。
本申请实施例提供了一种自动呼叫分配的装置,适用于上述方法实施例,在此不再赘述。
本申请实施例中提供了一种电子设备30,如图3所示,图3所示的电子设备30包括:处理器300和存储器302。其中,处理器300和存储器302相连,如通过总线301相连。可选地,电子设备30还可以包括收发器303。需要说明的是,实际应用中收发器303不限于一个,该电子设备30的结构并不构成对本申请实施例的限定。
处理器300可以是cpu(centralprocessingunit,中央处理器300),通用处理器300,dsp(digitalsignalprocessor,数据信号处理器300),asic(applicationspecificintegratedcircuit,专用集成电路),fpga(fieldprogrammablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器300也可以是实现计算功能的组合,例如包含一个或多个微处理器300组合,dsp和微处理器300的组合等。
总线301可包括一通路,在上述组件之间传送信息。总线3011002可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线301或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线301等。总线301可以分为地址总线301、数据总线301、控制总线301等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线301或一种类型的总线301。
存储器302可以是rom(readonlymemory,只读存储器302)或可存储静态信息和指令的其他类型的静态存储设备,ram(randomaccessmemory,随机存取存储器302)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electricallyerasableprogrammablereadonlymemory,电可擦可编程只读存储器302)、cd-rom(compactdiscreadonlymemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器302用于存储执行本申请方案的应用程序代码,并由处理器300来控制执行。处理器300用于执行存储器302中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备30包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。还可以为服务器等。图3示出的电子设备30仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例在有任一被占用的坐席由被占用状态变更为空闲状态时,首先获取该坐席的属性信息,并根据该坐席的属性信息确定该坐席的权重信息,然后根据该坐席的权重信息在索引链表中查找待插入位置并插入,由于待插入的索引链表中包含按照空闲坐席的权重排序的原始链表以及基于权重信息创建的至少一级索引,也就是说,在查找待插入位置时,基于至少一级索引和该原始链表进行位置查询,可以加快查找到待插入位置的速度,即提高索引链表的就绪效率;从而便于使得在有大量用户呼叫呼入时,快速地为各呼叫分配坐席,有效减少用户呼叫等待时间,进而可以提升用户体验。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。