本申请要求北京奔影网络科技有限公司于2019年12月31日提交的、申请名称为“RPA流程的生成方法以及相应的设备、计算机可读存储介质”的、中国专利申请号“201911423732.0”的优先权。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。在附图中,相同的参考标号自始至终表示相同的元件。应当理解:这里描述的实施例仅仅是说明性的,而不应被解释为限制本公开的范围。
首先,参照图1来描述可在其中应用本公开实施例的***的架构示意图。如图1所示,***100可以包括服务器110和终端120。终端120可以运行用于采集会话(session)数据的客户端,并通过该客户端采集会话数据。然后,终端120可以将所采集的会话数据发送给服务器110。服务器110可以对所获取的会话数据进行处理来生成至少一个RPA流程。通过这种方式,实现了依靠机器来挖掘流程,避免了依靠人工来挖掘流程,提高了流程挖掘的效率。
此外,在本公开中,终端120可以是智能手机、平板电脑、膝上型便携式计算机、台式计算机、客服终端等电子设备。服务器110可以是与终端120建立通信链路并且生成RPA流程的设备。
此外,需要认识到,尽管在图1中示出了一个服务器和一个终端,但这只是示意性的,图1所示的***可以包括多个服务器和/或多个终端。
下面将参照图2来描述根据本公开实施例的基于AI的RPA流程的生成方法。图2是根据本公开实施例的基于AI的RPA流程的生成方法200的流程示意图。方法200可以由图1中的服务器执行。
如图2所示,方法200可以包括以下步骤:
在步骤S201中,获取会话数据。
例如,在步骤S201中,服务器可以从至少一个终端获取会话数据。此外,终端在采集到会话数据后,可以实时地将会话数据发送给服务器。可替换地,终端在采集到会话数据后,可以非实时地将会话数据发送给服务器。例如,终端在采集到会话数据后,可以先将会话数据存储在终端的存储模块(例如,存储器)中,然后在预设时间之后再将会话数据发送给服务器。
根据本公开的一个示例,步骤S201中的会话数据可以包括各个会话的起止标识信息。每个会话的起止标识信息例如可以是该会话的开始标示符和/或结束标示符。
根据本公开的另一示例,步骤S201中的会话数据还可以包括各个会话的标识信息。每个会话的标识信息例如可以是会话标识(Identification,简称ID)。
根据本公开的另一示例,步骤S201中的会话数据还可以包括多个事件、以及与各个事件对应的时间戳。例如,终端可以根据常规的时间戳确定方法来确定与各个事件对应的时间戳,并将与各个事件对应的时间戳发送给服务器,以便服务器所获取的会话数据包括与各个事件对应的时间戳。
根据本公开的另一示例,步骤S201中的会话数据还可以包括与各个事件对应的页面统一资源***(Uniform Resource Locator,简称URL)、页面标题、页面控制元素、页面控制元素属性等中的至少一个。
然后,在步骤S202中,对会话数据进行处理,生成至少一个RPA流程。
应当理解的是,会话数据可以包括多个会话,多个会话的类别可能不同,而不同类别的会话可能对应不同的RPA流程,因此,在本公开实施例的一种可能的实现方式中,为了提升生成的RPA流程的可靠性,可以对会话数据中的多个会话进行聚类,得到多个会话类,然后,可以针对每个会话类,确定与该会话类对应的推荐流程,并基于推荐流程生成至少一个RPA流程。其中,推荐流程可以为会话类对应的标准流程或者格式化流程。
在本公开实施例的另一种可能的实现方式中,会话数据可以包括多个会话,可以针对多个会话中的每个会话,确定与该会话对应的向量,之后,可根据与多个会话对应的向量,生成至少一个RPA流程。
在本公开中,针对多个会话中的每个会话,可以根据自然语言处理方法,确定与该会话对应的向量。或者,为了提升每个会话对应的向量计算结果的准确性,还可以根据深度学习技术、机器学习方法,来确定与每个会话对应的向量,本公开对此并不作限制。比如,可以根据基于弱监督学习的自然语言处理中的Word2Vec和Glove等机制,将每个会话表示为一个向量。应当理解的是,还可以优化在机器学习中所使用的损失函数,从而提高用向量表示事件的准确率。
需要说明的是,上述仅是示例性实施例,但本公开不限于此,还可以包括本领域已知的其他的向量计算方法,只要能够得到会话对应的向量即可。
在本公开中,在确定多个会话对应的向量后,可根据与多个会话对应的向量,生成至少一个RPA流程。例如,可以根据多个会话对应的向量,对多个会话进行聚类,生成多个会话类,然后,可以针对每个会话类,确定与该会话类对应的推荐流程,并基于推荐流程生成至少一个RPA流程。
在本公开实施例的又一种可能的实现方式中,会话数据可以包括多个会话,每个会话可以包括多个事件,可以针对每个会话,分别确定该会话中的各个事件对应的向量,从而可根据各个事件对应的向量来确定与每个会话对应的向量,之后,可根据与多个会话对应的向量,生成至少一个RPA流程。例如,可以根据多个会话对应的向量,对多个会话进行聚类,生成多个会话类,然后,可以针对每个会话类,确定与该会话类对应的推荐流程,并基于推荐流程生成至少一个RPA流程。
下面将结合图3来描述本公开是如何对会话数据中的多个会话进行聚类,生成多个会话类,并针对每个会话类,确定与所述会话类对应的推荐流程,以基于所述推荐流程生成RPA流程的。图3是根据本公开实施例的对会话数据进行处理生成RPA流程的方法300的流程示意图。如图3所示,步骤S202可以包括以下四个子步骤,分别为图3中的步骤S301、步骤S302、步骤S303和步骤S304。
首先,在步骤S301中,可以对会话数据进行会话切割,生成多个会话。
在本公开中,终端的时钟和服务器的时钟可以同步,也可以不同步。当终端的时钟和服务器的时钟同步时,服务器在对会话数据进行会话分割前不需要对齐会话数据中的各个事件的时间戳。
然而,当终端的时钟和服务器的时钟不同步时,服务器在对会话数据进行会话分割前需要对齐会话数据中的各个事件的时间戳。例如,服务器可以基于终端的时钟与自身的时钟来对齐会话数据中的各个事件的时间戳。具体地,服务器可以确定终端的时钟与自身的时钟之间的时间差,然后根据该时间差对齐会话数据中的各个事件的时间戳。
此外,在步骤S301中,服务器可以根据会话数据中各个会话的起止标识信息,对会话数据进行会话切割。例如,在会话的起止标识信息为会话的开始标示符的示例中,服务器可以根据各个会话的开始标识符来对会话数据进行切割。具体地,服务器可以将相邻两个开始标识符之间的事件作为一个会话所包括的事件,从而实现会话分割。又例如,在会话的起止标识信息为会话的结束标示符的示例中,服务器可以根据各个会话的结束标识符来对会话数据进行切割。具体地,服务器可以将相邻两个结束标识符之间的事件作为一个会话所包括的事件,从而实现会话分割。又例如,在会话的起止标识信息为会话的开始标示符和结束标识符的示例中,服务器可以根据各个会话的开始标识符或者结束标识符来对会话数据进行切割。
在本公开中,会话可以是从开始页面访问到结束页面访问所进行的一系列操作,该一系列操作中的每个操作可以称为事件。这里所描述的事件可以是对页面中的控件(例如按钮、输入框)进行的操作,例如点击按钮、在输入框输入文字等。换言之,所生成的每个会话可以包括多个事件。
下面以***处理流程为例来描述会话和事件。例如,***处理流程可以包括以下步骤:(1)打开供应商的***电子邮件;(2)在***管理软件中创建工作项;(3)检查供应商名称是否正确;(4)检查金额是否正确;(5)如果均正确,计算税金;(6)录入供应商名称、金额以及税金;(7)关闭工作项。上述***处理流程是一个会话,其包括七个事件,该七个事件分别为上述步骤(1)至(7)。
在本公开中,会话也可以称为“流程”。为了方便使用,在下文中可以互换地使用会话和流程。
然后,在步骤S302中,可以对多个会话进行聚类,生成多个会话类。
根据本公开的一个示例,在对多个会话进行聚类之前,服务器可以对多个会话进行去噪。例如,多个会话中的冗余事件可以看作噪声数据,因此,服务器可以去除该多个会话中的冗余事件,从而实现对该多个会话进行去噪。具体地,当该多个会话中的某个事件仅在该多个会话中的单个会话中出现时,该事件可以被认为是冗余事件。可替换地,服务器可以设置冗余事件库,并且当该多个会话中的某个事件与冗余事件库中的事件匹配时,该事件可以被认为是冗余事件。
在该示例中,服务器通过对多个会话进行去噪,可以获得有效会话。然后,服务器可以基于与有效会话对应的向量,对有效会话进行聚类,从而生成多个会话类。
例如,服务器可以根据常规的聚类算法对有效会话进行聚类处理,以生成多个会话类。具体地,聚类算法的输入可以是与有效会话对应的向量,该聚类算法的输出可以是多个会话类。这里所描述的聚合算法可以是K均值(K-Means)聚类算法、均值漂移聚类算法、基于密度的聚类方法、用高斯混合模型的最大期望的聚类算法、凝聚层次聚类算法、图团体检测(Graph Community Detection)算法等。
此外,在该示例中,所生成的多个会话类可以是关于多种业务的会话类。也可以是一种业务的多个子业务的会话类,例如,所生成的多个会话类可以包括关于***处理流程的会话类、关于人事处理流程的会话类、关于电话客服的会话类等。也可以是票务电话客服中的订票流程会话类、退票流程会话类。
此外,在该示例中,每个会话类可以包括至少一个会话。此外,每个会话类中的各个会话都与同一种业务或子业务有关。例如,当会话类是关于***处理流程的会话类时,该会话类中的各个会话都与***处理流程有关。
然后,在步骤S303中,可以针对每个会话类,确定与该会话类对应的推荐流程。该推荐流程可以作为与该会话类对应的标准流程或者格式化流程。
根据本公开的一个示例,服务器可以对一会话类中各个会话所包括的事件进行相似度计算,以获得相似度计算结果。该相似度计算结果可以包括该会话类中任意两个事件之间的相似度。例如,服务器可以根据常规的相似度计算方法来计算该会话类中任意两个事件之间的相似度。
然后,服务器可以基于所述相似度计算结果,确定与该会话类对应的推荐流程。下面将结合图4来具体描述服务器如何基于相似度计算结果确定与会话类对应的推荐流程的具体过程。图4是根据本公开实施例的基于相似度计算结果确定与会话类对应的推荐流程的方法400的流程示意图。
如图4所示,在步骤S401中,服务器可以从一个会话类中各个会话所包括的事件中确定当前事件。
例如,服务器可以根据该会话类中各个会话的开始标识符,从该会话类中各个会话所包括的事件中选择一个事件作为当前事件。由于该会话类中的各个会话属于同一会话类,因此,可以假设该会话类中的各个会话中的第一个事件是相同的。在该假设下,服务器可以将该会话类中任一会话的开始标识符之后的第一个事件作为当前事件。
然后,在步骤S402中,服务器可以基于相似度计算结果,执行至少一次循环过程,其中,所述循环过程包括:判断该会话类中各个会话所包括的多个事件中除所述当前事件之外的其他事件中是否存在下一事件,其中,所述下一事件与所述当前事件的相似度超过阈值;当所述其他事件中不存在所述下一事件时,停止执行循环过程;当所述其他事件中存在所述下一事件时,从所述其他事件中确定所述下一事件,将所述下一事件作为下一次循环过程中的当前事件,并执行所述下一次循环过程。
例如,服务器可以从相似度计算结果中查找与当前事件的相似度超过阈值的事件,并将所查找的事件作为相对于当前事件的下一事件。
此外,这里的阈值的取值可以设置为较大的值,从而使得当前事件和下一事件的相似度较高。
在本公开中,在第一次循环过程中,服务器可以判断所述会话类中各个会话所包括的多个事件中除所述当前事件之外的其他事件中是否存在下一事件,当所述其他事件中不存在下一事件时,服务器可以根据所述当前事件确定与该会话类对应的推荐流程。也就是说,与该会话类对应的推荐流程仅包括当前事件。
此外,当所述其他事件中存在下一事件时,服务器可以从所述其他事件中确定下一事件,并将所述下一事件作为下一次循环过程中的当前事件,并执行所述下一次循环过程。也就是说,服务器可以重复执行判断其他事件中是否存在与本次循环过程采用的当前事件的相似度超过阈值的下一事件,当所述其他事件中不存在所述下一事件时,则根据本次循环过程采用的当前事件确定与所述会话类对应的推荐流程,而当所述其他事件中存在所述下一事件时,则采用所述下一事件作为下一次循环过程中的当前事件,并执行所述下一次循环过程,直至所述其他事件中不存在下一事件,停止执行循环过程的步骤。
然后,在步骤S403中,服务器可以根据最后一次循环过程采用的当前事件,确定与所述会话类对应的推荐流程。
在本公开中,服务器可以根据最后一次循环过程采用的当前事件,确定与所述会话类对应的推荐流程。具体地,服务器可以确定循环过程执行的次数,若所述循环过程执行次数为一次,则根据所述当前事件,确定所述会话类对应的推荐流程,而若所述循环过程执行次数大于一次,则根据最后一次循环过程采用的当前事件,以及之前每一次循环过程采用的当前事件,确定与所述会话类对应的推荐流程,即服务器可以根据每一次循环过程采用的当前事件,确定与所述会话类对应的推荐流程。例如,与该会话类对应的推荐流程可以包括每一次循环过程采用的当前事件。
下面给出与方法400对应的一个具体示例。假设一会话类包括三个会话且该三个会话中的第一个事件是相同的,并且第一会话包括三个事件,分别表示为P1、P12、P13,第二会话包括三个事件,分别表示为P1、P22、P23,第三会话包括四个事件,分别表示为P1、P32、P33、P34。根据方法400,在步骤S401,可以确定事件P1为当前事件。然后,在步骤S402中,在第一次循环过程中,可以基于相似度计算结果,判断该会话类所包括的除P1之外的剩余事件(P12、P13、P22、P23、P32、P33、P34)中是否存在下一事件。当存在下一事件时,可以从剩余事件(P12、P13、P22、P23、P32、P33、P34)中确定下一事件,例如确定下一事件为事件P22。然后,可以将事件P22作为第二次循环过程采用的当前事件,并执行第二次循环过程,即重复上述步骤S402,可以确定相对于事件P22的下一事件为事件P23,并将事件P23作为第三次循环过程采用的当前事件。然后,重复上述步骤S402,可以确定相对于事件P23的下一事件为事件P34,并将事件P34作为第四次循环过程采用的当前事件。然后,重复上述步骤S402,找不到相对于事件P34的下一事件。然后,在步骤S403中,可以根据第四次循环过程采用的当前事件,即事件P34、以及第一次循环过程采用的当前事件,即事件P1、第二次循环过程采用的当前事件,即事件P22、第三次循环过程采用的当前事件,即事件P23,来确定与该会话类对应的推荐流程,该推荐流程可以包括事件P1、事件P22、事件P23、以及事件P34。
此外,根据本公开的另一示例,服务器可以从一个会话类中挖掘会话评分高于第一阈值的会话,并根据所挖掘的会话评分高于第一阈值的会话来确定与该会话类对应的推荐流程。
具体地,首先,服务器可以从每个会话类中挖掘发生频率高于第二阈值的会话。例如,服务器可以统计该会话类中的各个会话的发生频率,然后从该会话类中选择发生频率高于第二阈值的会话。又例如,服务器可以根据常规的循环神经网络(Recurrent NeuralNetwork,简称RNN)深度学习来从每个会话类中挖掘发生频率高于第二阈值的会话。这里所描述的RNN深度学习可以是常规的长短期记忆网络(Long Short-Term Memory,简称LSTM)模型等。
在服务器根据RNN从每个会话类中挖掘发生频率高于第二阈值的会话的示例中,服务器可以根据第二阈值来确定RNN的网络特性。RNN的网络特征可以包括网络参数、网络节点的数量等中的一个或多个。
然后,服务器可以从所挖掘的发生频率高于第二阈值的会话中挖掘会话评分高于第一阈值的会话。例如,对于所挖掘的发生频率高于第二阈值的会话,服务器可以确定这些会话中每个会话的会话评分,然后从这些会话中选择会话评分高于第一阈值的会话。
在本公开中,会话评分可以是关于会话的优先级、会话的投入产出比等中的至少一个的函数。例如,会话评分可以是会话的优先级或者会话的投入产出比。又例如,会话评分可以是会话的优先级和会话的投入产出比的加权平均值。
此外,可以根据会话所包括的事件的数量、会话的发生频率以及会话所花费的时间等中的至少一个来确定会话的投入产出比。例如,会话的投入产出比可以与会话所包括的事件的数量、会话的发生频率以及会话所花费的时间等中的至少一个呈正比。例如,会话的投入产出比可以是会话所包括的事件的数量、会话的发生频率以及会话所花费的时间三者的乘积。然后,服务器可以将所挖掘的会话评分高于第一阈值的会话中的至少一个作为与该会话类对应的推荐流程。例如,当所挖掘的会话评分高于第一阈值的会话的数量是一个时,可以将所挖掘的会话评分高于第一阈值的会话作为与该会话类对应的推荐流程。当所挖掘的会话评分高于第一阈值的会话的数量是多个时,可以从所挖掘的会话评分高于第一阈值的会话中选择一个会话作为与该会话类对应的推荐流程。
返回图3,在步骤S304中,可以基于推荐流程生成RPA流程。
下面将结合图5来具体描述服务器基于推荐流程生成RPA流程的具体流程。图5是根据本公开实施例的服务器基于推荐流程生成RPA流程的方法500的流程示意图。
如图5所示,在步骤S501中,可以显示推荐流程。例如,服务器可以生成与所述推荐流程对应的可视化信息,并显示所述可视化信息。这里所描述的可视化信息可以是与推荐流程对应的图像(例如流程图)、音频文件、视频文件等中的至少一个。
然后,在步骤S502中,可以确定针对推荐流程的修改指令。例如,服务器可以通过服务器的输入装置(例如,鼠标、键盘等)来接收针对该推荐流程的修改指令。
然后,在步骤S503中,可以根据修改指令生成RPA流程。
具体地,服务器可以根据修改指令修改可视化信息,以获得修改后的可视化信息。例如,在可视化信息为流程图的示例中,服务器可以根据修改指令删除、修改或调整流程图中的某些步骤,以获得修改后的流程图。
然后,服务器可以基于修改后的可视化信息生成RPA流程。例如,在可视化信息为流程图的示例中,服务器可以基于修改后的流程图生成RPA流程。
进一步地,参见图6,在图2所示实施例的基础上,在步骤S202之后,方法200还可以包括步骤S203以及步骤S204。
具体地,在步骤S203中,可以确定是否触发执行所生成的至少一个RPA流程。例如,可以生成与RPA流程对应的流程标签。然后,可以确定是否对该流程标签进行了操作(例如,点击),来确定是否触发执行所生成的RPA流程。
当确定触发执行所述至少一个RPA流程时,可以执行步骤S204,即执行所述至少一个RPA流程。当确定未触发执行所述至少一个RPA流程时,可以不执行步骤S204,即不执行所述至少一个RPA流程。
上文描述了由服务器执行方法200的具体过程。根据本公开的另一示例,方法200也可以由图1中的终端执行。需要认识到,由终端执行方法200的过程与上文中由服务器执行方法200的过程类似,主要的不同之处如下所述。
具体地,在由终端执行方法200的示例中,在步骤S201中,终端可以采集会话数据来获取会话数据,也可以从其他终端接收会话数据以获取会话数据。
此外,当终端采集会话数据来获取会话数据时,终端在对会话数据进行会话分割(即步骤S301)前不需要对齐会话数据中的各个事件的时间戳。当终端从其他终端接收会话数据以获取会话数据时,终端可以在对会话数据进行会话分割(即步骤S301)前需要对齐会话数据中的各个事件的时间戳。
根据本公开实施例的生成方法,可以对所获取的会话数据进行处理来生成RPA流程,从而实现了依靠机器来自动挖掘流程,避免了依靠人工来挖掘流程,进而提高了流程挖掘的效率。
以下,参照图7来描述根据本公开实施例的与图2所示的方法对应的装置。图7示出了根据本公开实施例的执行图2所示的方法的装置600的结构示意图。装置600可以是图1中的服务器110。可替换地,装置600还可以是图1中的终端120。由于装置600的功能与在上文中参照图2描述的方法的细节相同,因此在这里为了简单起见,省略对相同内容的详细描述。如图7所示,装置600包括:获取单元610,被配置为获取会话数据;生成单元620,被配置为对所述会话数据进行处理,生成至少一个RPA流程。除了这两个单元以外,装置600还可以包括其他部件,然而,由于这些部件与本公开实施例的内容无关,因此在这里省略其图示和描述。
例如,获取单元610可以从至少一个终端获取会话数据。此外,终端在采集到会话数据后,可以实时地将会话数据发送给服务器。可替换地,终端在采集到会话数据后,可以非实时地将会话数据发送给服务器。例如,终端在采集到会话数据后,可以先将会话数据存储在终端的存储模块(例如,存储器)中,然后在预设时间之后再将会话数据发送给服务器。
根据本公开的一个示例,会话数据可以包括各个会话的起止标识信息。每个会话的起止标识信息例如可以是该会话的开始标示符和/或结束标示符。
根据本公开的另一示例,会话数据还可以包括各个会话的标识信息。每个会话的标识信息例如可以是会话标识(Identification,简称ID)。
根据本公开的另一示例,会话数据还可以包括多个事件、以及与各个事件对应的时间戳。例如,终端可以根据常规的时间戳确定方法来确定与各个事件对应的时间戳,并将与各个事件对应的时间戳发送给服务器,以便服务器所获取的会话数据包括与各个事件对应的时间戳。
根据本公开的另一示例,会话数据还可以包括与各个事件对应的页面统一资源***(Uniform Resource Locator,简称URL)、页面标题、页面控制元素、页面控制元素属性等中的至少一个。
下面将描述生成单元620对会话数据进行处理生成RPA流程的具体过程。
首先,生成单元620可以对会话数据进行会话切割,生成多个会话。
在本公开中,终端的时钟和服务器的时钟可以同步,也可以不同步。当终端的时钟和服务器的时钟同步时,生成单元620在对会话数据进行会话分割前不需要对齐会话数据中的各个事件的时间戳。
然而,当终端的时钟和服务器的时钟不同步时,生成单元620在对会话数据进行会话分割前需要对齐会话数据中的各个事件的时间戳。例如,生成单元620可以基于终端的时钟与自身的时钟来对齐会话数据中的各个事件的时间戳。具体地,生成单元620可以确定终端的时钟与自身的时钟之间的时间差,然后根据该时间差对齐会话数据中的各个事件的时间戳。
此外,生成单元620可以根据会话数据中各个会话的起止标识信息,对会话数据进行会话切割。例如,在会话的起止标识信息为会话的开始标示符的示例中,生成单元620可以根据各个会话的开始标识符来对会话数据进行切割。具体地,生成单元620可以将相邻两个开始标识符之间的事件作为一个会话所包括的事件,从而实现会话分割。又例如,在会话的起止标识信息为会话的结束标示符的示例中,生成单元620可以根据各个会话的结束标识符来对会话数据进行切割。具体地,生成单元620可以将相邻两个结束标识符之间的事件作为一个会话所包括的事件,从而实现会话分割。又例如,在会话的起止标识信息为会话的开始标示符和结束标识符的示例中,生成单元620器可以根据各个会话的开始标识符或者结束标识符来对会话数据进行切割。
在本公开中,会话可以是从开始页面访问到结束页面访问所进行的一系列操作,该一系列操作中的每个操作可以称为事件。这里所描述的事件可以是对页面中的控件(例如按钮、输入框)进行的操作,例如点击按钮、在输入框输入文字等。换言之,所生成的每个会话可以包括多个事件。
下面以***处理流程为例来描述会话和事件。例如,***处理流程可以包括以下步骤:(1)打开供应商的***电子邮件;(2)在***管理软件中创建工作项;(3)检查供应商名称是否正确;(4)检查金额是否正确;(5)如果均正确,计算税金;(6)录入供应商名称、金额以及税金;(7)关闭工作项。上述***处理流程是一个会话,其包括七个事件,该七个事件分别为上述步骤(1)至(7)。
在本公开中,会话也可以称为“流程”。为了方便使用,在下文中可以互换地使用会话和流程。
根据本公开的一个示例,参见图8,在图7所示实施例的基础上,装置600还可以包括去噪单元630,其被配置为在对多个会话进行聚类之前对多个会话进行去噪。例如,多个会话中的冗余事件可以看作噪声数据,因此,去噪单元630可以去除该多个会话中的冗余事件,从而实现对该多个会话进行去噪。具体地,当该多个会话中的某个事件仅在该多个会话中的单个会话中出现时,该事件可以被认为是冗余事件。可替换地,服务器可以设置冗余事件库,并且当该多个会话中的某个事件与冗余事件库中的事件匹配时,该事件可以被认为是冗余事件。
在该示例中,去噪单元630通过对多个会话进行去噪,可以获得有效会话。然后,生成单元620可以基于与有效会话对应的向量,对有效会话进行聚类,从而生成多个会话类。
例如,生成单元620可以根据常规的聚类算法对有效会话进行聚类处理,以生成多个会话类。具体地,聚类算法的输入可以是与有效会话对应的向量,该聚类算法的输出可以是多个会话类。这里所描述的聚合算法可以是K均值(K-Means)聚类算法、均值漂移聚类算法、基于密度的聚类方法、用高斯混合模型的最大期望的聚类算法、凝聚层次聚类算法、图团体检测(Graph Community Detection)算法等。
此外,在该示例中,所生成的多个会话类可以是关于多种业务或一种业务下多个子业务的会话类。例如,所生成的多个会话类可以包括关于***处理流程的会话类、关于工业流水线的会话类、关于人事处理流程的会话类、关于电话客服的会话类等。也可以是票务电话客服中的订票流程会话类、退票流程会话类。
此外,在该示例中,每个会话类可以包括至少一个会话。此外,每个会话类中的各个会话都与同一种业务或子业务有关。例如,当会话类是关于***处理流程的会话类时,该会话类中的各个会话都与***处理流程有关。又例如,当会话类是关于订票流程会话类,该会话类中的各个会话都与***处理流程有关。
此外,在本公开中,推荐流程可以作为与会话类对应的标准流程或者格式化流程。
根据本公开的一个示例,生成单元620可以对一会话类中各个会话所包括的事件进行相似度计算,以获得相似度计算结果。该相似度计算结果可以包括该会话类中任意两个事件之间的相似度。例如,生成单元620可以根据常规的相似度计算方法来计算该会话类中任意两个事件之间的相似度。
然后,生成单元620可以基于所述相似度计算结果,确定与该会话类对应的推荐流程。下面将具体描述生成单元620如何基于相似度计算结果确定与会话类对应的推荐流程的具体过程。
首先,生成单元620可以从一个会话类中各个会话所包括的事件确定当前事件。例如,生成单元620可以根据该会话类中各个会话的开始标识符,从该会话类中各个会话所包括的事件中选择一个事件作为当前事件。由于该会话类中的各个会话属于同一会话类,因此,可以假设该会话类中的各个会话中的第一个事件是相同的。在该假设下,生成单元620可以将该会话类中任一会话的开始标识符之后的第一个事件作为当前事件。
然后,生成单元620可以基于相似度计算结果,执行至少一次循环过程,其中,所述循环过程包括:判断该会话类中各个会话所包括的多个事件中除所述当前事件之外的其他事件中是否存在下一事件,其中,所述下一事件与所述当前事件的相似度超过阈值;当所述其他事件中不存在所述下一事件时,停止执行循环过程;当所述其他事件中存在所述下一事件时,从所述其他事件中确定所述下一事件,将所述下一事件作为下一次循环过程中的当前事件,并执行所述下一次循环过程。
例如,生成单元620可以从相似度计算结果中查找与当前事件的相似度超过阈值的事件,并将所查找的事件作为相对于当前事件的下一事件。
此外,这里的阈值的取值可以设置为较大的值,从而使得当前事件和下一事件的相似度较高。
在本公开中,在第一次循环过程中,生成单元620可以判断所述会话类中各个会话所包括的多个事件中除所述当前事件之外的其他事件中是否存在下一事件,当所述其他事件中不存在下一事件时,生成单元620可以根据所述当前事件确定与该会话类对应的推荐流程。也就是说,与该会话类对应的推荐流程仅包括当前事件。
此外,当所述其他事件中存在下一事件时,生成单元620可以从所述其他事件中确定下一事件,并将所述下一事件作为下一次循环过程中的当前事件,并执行所述下一次循环过程。也就是说,生成单元620可以重复执行判断其他事件中是否存在与本次循环过程采用的当前事件的相似度超过阈值的下一事件,当所述其他事件中不存在所述下一事件时,则根据本次循环过程采用的当前事件确定与所述会话类对应的推荐流程,而当所述其他事件中存在所述下一事件时,则采用所述下一事件作为下一次循环过程中的当前事件,并执行所述下一次循环过程,直至所述其他事件中不存在下一事件,停止执行循环过程的步骤。
然后,生成单元620可以根据最后一次循环过程采用的当前事件,确定与所述会话类对应的推荐流程。
在本公开中,生成单元620可以根据最后一次循环过程采用的当前事件,确定与所述会话类对应的推荐流程。具体地,生成单元620可以确定循环过程执行的次数,若所述循环过程执行次数为一次,则根据所述当前事件,确定所述会话类对应的推荐流程,而若所述循环过程执行次数大于一次,则根据最后一次循环过程采用的当前事件,以及之前每一次循环过程采用的当前事件,确定与所述会话类对应的推荐流程,即生成单元620可以根据每一次循环过程采用的当前事件,确定与所述会话类对应的推荐流程。例如,与该会话类对应的推荐流程可以包括每一次循环过程采用的当前事件。
此外,根据本公开的另一示例,生成单元620可以从一个会话类中挖掘会话评分高于第一阈值的会话,并根据所挖掘的会话评分高于第一阈值的会话来确定与该会话类对应的推荐流程。
具体地,首先,生成单元620可以从每个会话类中挖掘发生频率高于第二阈值的会话。例如,生成单元620可以统计该会话类中的各个会话的发生频率,然后从该会话类中选择发生频率高于第二阈值的会话。又例如,生成单元620可以根据常规的RNN深度学习来从每个会话类中挖掘发生频率高于第二阈值的会话。这里所描述的RNN深度学习可以是常规的LSTM模型等。
在生成单元620根据RNN从每个会话类中挖掘发生频率高于第二阈值的会话的示例中,生成单元620可以根据第二阈值来确定RNN的网络特性。RNN的网络特征可以包括网络参数、网络节点的数量等中的一个或多个。
然后,生成单元620可以从所挖掘的发生频率高于第二阈值的会话中挖掘会话评分高于第一阈值的会话。例如,对于所挖掘的发生频率高于第二阈值的会话,生成单元620可以确定这些会话中每个会话的会话评分,然后从这些会话中选择会话评分高于第一阈值的会话。
在本公开中,会话评分可以是关于会话的优先级、会话的投入产出比等中的至少一个的函数。例如,会话评分可以是会话的优先级或者会话的投入产出比。又例如,会话评分可以是会话的优先级和会话的投入产出比的加权平均值。
此外,可以根据会话所包括的事件的数量、会话的发生频率以及会话所花费的时间等中的至少一个来确定会话的投入产出比。例如,会话的投入产出比可以与会话所包括的事件的数量、会话的发生频率以及会话所花费的时间等中的至少一个呈正比。例如,会话的投入产出比可以是会话所包括的事件的数量、会话的发生频率以及会话所花费的时间三者的乘积。
然后,生成单元620可以将所挖掘的会话评分高于第一阈值的会话中的至少一个作为与该会话类对应的推荐流程。例如,当所挖掘的会话评分高于第一阈值的会话的数量是一个时,可以将所挖掘的会话评分高于第一阈值的会话作为与该会话类对应的推荐流程。当所挖掘的会话评分高于第一阈值的会话的数量是多个时,可以从所挖掘的会话评分高于第一阈值的会话中选择一个会话作为与该会话类对应的推荐流程。
下面将具体描述生成单元620基于推荐流程生成RPA流程的具体流程。
首先,参见图8,在图7所示实施例的基础上,装置600还可以包括显示单元640,其被配置为显示推荐流程。例如,显示单元640可以生成与所述推荐流程对应的可视化信息,并显示所述可视化信息。这里所描述的可视化信息可以是与推荐流程对应的图像(例如流程图)、音频文件、视频文件等中的至少一个。
然后,生成单元620可以确定针对推荐流程的修改指令。例如,生成单元620可以通过服务器的输入装置(例如,鼠标、键盘等)来接收针对该推荐流程的修改指令。
然后,生成单元620可以根据修改指令生成RPA流程。
具体地,生成单元620可以根据修改指令修改可视化信息,以获得修改后的可视化信息。例如,在可视化信息为流程图的示例中,生成单元620可以根据修改指令删除、修改或调整流程图中的某些步骤,以获得修改后的流程图。
然后,生成单元620可以基于修改后的可视化信息生成RPA流程。例如,在可视化信息为流程图的示例中,生成单元620可以基于修改后的流程图生成RPA流程。
此外,参见图8,在图7所示实施例的基础上,装置600还可以包括执行单元650,其被配置为当确定触发执行所述至少一个RPA流程时执行该至少一个RPA流程。
具体地,执行单元650可以确定是否触发执行所生成的至少一个RPA流程。例如,可以生成与RPA流程对应的流程标签。然后,可以确定是否对该流程标签进行了操作(例如,点击),来确定是否触发执行所生成的RPA流程。
当确定触发执行所述至少一个RPA流程时,执行单元650可以执行所述至少一个RPA流程。当确定未触发执行所述至少一个RPA流程时,执行单元650可以不执行所述至少一个RPA流程。
根据本公开实施例的生成设备,可以对所获取的会话数据进行处理来生成RPA流程,从而实现了依靠机器来挖掘流程,避免了依靠人工来挖掘流程,提高了流程挖掘的效率。
此外,根据本公开实施例的设备(例如,服务器、终端等)也可以借助于图9所示的计算设备的架构来实现。图9示出了该计算设备的架构。如图9所示,计算设备700可以包括总线710、一个或多个CPU 720、只读存储器(ROM)730、随机存取存储器(RAM)740、连接到网络的通信端口750、输入/输出组件760、硬盘770等。计算设备700中的存储设备,例如ROM730或硬盘770可以存储计算机处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令。计算设备700还可以包括用户界面780。当然,图9所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图9示出的计算设备中的一个或多个组件。
本公开的实施例也可以被实现为计算机可读存储介质。根据本公开实施例的计算机可读存储介质上存储有计算机可读指令。当所述计算机可读指令由处理器运行时,可以执行参照以上附图描述的根据本公开实施例的方法。所述计算机可读存储介质包括但不限于例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,如本公开和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
此外,本公开中使用了流程图用来说明根据本公开实施例的实施例的***所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上对本公开进行了详细说明,但对于本领域技术人员而言,显然,本公开并非限定于本说明书中说明的实施方式。本公开在不脱离由权利要求书的记载所确定的本公开的宗旨和范围的前提下,可以作为修改和变更方式来实施。因此,本说明书的记载是以示例说明为目的,对本公开而言并非具有任何限制性的意义。