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