RPA用于数据获取的相关技术

在应用过程中,RPA通常在第一个数据获取环节就会遇到难题,如给机器人输入的是一份扫描件、一张图片或者一段人类语言描述的文字。如何来处理?这就需要另外两项技术:光学字符识别(OCR)技术和自然语言处理(NLP)技术。这两项技术早已发展多年,近年来又结合了深度学习和卷积神经网络等算法,在各自领域取得了突破。接下来,我们将从它们在自动化领域应用的原因、技术原理以及如何与RPA相结合这几个方面进行介绍。
1 光学字符识别
所谓光学字符识别(Optical Character Recognition,OCR)技术,是指基于电子设备(如扫描仪或数码相机)扫描件的文字,通过OCR技术检测扫描件上暗、亮的模式以确定文字的形状,然后用字符识别方法将形状翻译成文字的过程。整个过程是首先需要对纸质文本资料进行扫描,然后对图像文件进行分析处理,最后获取文字及版面信息。
由于企业员工在办理业务过程中,仍然需要与真实的物理世界打交道,小到发票识别、文档识别、银行卡和身份证的识别,大到广告、海报的识别,而RPA却不能直接读取这些图像信息,因此需要借助OCR技术。另外,如果遇到需要识别远程桌面或无法获取本地桌面的字段的情况,也需要借助OCR技术来识别。例如,财务领域的自动化应用中,经常需要利用OCR技术对发票进行识别和处理。图3-13为机动车销售统一发票。
如何辨别识别错误以及利用辅助信息提高识别正确率,是OCR中最重要的课题。而在自动化领域,对OCR的识别率要求就更高了,因为用户希望识别出来的数据最好不通过人工校验,就可以自动地录入系统或者用于校验信息。但由于扫描文件或照片涉及的干扰因素很多,包括扫描仪的品质、识别的方法、拍照时的光线、文件印刷品质、有无折痕、有无其他印记覆盖等,这些因素都会影响其识别的正确率。
RPA用于数据获取的相关技术

图3-13 机动车销售统一发票示例
所以,OCR在识别文字前,需要有一个图像优化处理过程,即影像前处理过程,对图像进行增强处理,如强化对比度、增加亮度、图像旋转等。接下来,就是文字特征的提取,一种方法是通过统计特征,另一种方法是通过图像结构的特征。有些特征结果还需要与预存的特征库进行比对。所以,这就是为什么不同的OCR产品对于不同语言的识别能力不同,关键在于某类字符的特征库是否完整,算法是否优化。衡量一项OCR技术性能好坏的主要指标有拒识率、误识率、识别速度、处理友好性、稳定性、易用性及可行性等。
传统的OCR技术还须靠人工来判断和校正,特别是对于手写文字、印章、套打、压盖等,识别率不高。虽然OCR技术已经发展多年,也在金融机构的票据中心、单证中心、财务共享中心得到广泛使用,但直到今天,人工介入的环节还是不可避免。人工介入的环节如何更少,人工介入后的处理如何更便捷,才是自动化领域专家需要考虑的问题。
在自动化领域,我们主要通过两个方向来解决OCR的识别率问题。一个是技术方向,即通过人工智能技术与OCR技术相结合的方式来提升识别率,特别是对于特殊文字的识别,如手写、压盖等。智能字符识别(Intelligent Character Recognition,ICR)这个名词也因此而产生。
大多数ICR都带有一个自学习系统,借助于机器学习(ML)和卷积神经网络(CNN)技术,自动更新识别库,并通过前期对大量字符集进行标注和训练,逐步形成所需要的神经网络模型。另外,ICR还可以通过配置不同的识别引擎并相互校验的方式来进行识别。每个引擎都会被赋予选择性投票权以确定字符的可信度。因为各种识别引擎的专长是不一样的,有的善于识别数字,有的善于识别英文,有的善于识别中文等。所以,用户需要根据识别的内容类型自动选择识别引擎或配置不同引擎的投票权重。
例如在识别数字时,用于识别数字的引擎具有更高的投票权重;在识别英文中,用于识别手写字母的引擎具有更高的投票权重。即使这样,在今天看来,手写文字的识别仍然是十分困难的。在自动化领域,通常只会对固定范围内且是正楷手写的文字才会尝试验证使用。图3-14是几个需要利用AI技术来协助完成识别的复杂图像,包括手写的阿拉伯数字和大写数字、被覆盖的印刷字符、带有勾选框的字符、印章文字以及带边框的文字。
RPA用于数据获取的相关技术

图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所示。
RPA用于数据获取的相关技术

