具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的客户化知识智能系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
根据本发明的一个实施例,提供了一种针对咨询业务的客户化知识智能系统,如图1所示该知识智能系统包括:自然语言理解模块(简称NLP模块)、过滤模块、咨询分发模块、话务员模块、知识库缓存模块和咨询历史缓存模块。
其中,NLP模块用于对客户的短信咨询进行文本识别,从中得出客户咨询的业务名称、主题、摘要等信息,本发明中,将这些信息称为客户咨询信息(简称咨询信息)。本实施例中NLP模块采用文法匹配、词模匹配、关键字匹配等技术对用户咨询进行理解(即进行文本识别),抽取用户咨询的业务名称、主题和摘要。本实施例的NLP模块采用申请号为CN200810117244.2的专利申请(主题为《一种服务智能导航方法和系统》)中所记载的NLP模块。
过滤模块用于根据客户咨询信息对咨询进行过滤,以达到屏蔽垃圾咨询,节省客服资源,降低系统负荷的技术效果。图1中采用了黑名单过滤模块,但本领域技术人员容易理解,本发明可采用的过滤模块不限于此。在一些较简单的实施例中,过滤模块也可省略。
咨询分发模块用于将咨询准确地分配给不同组别的话务员,以提高咨询分发效率。下文中将详细介绍本实施例的咨询分发模块。
话务员模块用于接受话务员登陆,并为话务员提供显示接口和控制接口。同时,话务员模块还可以调用知识库缓存模块和咨询历史缓存模块,得出对应于咨询信息的参考答案以供话务员使用。
知识库缓存模块用于存放知识库内容(业务名称、主题、摘要、答案),通过该模块可以根据查找条件快速高效的找到对应的知识内容,并且不需要频繁访问数据库。话务员模块中具有一个三级联动下拉列表框,其中分别可显示出存放在知识库缓存模块中的业务名称、主题和摘要。并且,三者可按其层次结构显示,比如在第一个下拉列表框中选定一个业务名称(下文中简称业务)后,在第二个下拉列表框中只显示所选定业务所包含的主题,在选定主题后,在第三个下拉列表框中只显示所选定业务和主题所包含的摘要,最后在选定摘要,在选定业务、主题和摘要后,系统在知识库缓存模块中查找到对应于所选定业务、主题和摘要的答案,并在话务员模块显示。本实施例中,采用Ajax技术根据选定的内容实现无刷新的下拉列表框三级联动。
咨询历史缓存模块用于存放设定时间内的咨询历史数据,该咨询历史数据包括咨询信息、回复信息(回复业务、回复主题、回复摘要)等。话务员模块可以通过客户号码访问咨询历史缓存,得到咨询历史数据,以供话务员使用或参考。另外,在一个优选实施例中,还可以增加补发模块,补发模块可以通过话务员的工号从咨询历史缓存模块取出该话务员的处理过的咨询历史数据从而用于补发。
下面详细描述本实施例中的咨询分发模块。
对话务员进行归类,按照地市、品牌和业务等条件建立技能组。符合条件的话务员划入相应的技能组。咨询分发模块根据技能组建立咨询池、对咨询进行自动合理最优的分发。其咨询分配算法采用队列数据结构来完成、采用的思想是“先到先服务”的策略。
咨询池的数据结构如下:
Struct Query
{
String queryID;
String QueryContent;
String NLPID;
String City;
String Channel;
String Brand;
String Service;
String Topic;
String Abstract;
}
DataTable dt(Query);
一个咨询池对应于一个技能组,咨询池中存放的数据由技能组的类型来确定。技能组决定该技能组中的话务员能处理何种类型的咨询,其中咨询的类型是根据地市、品牌和业务进行划分的。客户咨询经过NLP模块理解后生成客户咨询信息,通过客户咨询信息和技能组类型进行匹配放入对应的咨询池中。一个话务员可以属于多个技能组。话务员取咨询的时候只能取其所属技能组的咨询。
本实施例中,对话务员定义下列级别:
普通级:该级别权限最低,处理一般咨询,优先级别最低。
组长级:该级别权限可以处理一般咨询,同时可以处理普通级别修改答案或编辑答案的咨询;同时组长级别可以处理普通级权限的用户请求帮助的咨询。
经理级:该级别权限最高,可以处理一切咨询,并且其修改的答案或自行编辑的答案的咨询发送时候直接发送,不需要通过别人确认。同时组长级别可以处理经理级权限的用户请求帮助的咨询。
本实施例对咨询的服务优先级别定义如下:
普通客户级别:该客户的咨询在系统中按“先来先服务”的优先次序来处理;
白名单客户级别:该客户是白名单客户,该客户的咨询在指定的时间内会优先得到服务。
请求帮助级别:该客户的咨询是下级向上级请求帮助的服务级别,如果上级(组长级或经理级用户)如果不在,不允许请求帮助。
修改级别:如果该咨询其回复答案是经过其他用户修改过或编辑后放回咨询池的,则该咨询的服务优先级比其它都高。
在服务优先级别中,修改级别是最高的,其次是请求帮助级别、再次是白名单客户级别,最后是普通客户级别。定义咨询到达时间T为该咨询到达咨询池的时间。
话务员取咨询本着“先来先服务”的思想,但是如果该话务员属于多个技能组的时候,需要根据每个技能组所对应咨询池的话务量来进行判断该话务员取那个咨询池中的咨询。实现算法如下:
N1,N2分别表示咨询池A和咨询池B中的话务量,C1,C2分别表示技能组A和技能组B的话务员的个数,咨询池A和咨询池B分别对应技能组A和技能组B,话务员X既属于技能组A又属于技能组B的话务员。
若N1/C1>N2/C2则取咨询池A中的咨询;
若N1/C1<N2/C2则取咨询池B中的咨询;
若N1/C1=N2/C2则如果咨询池A中的第一条咨询接收时间比咨询池B的第一条的接收时间早,则取咨询池A中的咨询,反之取咨询池B中的咨询。
定义Ti、Tj分别为两条咨询Ci、Cj的到达时间,两条咨询的服务优先权级别为Si、Sj。T为系统设置的优先权有效时间间隔,如果||Ti-T1||>T则咨询Ci在队列中排队等候,不对其优先服务权进行判断,如果||Ti-T1||≤T,则判断其优先服务权。其中T1为咨询池中的队头咨询的到达时间。
具体地,本实施例的咨询分发过程包括下列步骤:
1)话务员登陆话务员模块时,系统自动获取该话务员所在的技能组信息,并自动调用咨询分发模块中获取咨询。
2)咨询分发模块根据话务员所在的技能组信息定位相应的咨询池(当话务员同时属于多个技能组时,按前文中叙述的规则进行处理)。
3)从所定位的咨询池的队头开始,对满足条件||Ti-T1||≤T的所有咨询的服务优先权级别进行排序,当系统设定的取咨询数目为N时,则将服务优先权级别最高的N条咨询分发给所述话务员模块。优先级别定义在上文已经陈述,包括普通客户级别,白名单客户级别、请求帮助级别、修改级别。客户发来的一条咨询,如果其号码不在白名单中,则该咨询的优先级别是普通级别,如果在白名单中则是白名单客户级别。本步骤中,优先权级别的排序可以通过下面的例子实现(其实现方案不限于此)。
从咨询C1开始遍历所有满足条件||Ti-T1||≤T的咨询,对于每个咨询Ci,将其与满足条件||Tj-T1||≤T的所有咨询Cj进行优先权比较,有以下几种情况:
a)如果Si>=Sj,并且没有其它咨询优先级别比Si更高则优先权不变,优先分发咨询Ci;
b)如果Si<Sj,并且没有其它咨询优先级别比Sj更高,优先分发咨询Cj;
c)如果分发咨询为当前取咨询的话务员修改后放回的咨询,则不进行分发,而是分发条件||Ti-T1||≤T内其它优先权级别高的咨询;
d)如果当前取到的咨询在满足条件||Ti-T1||≤T内,还有该客户的其它咨询,则将该客户的所有咨询一次性分给同一个话务员。在指定时间段内将同一个客户的多条咨询分发给同一个话务员,有助于准确的回复客户的咨询。比如:某个客户,发了一条咨询,接着又发了另一条咨询,而这两个咨询是关联的,那么同一个话务员就可以较为准确地回答这两个关联咨询,如果两条咨询被分发给不同话务员处理,服务质量就可能受到影响。再比如:某个客户对同一个问题的咨询在某个时间段内发了多次,此时,将这些咨询分发给同一个话务员,可以对其一次性回复,即客户收到一条答案即可,如果分给多个话务员,则客户会收到多条相同的答案,造成客服资源浪费;
e)当存在同一优先权级别的多条咨询时,优先分发到达时间较早的咨询。
4)当咨询池接收到被话务员放回咨询池的咨询时,更改该咨询的优先权级别为“修改级别”,其到达时间为该话务员放回该咨询的时间。话务员在回复答案的时候,如果在知识库中找到答案,但是修改了答案或者自行编辑的答案,此时点击发送时候,并没有真正发送而是将该咨询放回咨询池,等待另一个话务员的确认后才能发送出去,当另一个话务员确认后,该咨询的级别为“修改级别”。
5)当咨询池接收到的咨询的是下级向上级提交帮助的咨询时,则不论其号码是白名单客户还是普通客户,将其优先级别设置为“请求帮助级别”(其设定是下级提交的时候系统自动设定)。“请求帮助级别”的咨询只能分发给具有帮助权限的用户处理。该类用户取咨询时候,优先取请求帮助的咨询。如果在指定的时间内该咨询未处理,则系统自动改其权限为其本身权限,即如果是普通客户就是普通级别,如果是白名单客户,就是白名单客户级别。
上述咨询分发方法即保证了重要咨询能够优先获得服务,又兼顾了先到先服务的原则,避免了出现低级别咨询等待时间过长的现象。并且,本实施引入了技能组概念并根据技能组对咨询池进行分类,高效准确地将各类咨询与相应话务员进行匹配,从而提高咨询分发的效率。
进一步地,参考图1,基于上述客户化知识智能系统的咨询业务处理流程包括下列步骤:
1、系统接收客户的短信咨询至客户咨询消息队列。
2、从客户咨询消息队列中取出咨询消息将其传送至NLP模块。
3、NLP模块对咨询消息进行处理,得出客户咨询信息并将其传送至NLP结果消息队列。
4、客户咨询信息,系统调用垃圾咨询过滤算法对咨询进行过滤,将垃圾咨询进行过滤至垃圾咨询池。
5、咨询分发模块将过滤后的咨询分发到对应的咨询池。
6、话务员通过话务员模块登录系统,从对应的咨询池中获取咨询,在获取咨询的同时,系统自动调用知识库缓存模块,生成对应该咨询的多维度知识库并在话务员模块显示以供话务员选择和参考,所述多维度知识库的知识包括业务、主题、摘要和答案,共四个维度。调用统计算法对热点进行统计生成对应的热点信息;以及调用咨询历史缓存模块获取当前客户的咨询历史信息。
7、话务员对咨询进行回复,发送答案至回复咨询消息队列,并插入咨询历史缓存和数据库等操作。
8、用一定的咨询发送算法通过通信端口发送回复答案给用户。
根据本发明的另一个实施例,提供了一种更加优化的客户化知识智能系统,该实施例中增加了热点统计模块等一系列新的模块,同时话务员模块还增加了回复类型自动识别功能。如图2所示,本系统包含的子模块如下:
1.咨询分发模块(QueryDispense)
2.热点统计模块(HotKeyStatistical)
3.黑名单过滤模块(BlackListFilter)
4.自然语言理解模块(NLP)
5.知识库缓存模块(KBCahce)
6.咨询历史缓存模块(QueryHistoryCache)
7.话务员模块(Consult)
8.补发客户咨询模块(ReSend)
9.客户黑名单申请模块(BlankListSubmit)
10.客户黑名单审核模块(CustomerBlackListAdmin)
11.话务员黑名单申请模块(CSRBlackListSubmit)
12.话务员黑名单审核模块(CSRBlackListCheck)
13.白名单申请模块(WhiteListApply)
14.白名单审核模块(WhiteListCheck)
15.小休、小休时间查看模块(Rest、RestTimeView)
16.工作时长、登陆时长模块(WorkTime、ListWorkTime)
17.咨询历史查看、话务员回复咨询历史查看模块(HistoryQueryView、QueryCountOfCSR)
18.数据库连接模块
19.其它系统关联模块
另外,图2中MyUtil是命名空间,oracle是数据库。
下面就各个模块的具体实现方法和模块之间的关系做详细说明:
模块1:咨询分发模块(QueryDispense)
本模块与前面的实施例一致,这里不再赘述。
模块2:热点统计模块(HotKeyStatistical)
本模块的功能主要对咨询热点进行统计,将咨询热点通过话务员模块呈现在显示界面的热点区,从而方便话务员进行快速的找到答案回复咨询。一个热点主要是由(业务、主题、摘要)组成的,话务员可以通过单击热点,通过该热点对应的业务、主题、摘要快速找到其对应的答案并将其发送给客户,这个功能也是本系统的一大亮点。同时,热点是实时统计的,根据系统设定的时间间隔自动统计热点、更新热点,并且更新热点时候如果某个热点在更新前存在,则该热点在话务员回复页面的位置不变,该功能点体现系统的人性化,有利于提高咨询处理效率。
多维度热点结构抽象定义如下:
Strcut Mutil_HotKey
{
String City;//地市
String Channel;//渠道名称
String Brand;//品牌名称
HotKey[COUNT]hotkey;//COUNT为热点的个数
}
Struct HotKey{
String Service;//咨询业务
String Topic;//咨询主题
String Abstract;//咨询摘要
Int Location;//表示热点放的位置
}
热点统计是根据咨询历史缓存来进行统计的,根据地市、渠道、品牌三个维度来进行统计咨询业务、主题、摘要热点,根据咨询的业务、主题和摘要进行频率统计然后进行排序。
M=GetHotKey(Sorting(N(service,topic,abstract))),Count)
其中M表示热点的集合,N(service,topic,abstract)为某一个“业务,主题,摘要”的统计的频次,Sorting还是为排序函数,降序排列,GetHotKey函数表示取排序结果的前Count个热点结构放入集合M中,热点在话务员热点区中存放的位置Location的计算方法如下:
其中n为某一个“业务,主题,摘要”X在统计热点中的序号,Order函数表示根据X在热点函数中的排序在剩余的位置中的排序的序号。
热点更新条件:
||T||≥HK_TIME_THRESHOLD
其中HK_TIME_THRESHOLD为设定的更新热点的时间间隔,当满足条件后,线程自动启动进行更新热点。
模块3:黑名单过滤模块(BlackListFilter)
为了保证系统的安全性,系统对一些与服务无关的咨询进行过滤至垃圾咨询池。本模块为实现的功能主要是对黑名单咨询、垃圾咨询、恶意攻击咨询等进行过滤至垃圾咨询池。
(1)黑名单过滤
如果该客户已在黑名单中,并且该客户的状态通过审核未解除,则该咨询直接放入到垃圾短信池。
(2)敏感词咨询过滤
我们总结敏感词词表,包括政治敏感词、黄色敏感词等,当咨询中含有敏感词表中的某个词时候,该咨询会被自动过滤到垃圾短信池。
(3)恶意攻击检查过滤
我们采用基于攻击特征的方法来对咨询进行过滤,攻击特征主要包括以下几种情况:单位时间内发送咨询的条数、咨询的长度、咨询中是否存在非法字符。
如果咨询满足以上几种情况之一将被放入垃圾咨询池,而得不到服务,从而保证系统的安全。
模块4:自然语言理解模块(NLP)
NLP模块采用自然语言处理技术对客户的短信咨询进行文本识别,从中得出客户咨询的业务名称、主题、摘要等信息。NLP模块采用文法匹配、词模匹配、关键字匹配等技术对用户咨询进行理解(即进行文本识别),抽取用户咨询的业务名称、主题和摘要。
模块5:知识库缓存模块(KBCache)
该模块将知识库中的多维度知识内容(业务名称、主题、摘要、答案),读入内存,话务员模块调用该模块将多维度知识(业务名称、主题、摘要、答案)显示在界面上,话务员可以根据查找条件快速高效的找到对应的知识内容,并且不需要频繁访问数据库。
模块6:咨询历史缓存模块(QueryHistoryCache)
该模块用于存放设定时间内的咨询历史数据,该咨询历史数据包括咨询信息、回复信息(回复业务、回复主题、回复摘要)等。该模块提供数据给话务员模块、补发模块、咨询历史查看等模块。话务员模块可以通过客户号码访问咨询历史缓存,得到咨询历史数据,以供话务员使用或参考,通过查阅客户的咨询历史,可以有效的帮助话务员回答客户的咨询。补发模块可以通过话务员的工号从咨询历史缓存模块取出该话务员的处理过的咨询历史数据,,可以对处理过的咨询进行补发。咨询历史查看模块可以调用咨询历史缓存模块根据权限显示相应的咨询历史。
模块7:话务员模块(Consult)
本模块主要解决的问题是,将客户咨询相关信息(电话号码、地市、品牌等)和NLP理解结果、系统从咨询历史缓存中自动获取当前客户的设定时间内的咨询历史(咨询历史的使用便于话务员准确的回答用户的问题)等呈现给话务员,话务员对回复答案进行确认、查找、选择、修改和编辑等操作。在该模块中,话务员可以对跨品牌的客户咨询进行回复。
具体实施流程如下:
1.话务员登录系统开始工作后,使用模块10(WorkTime)对话务员工作时间进行统计。
2.系统通过咨询分发模块的咨询分发算法给该话务员分发短信。
3.如果取得是当前客户的一条咨询,则将该咨询显示在话务员操作界面中;如果是当前客户的多条咨询,则调用表格生成算法生成一个咨询列表显示在话务员操作界面上,对于多条咨询,话务员可以逐一回复,也可以多条一起回复。页面初始化还将初始化的数据有根据当前客户的咨询品牌、地市从知识库缓存中获取的业务、主题和摘要;以及有热点统计算法统计的热点。
4.话务员可以从咨询历史文本框中查看当前该客户的咨询,以便于话务员回复该咨询;
5.话务员页面上呈现的有NLP系统理解结果,包括业务名称、主题、摘要、以及对应的答案。
6.话务员可以对答案进行确认发送、重新查找回复答案发送、修改答案后发送、自行编辑答案后发送、系统自动对话务员回复。修改答案和自行编辑的回复答案不会立刻发送到发送队列,而是放回到咨询池中(放回时,记录放回该咨询的话务员、修改该咨询的优先级别等),等待下一个话务员的确认。话务员发送时候调用“回复类型自动识别算法”对话务员的回复操作进行识别。
7.话务员发送时候调用咨询历史缓存插入算法和咨询历史数据库插入算法对咨询历史进行插入;这两个算法为异步函数,从而减少话务员的等待时间,提高操作效率。
8.话务员发送咨询后,系统自动去获取咨询、采用Ajax无刷新技术来实现;
9.话务员可以单击“补发”按钮进入“补发”模块,对已发送的咨询进行补发,及时纠正。
10.如果获取的咨询为垃圾咨询,话务员可以单击“进黑名单”按钮进入“话务员提交客户黑名单”模块将该客户提交至黑名单、同时将该咨询提交至“过滤咨询”表中。
11.话务员单击“小休”按钮进入小休模块;
12.话务员单击“结束工作”结束当前工作。此时话务员必须回复当前的咨询才能退出系统。
图3为回复类型自动识别算法流程图:
该算法主要用来判断话务员的回复类型,记录话务员的回复轨迹,这是统计NLP系统的理解准确性以及知识库的完整性的数据来源。同时帮助完善NLP系统和智能知识库系统。
回复类型answertype的定义如下:
answertype=0:表示NLP有结果,并且话务员确认正确(也就是发送的答案为NLP理解的答案)
answertype=1:表示NLP有结果,并且话务员确认错误,并且在NLP理解的答案上修改,发送(这个是答案本身的错误);
answertype=2:表示NLP有结果,并且话务员确认错误,并且重新找到答案,发送;
answertype=3:表示NLP有结果,并且话务员确认错误,未找到结果,自行编辑答案,发送;
answertype=4:表示NLP无结果,话务员重新找到答案进行发送
answertype=5:表示NLP无结果,话务员找到结果,并在答案上修改答案,发送;
answertype=6:表示NLP无结果,话务员未找到结果,自行编辑答案,发送;
算法步骤如下:
1)首先用Session[″Flag_OfEditAnswer″]保存话务员是否修改或现场编辑答案,这个session的设置是客户端单击时候调用Ajax方法设定,取值如下:0表示没有现场编辑和修改,1表示现场编辑,2表示修改答案,并且赋值给flag;
2)用变量nlp_flag记录NLP是否有答案,true表示有答案,false表示没有答案;
3)如果flag!=0,则还需要进一步确认是否真的修改答案或现场编辑(因为单击修改内容按钮或现场编辑按钮但未必修改过);如果确实没有修改、也没有现场编辑则将flag重新赋值为0;
4)判断flag的值:
◆如果flag==0:表示没有修改答案和现场编辑,此时做如下判断:
如果回复答案文本框中的答案(简称回复答案)和NLP理解答案相同,则answertype=0
否则(即回复答案文本框中的答案和NLP理解答案不相同),如下处理:
a)如果回复答案是通过三级下拉列表框(业务、主题、摘要)找到的对应的答案:若nlp_flag==true,则answertype=2;若nlp_flag=false,则answertype=4;
b)否则(回复答案来自于热点找到的答案或已修改咨询词典中的答案),首先判断是否通过热点找到的答案(判断Session[″hotkeyanswer″]是否为null)
●如果Session[″hotkeyanswer″]为空(表示肯定不是通过热点找到答案),用tmp_Flag记录已修改咨询词典中的标志,该标志由以下函数返回为
ModifiedQueryDictionary.GetFlag(query[0].m_nlpResult.
m_nlpresultid),,做如下判断:
(I)若nlp_flag==true,并且tmp_Flag==2则answertype=1;
(II)若nlp_flag==true并且tmp_Flag==1则answertype=3;
(III)若nlp_flag==true并且tmp_Flag==0则answertype=2;
(IV)若nlp_flag==false并且tmp_Flag==2则answertype=5;
(V)若nlp_flag==false并且tmp_Flag==1则answertype=6;
(VI)若nlp_flag=false并且tmp_Flag==0则ansertype=4;
●如果Session[″hotkeyanswer″]不为空(注意:Session[″hotkeyanswer″]不为空不代表一定是通过热点找到答案),取得热点答案内容:
hotkeyanswer=Session[″hotkeyanswer″].ToString()
(I)如果热点内容和回复答案内容不同,取得修改字典标志tmp_Flag,该标志由以下函数返回为ModifiedQueryDictionary.GetFlag(query[0].m_nlpResult m_nlpresultid),做如下判断:
如果nlp_flag==true并且tmp_Flag==2则answertype=1;
如果nlp_flag==true并且tmp_Flag==1则answertype=3;
如果nlp_flag==true并且tmp_Flag==0则answertype=2;
如果nlp_flag==false并且tmp_Flag==2则answertype=5;
如果nlp_flag=false并且tmp_Flag==1则answertype=6;
如果nlp_flag==false并且tmp_Flag==0则answertype=4;
(II)如果热点内容和回复答案内容相同
如果nlp_flag==true则answertype=2;
如果nlp_flag==flase则answertype=4;
◆如果flag==1:表示话务员进行了现场编辑
如果nlp_flag==true,则answertype=3;
如果nlp_flag==false,则answertype=6;
◆如果flag==2:表示话务员对回复答案进行了修改
如果nlp_flag==true,则answertype=1;
如果nlp_flag==false,则answertype=5;
图4为话务员系统的效果图。
模块8:补发客户咨询模块(ReSend)
该模块简称补发模块,用于话务员对已经处理的咨询历史进行补发。话务员可以根据看到某段时间内自己处理咨询的历史,可以选择某一条(认为原始回复不正确)进行补发,并且一条信息只能补发一次。补发模块的功能和操作流程和算法和Consult模块类似。唯一不同的是补发的咨询存储咨询历史数据会加上补发标志。
模块9:客户黑名单申请模块(BlankListSubmit)
当话务员判断客户短信包含不合法内容时,将该客户提交到黑名单中,等待审核员的审核、同时该客户的咨询进入短信垃圾池。在审核前,该客户如果发送咨询还是可以得到处理。
该模块接收的输入为客户短信的一条记录(为Allquery中的一条记录)。
输出为黑名单列表CustomerBlackList.其中CustomerBlackList中的每一项至少应包括:客户短信的一条记录,提交的原因(可以选择系统配置好的原因模板或自定义原因)。
模块10:客户黑名单审核模块(CustomerBlackListAdmin)
客户黑名单审核员通过这个模块从黑名单列表CustomerBlackList取出一项,对该客户进行审核,可以审核通过,不通过,也可以提前解除。对于审核通过后的客户发送的咨询不能到话务员回复模块,系统直接放到垃圾池中,只有等到该客户解除了才能被服务。
模块11:话务员黑名单申请模块(CSRBlackListSubmit)
话务员管理人员将违规话务员进行提交至话务员黑名单列表CSRBlackList,等待审核员进行审核。其中CSRBlackList中的每一项至少应包括:话务员编号,提交的原因。
模块12:话务员黑名单审核模块(CSRBlackListCheck)
话务员黑名单审核员通过这个模块从话务员黑名单列表CSRBlackList取出一项,进行审核。审核操作为:通过审核,不通过、提前解除。通过审核的话务员将登陆不上系统。
模块13:白名单申请模块(WhiteListApply)
将一些申请白名单的客户输入到系统,等待审核员的审核,通过白名单的客户将会成为高级客户,会优先得到服务。
模块14:白名单审核模块(WhiteListCheck)
对申请的白名单客户进行审核,操作有:通过审核,不通过。
模块15:小休模块,小休时间查看模块(Rest、RestTimeView)
登陆员工可以通过小休模块选择小休时间进行小休。系统自动统计员工的当日小休时长和当月小休时长。话务员可以通过小休时间查看模块查看本人的某日和某月的小休时间。
模块16:工作时长、登陆时长模块(WorkTime、ListWorkTime)
登陆时长为话务员登陆到系统到退出系统的时间。工作时长为话务员单击“开始工作”到“结束工作”的实际时间。登陆时长和工作时长统计模块统计话务员的登陆时长,工作时长:当日总和和当月总和。以及显示用户的登陆时长,工作时长。
模块17:咨询历史查看、话务员回复咨询历史查看模块(HistoryQueryView、QueryCountOfCSR)
咨询历史查看模块以及话务员回复咨询历史查看模块用于查看话务员的处理历史:显示话务员的处理咨询的历史,可以根据号码、咨询内容等进行查询。
咨询历史查看模块中不同权限的用户只能查看其管辖范围内的话务员的咨询历史,比如,组长只能查看其组内话务员的咨询历史。话务员回复咨询历史查看模块是话务员查看自己的咨询历史。
模块18:数据库连接模块
数据库连接模块是负责系统的数据库连接和操作的类。将所有的连接和数据库操作的方法封装在该模块中,用于其它模块调用。
模块19:其它系统关联模块
统计系统对话务员模块(Consult)中的生成的数据进行统计,根据answertype字段来统计NLP系统的准确率,NLP系统的未识别率,知识库的知识错误率、知识库的不完善率,以及话务员的平均回复时间等等,将这些统计数据传送至监控台。
以NLP系统的准确率计算为例,根据模块4中answertype的定义,answertype=0的数据表示NLP理解是正确的,则:
其中N(answertype=0)表示咨询历史数据中answertype=0的数量总数;N表示咨询历史的数据总量。
以知识库的知识错误率计算为例,根据模块4中answertype的定义,answertype=1和answertype=5的数据表示话务员修改过知识库中知识,则:
其中N(answertype=1)和N(answertype=5)表示咨询历史数据中修改过知识库中的知识的数量总数(去重复);N表示知识库的知识的总数。
话务员的平均回复率的计算依靠咨询历史数据中的咨询接受时间和回复时间,某个话务员的平均回复率计算如下:
其中N为该话务员回复咨询的总数,∑(Treply-Treceive)为所有咨询的回复时间的总数。
系统将NLP系统的未识别的咨询,知识库的错误知识、自行编辑的知识传送至智能知识库系统、由智能知识库系统中的知识库管理模块来将修改的知识、新的知识和对应的原先的知识进行对比,由知识管理员进行确认;智能知识库系统文法抽取模块对未识别的咨询自动进行分词后文法管理模块抽取文法由知识管理员确认添加文法,从而提高NLP的准确率和识别率。
作为一种可选实施方式,本发明的客户化知识智能系统可以采用计算机C#语言实现,开发平台为.NET,在visual studio 2005集成开发环境中编译;数据库采用Oracle,操作系统为windows.
如附图5所示,上述实施例的智能知识库效能的初步测试,初步测试结果NLP理解准确率为85%以上,话务员工作效率300条/小时,统计1均值为3秒钟,统计2均值为6秒钟,统计3均值为1秒钟,统计4(话务员平均处理时长)为10秒钟,统计5因未设字段较难统计,今天晚间已经添加发送成功字段,统计5+统计6和的均值为32秒(短信内容较长一般都在3条以上),整体时长为52秒;
如附图6所示,从客户收发角度来看,绝大多数客户能够在1分钟内收到回复,在测试中有两位测试员使用的手机较为破旧,所以在客户收发时间差上,出现了两个比较集中的垂直散点群。
同时,实验结果还表明,系统页面刷新速度快,反映迅速;性能稳定,满足文字咨询的要求;智能知识库系统实现自动识别答案,在准确率较高情况下,现场编辑少。
上述内容仅仅是为描述本发明而列举的实施例,并非限制本发明专利保护的范围,一切不脱离本发明宗旨进行的修改或者等同替换的技术方案及其改进,均不应排除在本发明的权利要求的保护范围之外。