RPA通常在第一个数据获取环节就会遇到难题,如给机器人输入的是一份扫描件、一张图片或者一段人类语言描述的文字。如何来处理?这就需要另外两项技术:光学字符识别(OCR)技术和自然语言处理(NLP)技术。这两项技术早已发展多年,近年来又结合了深度学习和卷积神经网络等算法,在各自领域取得了突破。接下来,我们将从它们在自动化领域应用的原因、技术原理以及如何与RPA相结合这几个方面进行介绍。
1 光学字符识别
Optical Character Recognition,OCR)技术,是指基于电子设备(如扫描仪或数码相机)扫描件的文字,通过OCR技术检测扫描件上暗、亮的模式以确定文字的形状,然后用字符识别方法将形状翻译成文字的过程。整个过程是首先需要对纸质文本资料进行扫描,然后对图像文件进行分析处理,最后获取文字及版面信息。
RPA却不能直接读取这些图像信息,因此需要借助OCR技术。另外,如果遇到需要识别远程桌面或无法获取本地桌面的字段的情况,也需要借助OCR技术来识别。例如,财务领域的自动化应用中,经常需要利用OCR技术对发票进行识别和处理。图3-13为机动车销售统一发票。
OCR中最重要的课题。而在自动化领域,对OCR的识别率要求就更高了,因为用户希望识别出来的数据最好不通过人工校验,就可以自动地录入系统或者用于校验信息。但由于扫描文件或照片涉及的干扰因素很多,包括扫描仪的品质、识别的方法、拍照时的光线、文件印刷品质、有无折痕、有无其他印记覆盖等,这些因素都会影响其识别的正确率。
3-13 机动车销售统一发票示例
OCR在识别文字前,需要有一个图像优化处理过程,即影像前处理过程,对图像进行增强处理,如强化对比度、增加亮度、图像旋转等。接下来,就是文字特征的提取,一种方法是通过统计特征,另一种方法是通过图像结构的特征。有些特征结果还需要与预存的特征库进行比对。所以,这就是为什么不同的OCR产品对于不同语言的识别能力不同,关键在于某类字符的特征库是否完整,算法是否优化。衡量一项OCR技术性能好坏的主要指标有拒识率、误识率、识别速度、处理友好性、稳定性、易用性及可行性等。
OCR技术还须靠人工来判断和校正,特别是对于手写文字、印章、套打、压盖等,识别率不高。虽然OCR技术已经发展多年,也在金融机构的票据中心、单证中心、财务共享中心得到广泛使用,但直到今天,人工介入的环节还是不可避免。人工介入的环节如何更少,人工介入后的处理如何更便捷,才是自动化领域专家需要考虑的问题。
OCR的识别率问题。一个是技术方向,即通过人工智能技术与OCR技术相结合的方式来提升识别率,特别是对于特殊文字的识别,如手写、压盖等。智能字符识别(Intelligent Character Recognition,ICR)这个名词也因此而产生。
ICR都带有一个自学习系统,借助于机器学习(ML)和卷积神经网络(CNN)技术,自动更新识别库,并通过前期对大量字符集进行标注和训练,逐步形成所需要的神经网络模型。另外,ICR还可以通过配置不同的识别引擎并相互校验的方式来进行识别。每个引擎都会被赋予选择性投票权以确定字符的可信度。因为各种识别引擎的专长是不一样的,有的善于识别数字,有的善于识别英文,有的善于识别中文等。所以,用户需要根据识别的内容类型自动选择识别引擎或配置不同引擎的投票权重。
3-14是几个需要利用AI技术来协助完成识别的复杂图像,包括手写的阿拉伯数字和大写数字、被覆盖的印刷字符、带有勾选框的字符、印章文字以及带边框的文字。
3-14 复杂图像
OCR提高识别率。例如,采用统一的高拍仪或扫描仪按照规范来获取图像,而避免个人手机拍摄因为手机的差异、拍摄角度和光线的差异导致识别率降低。例如,加入预校验功能,即事先排除那些低识别率的扫描件,直接转入人工处理,而避免流程进入大批量处理后,再由人工处理。例如,采用在需要比对的系统用户界面上直接附着已经切割好的图像切片,这样就避免了用户的双屏来回切换以寻找对比要素的过程。类似的业务调整和管理手段还有很多,最终目的都是希望减轻业务人员的工作量,提高工作质量和效率。
OCR技术难以实现和掌握,还可以利用一些互联网公司提供的云端服务,如腾讯云的文字识别提供了身份证、名片、银行卡、车牌、行驶证、驾驶证、营业执照、通用手写体、通用印刷体的识别,并提供了后付费和预付费两种计费模式;百度云的文字识别还提供了网络图片、火车票、出租车票的识别。利用云服务的OCR每次识别的费用相对较低,如果企业对信息识别量不大,也可以考虑利用云服务结合RPA来一起使用。
2 自然语言处理
Natural Language Processing,NLP)是研究如何让计算机理解并生成人类自然语言的一种技术。在RPA的应用过程中,NLP的应用场景主要有以下几种情况。
·当机器人接收到的要处理的信息不是结构化字段,也不是待OCR处理的扫描图像,而是一段人类自然语言表达的文字时,这就需要NLP从中提取出关键的字段信息,然后自动录入系统或者与系统中的信息做比对。
·在OCR技术识别完信息之后,NLP技术可用来做优化处理,在识别完的文字中找出最合乎逻辑的词,做出文字修正。
·当需要处理大量信息时,RPA可以利用NLP进行检索或分类处理。
·NLP技术可以在RPA处理完成以后以自然语言的方式反馈给用户。
NLP由两项主要技术完成,包括自然语言理解和自然语言生成。自然语言理解的主要目标是帮助机器更好地理解人的语言,而自然语言生成的主要目标是帮助机器生成人类能够理解的语言。NLP是典型受制于语言特性的一项技术,如由于中文和英文在用词和语法的差异,造成NLP所使用的算法技术具有很大差异。
NLP一方面配合RPA来使用,另一方面也可以配合OCR来使用,协助提高文字识别率。例如,银行信用卡中心的RPA客服机器人收到这样的一份客户请求,“明天,请将我的个人信用卡额度多调整1万元”,这句话是不能被机器人所理解的,需要借助NLP,如图3-15所示。
3-15 NLP句法和词法分解
Daytime)是“明天”,即“计算机获取的今天日期+1”,假设得到明天的日期是“2018-11-20”;主语是“信用卡”;定语是“我的”,依据客户的请求来源可以得到Customer ID,再依据Customer ID查询该客户名下拥有的信用卡(Card No);动作(Action)是“额度调整”;金额(Amount)是“1万元”。
{Customer ID:XXXXXX|Card No:XXXX-XXXX-XXX|Action:Credit Limit Adjustment|Amount:10,000RMB|Daytime:2018-11-20},然后按照对应的动作自动打开相应的界面,直接录入相关信息进行操作。当然,机器人可能接收到的信息是“从明天起,我的信用卡额度增加1万元”或“我的信用卡额度从明天起请求提升1万元”,但是这样的话术调整,并不会影响处理结果。这只是一个较为简单的示例,真实的自然语言理解具有的难度更大,因为自然语言包含大量的口语语言现象,如省略、指代、更正、重复、强调、倒序等,所以中文的NLP仍然被公认为是最难的。
RPA的应用领域主要是在商业环境中的业务办理环节,话术是相对规范和标准的,而且范围也是相对狭窄和明确的。为了配合RPA的使用,企业也可以从管理角度规范双方沟通的话术。
3 用于决策判断的相关技术
OCR和NLP技术基本上解决了RPA在数据获取环节遇到的问题,你也许还会问,“难道业务流程中就没有基于员工经验的主观判断吗?对于这些判断和决策,机器人如何自动处理?”我们必须承认,主观判断绝对是有的。但是经过深入的分析,发现其实所谓的“个人经验”,实际上可以大致分为几类情况。
130~139mmHg/低压85~89mmHg)、轻度高血压(高压140~159mmHg/低压90~99mmHg)、中度高血压(高压160~179mmHg/低压100~109mmHg)、重度高血压(高压≥180mmHg/低压≥110mmHg)。有了具体的分级后,医生才能给患者制定相应的治疗方案。
RPA结合规则引擎的算法实现自动化;针对第二类情况,我们可以采用RPA结合数据统计分析的算法实现自动化;针对第三类情况,我们可以采用RPA结合知识库系统的方式实现自动化;第四类情况实现起来最有难度,以目前人工智能的发展水平,我们可以尝试采用专家系统结合机器学习和增强学习的方式。第四类情况太过主观,但其实在真实的商业环境中并不多见,大多数的业务环节是可以明确定义出业务规则和分析方法的,这也正是自动化应用前景广泛的原因。在高级的流程自动化应用中,决策环节经常采用的技术包括业务规则引擎、知识库和基于数据的决策技术。
3.1 业务规则引擎
Business Rule Engine,BRE)是指可以执行一个或多个业务规则的程序或软件。这些业务规则主要与企业中的业务规范、规章制度、逻辑判断有关,而与程序的处理过程无关。例如,当“VIP客户订单数量>10或普通客户的订单数量>50”时,客户有资格获得免费送货的福利;所有一次花费超过1000元的客户将获得10%的折扣等。这些业务规则经常会因为企业的经营情况、营销活动的变化而随时改变,所以企业希望利用独立规则引擎,与其他应用程序分开。这样,业务规则就可以被独立地定义、设计、测试、执行和维护。
RPA自动化脚本中,而是采用独立的规则引擎?这主要出于三方面的考虑。
3-16所示的规则矩阵,则利用程序中if…else…的表达方式就会显得非常混乱和难以理解。而规则引擎可以让用户以可视化、近乎自然语言的方式来定义这些规则,并在运行过程中及时生效。
3-16 规则矩阵
RPA流程处理过程与业务规则相解耦分离,也就可以将RPA开发人员和业务人员双方的权责分离。开发人员关注于流程实现,而业务人员关注于规则的定义。双方的权责明确不仅对自动化的设计过程有积极影响,而且对未来生产运行问题的界定和认责也是有积极影响的。
RPA的处理过程更加贴近真实的业务处理,因此很有必要将业务规则引擎独立出来进行单独表达和维护。在RPA运行过程中,机器人可以按照自己的处理流程随时调用内部配置或外部配置的业务规则引擎进行处理,处理结果再返回给机器人进行下一个步骤的操作。
3.2 知识库系统
RPA结合知识库系统的使用场景主要是呼叫中心对客户服务或员工服务。在自动化领域用好知识库系统,需要做到以下两点。
3.3 基于数据的决策
RPA解决某些复杂问题的决策判断,而且决策结果也会更加理性。图3-17为一种树形结构的建厂决策分析示例。
3-17 决策分析问题树示例
RPA领域还需要关心决策的速度。因为RPA的处理过程是一个连续的同步处理过程,而不是可延时的异步处理过程,所以就要求数据决策时从连续的数据记录中快速地提取知识。一旦有流数据进入分析引擎,分析引擎会立刻发起计算,并将结果输出至下游,因此,流数据处理的模式为“事件驱动”。目前,能满足这样能力的技术框架包括SOFA流计算平台、Confluent Platform、Spark Streaming等。
RPA在流数据处理过程中如何做出判断和决策,我们应该考虑前面介绍的三种技术。如果企业已经构建后端的IT决策系统,则采用RPA的好处就是不必开发与后端系统的接口程序,只需要先通过模拟人类员工的操作方式,访问系统后在用户界面输入关键字查询并获取决策结果,接着再回到自动化流程操作处理。
“人”。目前还没有任何算法和技术可以完全替代人的分析决策能力,特别是对于一些模糊、抽象和未知的领域。在RPA的处理过程中,加入人的判断和决策也是实现自动化的一种重要手段,而有人值守机器人的主要作用也是在于此。