图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…的表达方式就会显得非常混乱和难以理解。而规则引擎可以让用户以可视化、近乎自然语言的方式来定义这些规则,并在运行过程中及时生效。
RPA用于数据获取的相关技术

图3-16 规则矩阵
另外,如果将RPA流程处理过程与业务规则相解耦分离,也就可以将RPA开发人员和业务人员双方的权责分离。开发人员关注于流程实现,而业务人员关注于规则的定义。双方的权责明确不仅对自动化的设计过程有积极影响,而且对未来生产运行问题的界定和认责也是有积极影响的。
第二,维护方面。前面谈到业务规则经常会改变,如果业务规则和程序逻辑绑定,一些小的修改都可能造成业务风险。若二者相分离,业务规则不管如何改动都不会影响原有程序的运行。
第三,复用方面。规则引擎所具有的业务规则的复用性、业务规则库的全局视角,以及所见即所得的特点,都有利于管理者更好地了解业务运营情况。
在传统自动化应用领域,业务规则引擎经常结合工作流引擎技术一起使用。由于RPA的处理过程更加贴近真实的业务处理,因此很有必要将业务规则引擎独立出来进行单独表达和维护。在RPA运行过程中,机器人可以按照自己的处理流程随时调用内部配置或外部配置的业务规则引擎进行处理,处理结果再返回给机器人进行下一个步骤的操作。
3.2 知识库系统
知识库系统是收集、处理、分享组织中全部知识的信息系统,可以对组织中大量有价值的方案、策划、成果、经验等知识进行分类存储和管理,积累知识资产避免流失,促进知识的学习、共享、培训、再利用和创新。
RPA结合知识库系统的使用场景主要是呼叫中心对客户服务或员工服务。在自动化领域用好知识库系统,需要做到以下两点。
第一,需要考虑知识库中知识的积累方式和表示模式,由于以前的知识库都是提供给人类使用的,大多采用自然语言表达,而如果是提供给机器人使用,则更多地需要采用规则化、知识图谱类的存储方式。
第二,需要在知识库搜索到的结果中加入可信度分析,这样才能确保可信度高的知识可以被机器人拿来直接使用,而可信度低的知识还需要人工辅助校验。
3.3 基于数据的决策
当今时代,数据为企业所带来的价值是毋庸置疑的,但是绝大多数人讨论的都是大数据分析能够给企业的经营管理者或领导者带来什么价值。在自动化领域,我们需要利用小范围、小样本的数据,来帮助机器人在操作过程中快速地做出决策。其实,大数据帮助解决的是一线操作人员的判断和决策问题,以避免个人的直觉给企业带来风险隐患。所以,自动化领域的数据决策与大家经常讨论的大数据决策是有差别的。
在自动化领域,用户通常会用数据决策来解决两类问题:分类问题和决策分析问题。
分类问题经常出现在自动化操作过程中。数据分类就是把具有某种共同属性或特征的数据归并在一起。最容易的是通过所属类别的属性或特征对数据进行分类,如信用评估、文本分类、风险判断等;相对容易的是对线性数据进行分类;相对难一点的是对非线性数据和随机数据进行分类。
决策分析问题方法是利用一种树形结构,对树节点上的每个属性进行衡量,并以此做出最终的决策。该方法可以帮助RPA解决某些复杂问题的决策判断,而且决策结果也会更加理性。图3-17为一种树形结构的建厂决策分析示例。
RPA用于数据获取的相关技术

图3-17 决策分析问题树示例
我们除了要了解如何决策,在RPA领域还需要关心决策的速度。因为RPA的处理过程是一个连续的同步处理过程,而不是可延时的异步处理过程,所以就要求数据决策时从连续的数据记录中快速地提取知识。一旦有流数据进入分析引擎,分析引擎会立刻发起计算,并将结果输出至下游,因此,流数据处理的模式为“事件驱动”。目前,能满足这样能力的技术框架包括SOFA流计算平台、Confluent Platform、Spark Streaming等。
针对RPA在流数据处理过程中如何做出判断和决策,我们应该考虑前面介绍的三种技术。如果企业已经构建后端的IT决策系统,则采用RPA的好处就是不必开发与后端系统的接口程序,只需要先通过模拟人类员工的操作方式,访问系统后在用户界面输入关键字查询并获取决策结果,接着再回到自动化流程操作处理。
除了技术以外,当然还有一个最重要的因素可以考虑,那就是“人”。目前还没有任何算法和技术可以完全替代人的分析决策能力,特别是对于一些模糊、抽象和未知的领域。在RPA的处理过程中,加入人的判断和决策也是实现自动化的一种重要手段,而有人值守机器人的主要作用也是在于此。

RPA用于数据获取的相关技术