The present invention pertains to computer recognition of natural language text and automating execution of processes described in the text. More particularly, the present invention is directed to a system and method to improve user-to-computer interaction efficiency by having software that replicates the sequence of steps that a human undertakes in order to perform a defined process or task, specifically by automating the actions described in a natural language (for example, found in a knowledgebase or books).
Many workers in today's organizations utilize a computer to perform some or all of their daily job functions. Additionally, many organizations provide specific instructions to their employees on how to properly complete a process or task using the computer.
A contact center for an automobile insurance company serves as a good, non-limiting, illustrative example. When a caller phones the organization, they are typically, when so requested, connected with an agent of the organization. The caller states their intent, for example, to add a driver to their automobile insurance policy. The agent may then consult an internal document (typically referred to as a knowledge article or knowledge base article) to obtain a detailed sequence of steps that need to be performed using their computer and the various software systems at their disposal. These steps may include an application of business rules (for example, instructing the agent to use the billing system to retrieve the customer's credit score, or to ask the customer for additional data), and discrete actions (for example, instructing the agent to switch to a customer record management (CRM) system, retrieve the customer record, navigate to a specific screen, and add the new driver to the selected policy). Importantly, the knowledge article describing these steps to the employee is written in plain text (natural language) and displayed to the employee in that manner on his or her display screen. The organization typically stores in a database a collection of such knowledge articles explaining the steps that an employee should follow to accomplish a variety of different tasks, and this collection is referred to herein as a knowledgebase.
When business processes, rules, or procedures change, these changes are reflected in one or more knowledge articles in the knowledgebase. In this manner, organizations can ensure that the knowledgebase always reflects the most recent policies and procedures for employees to follow.
While systems and methods exist to automate interactions on a software system (typically called Robotic Process Automation or RPA), it would be desirable to provide the ability to read and parse a knowledgebase based on the customer's request (e.g.. adding a new driver to an existing insurance policy) and automatically convert the steps described in one or more knowledge articles of the knowledgebase so that they actually may be executed by RPA solutions.
Current RPA solutions require implementation of processes in either a computer language or a proprietary modelling environment. Specifically, a developer or analyst reviews the policies and/or procedures contained within the knowledgebase and “codes” these policies and/or procedures into a language that an RPA solution is able to understand.
It should be readily apparent that two significant disadvantages exist with these current solutions. First, the need to utilize resources to code knowledgebase-defined actions into actions that RPA solutions can understand is labor intensive, expensive and time consuming, in addition to being error prone. Second, whenever policies are updated in the knowledgebase, these changes need to be reflected in the RPA code, requiring manual changes that may take time to implement. This often results in the automated execution not matching current organizational best practices and the most up-to-date policies and procedures as reflected in the knowledgebase.
Accordingly, it would be desirable to overcome these limitations and obviate the need for manually coding (or converting) knowledgebase content. In particular, it would be desirable to provide a solution which can automatically read, parse, understand and execute processes which are described in the knowledgebase. This would also ensure that an organization's most current policies and procedures are always reflected in the executing automation code.
In one aspect of the invention, a method comprises: a processor retrieving a knowledge article from a knowledgebase, the knowledge article being written in free text and pertaining to an operation which can be performed by an agent and which is to be automated; the processor parsing the knowledge article to extract from the knowledge article a list of instructions for the operation; the processor identifying fields and screen elements corresponding to the extracted list of instructions on one or more display screens presented to the agent for performing the operation; and the processor processing the identified fields and screen elements to generate executable code for an execution engine so as to automate the operation.
In another aspect of the invention, a system comprises: a display device; one or more processors; and a tangible storage device. The tangible storage device stores therein instructions which, when executed by the one or more processors, cause the one or more processors to perform a method. The method comprises: retrieving a knowledge article from a knowledgebase, the knowledge article being written in free text and pertaining to an operation which can be performed by an agent and which is to be automated; parsing the knowledge article to extract from the knowledge article a list of instructions for the operation; identifying fields and screen elements corresponding to the extracted list of instructions on one or more display screens presented to the agent via the display device for performing the operation; and processing the identified fields and screen elements to generate executable code for an execution engine so as to automate the operation.
In the description to follow an individual may be referred to as an “operator,” an “agent,” or an “employee.” It should be understood that these terms are used interchangeably, depending on context, to refer to an individual who performs a series of tasks according to an established set of procedures in order to accomplish a particular objective.
As is traditional in the field of the inventive concepts, embodiments are described, and illustrated in the drawings, in terms of functional blocks, units and/or modules. Those skilled in the art will appreciate that these blocks, units and/or modules are physically implemented by electronic (or optical) circuits such as logic circuits, discrete components, microprocessors, hard-wired circuits, memory elements, wiring connections, and the like, which may be formed using semiconductor-based fabrication techniques or other manufacturing technologies. In the case of the blocks, units and/or modules being implemented by microprocessors or similar, they may be programmed using software (e.g., microcode) to perform various functions discussed herein and may optionally be driven by firmware and/or software. Alternatively, each block, unit and/or module may be implemented by dedicated hardware, or as a combination of dedicated hardware to perform some functions and a processor (e.g., one or more programmed microprocessors and associated circuitry) to perform other functions. Also, each block, unit and/or module of the embodiments may be physically separated into two or more interacting and discrete blocks, units and/or modules without departing from the scope of the inventive concepts. Further, the blocks, units and/or modules of the embodiments may be physically combined into more complex blocks, units and/or modules without departing from the scope of the inventive concepts.
Processor 100 may be any suitable processor type including, but not limited to, a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable array (FPGA) where the FPGA has been programmed to form a processor, a graphical processing unit (GPU), an application specific circuit (ASIC) where the ASIC has been designed to form a processor, or a combination thereof.
Processor 100 may include one or more cores 102. Core 102 may include one or more arithmetic logic units (ALU) 104. In some embodiments, core 102 may include a floating point logic unit (FPLU) 106 and/or a digital signal processing unit (DSPU) 108 in addition to or instead of ALU 104.
Processor 100 may include one or more registers 112 communicatively coupled to core 102. Registers 112 may be implemented using dedicated logic gate circuits (e.g., flip-flops) and/or any memory technology. In some embodiments registers 112 may be implemented using static memory. The register may provide data, instructions and addresses to core 102.
In some embodiments, processor 100 may include one or more levels of cache memory 110 communicatively coupled to core 102. Cache memory 110 may provide computer-readable instructions to core 102 for execution. Cache memory 110 may provide data for processing by core 102. In some embodiments, the computer-readable instructions may have been provided to cache memory 110 by a local memory, for example, local memory attached to external bus 116. Cache memory 110 may be implemented with any suitable cache memory type, for example, metal-oxide semiconductor (MOS) memory such as static random access memory (SRAM), dynamic random access memory (DRAM), and/or any other suitable memory technology.
Processor 100 may include a controller 114, which may control input to processor 100 from other processors and/or components included in a system and/or outputs from processor 100 to other processors and/or components included in the system. Controller 114 may control the data paths in ALU 104, FPLU 106 and/or DSPU 108. Controller 114 may be implemented as one or more state machines, data paths and/or dedicated control logic. The gates of controller 114 may be implemented as standalone gates, FPGA, ASIC or any other suitable technology.
Registers 112 and cache 110 may communicate with controller 114 and core 102 via internal connections 120A, 120B, 120C and 120D. Internal connections may be implemented as a bus, multiplexor, crossbar switch, and/or any other suitable connection technology.
Inputs and outputs for processor 100 may be provided via external bus 116, which may include one or more conductive lines. External bus 116 may be communicatively coupled to one or more components of processor 100, for example controller 114, cache 110, and/or register 112.
External bus 116 may be coupled to one or more external memories. The external memories may include Read Only Memory (ROM) 132. ROM 132 may be a masked ROM, Electronically Programmable Read Only Memory (EPROM) or any other suitable technology. The external memory may include Random Access Memory (RAM) 133. RANI 133 may be a static RAM, battery backed up static RANI, Dynamic RAM (DRAM) or any other suitable technology. The external memory may include Electrically Erasable Programmable Read Only Memory (EEPROM) 135. The external memory may include Flash memory 134. The external memory may include an optical or magnetic storage device such as disc 136.
Although a detailed description of processing system 1 which may be employed in systems and to perform methods disclosed herein has been described above as a concrete example, in general the operations described herein may be performed by a general purpose computer with any processor and memory, in particular a computer which operates with a standard operating system such as WINDOWS®, MACINTOSH® Operating System (“macOS”), UNIX, Linux, etc.
A discussed above, organizations today instruct employees on how to handle certain processes, and these instructions can be issued as a sequence of steps to be performed. Many organizations have developed a knowledgebase which consists of a collection of knowledge articles (sometimes also referred to as knowledge base articles) which are written in plain language (e.g., English) and are referenced by employees, typically via a computer display screen, as they perform corresponding tasks according to the instructions of the knowledge article(s).
In particular,
In more detail,
In still more detail, referring still to
In more detail,
For example, in the event that additional information needs to be collected from the agent 1000 in order to complete a transaction via one or more applications on agent's computer 1050, the execution engine 1600 can instruct the robotic process automation (RPA) solution 1085 (or the software directly) that more information needs to be collected. RPA solution 1085 can invoke 1058 a form or dialog box 1055 which may be opened on a display screen of agent's computer 1050 and which agent 1000 can complete to provide the needed or missing information. Upon submission, RPA solution 1085, by itself or in conjunction with execution engine 1600, can complete the transaction.
Ambiguity may be resolved similarly. When execution engine 1600 is unable to ascertain the next task, a dialog box 1055 may be presented to the agent 1000 via a display screen of agent computer 1050 for the agent 1000 select the appropriate action. This corrective action may be sent back 1650 to the execution engine 1600 such that the execution engine 1600 can continue to utilize machine learning and, over time, be able to resolve that ambiguity by itself. This ambiguity may be reflected as machine learning feedback 1585 to the mapping engine 1590 in order to improve the performance/accuracy of mapping engine 1590.
Still referring to
Still referring to
It should be noted that, for ease of explanation, the learning phase has been described separately from the execution phase. However, nothing herein should prevent the mapping engine from combining both phases, where continuous learning and execution can happen simultaneously.
Mapping engine 2000 retrieves the step or steps from the knowledge article based on the customer's intent (e.g., add a policy). Because the text is expressed in natural language, the knowledge article may be processed through a number of stages in order to produce the desired output of executable code. In a first stage 2010, the knowledge article may be parsed to extract the intents, conditions and instructions from the knowledge article. In a second stage 2020, the fields and screen elements are identified on the screen and as referenced in the knowledge article. In a third stage 2030, the information may be combined and processed to produce code for the execution engine. While only three phases are shown here, nothing should limit the mapping engine from adding to or subtracting from these phases. Moreover, the present embodiment employs three distinct phases but it should be readily understood that phases can be combined or separated in alternative ways.
While one reasonably skilled in the art can appreciate that the order and types of mapping may vary, in some embodiments the mapping engine first applies template matching and/or regular expression matching to the input text in an operation 2012. Template matching increases recognition of which text in the knowledge article refers to the steps that need to be executed. For example, in
In addition, domain matching may be used to further improve accuracy of the instruction parsing. Domain matching refers to utilizing known terminology, vocabulary, Part-Of-Speech, tagging, dependencies, glossary, entities, syntax, semantics and actions from a particular industry vertical or specialization. For example, within the property and casualty insurance industry there are known terms (e.g., “Coverage”, “policy limits”, “named insured”, “liability,” etc.), known intents and actions (claims, policy changes, etc.), etc. This allows mapping engine 2000 to map local terminology to consistent phrases for easier processing. The domain knowledge can come from the customer knowledgebase and/or from other customers in the same vertical tier. In a typical implementation, mapping engine 2000 will come with its domains as a starting point and will be trained on the customer knowledgebase using machine learning techniques to improve parsing accuracy. An optional entity extraction operation 2016 may be further applied to extract entities from the extracted instructions in order to improve accuracy for the execution engine.
This output is now ready for the execution engine 1600 as described above with respect to
The advantages of the arrangements described above may include, but are not limited to, dramatically improving agent efficiency by automating tasks in the knowledgebase, automatically generating automation code by interpreting the agent's interactions with the knowledgebase and underlying applications and keeping all business rules of an organization centralized in the knowledgebase.
Broadly, the arrangements described above may provide for the ability to dynamically take information contained in a knowledgebase and through a combination of monitoring agent behavior coupled with machine learning, automatically enact automation on the computer desktop.
An operation 910 includes a processor retrieving a knowledge article from a knowledgebase, the knowledge article being written in free text and pertaining to an operation performed by an agent and which is to be automated.
An operation 920 includes the processor parsing the knowledge article to extract from the knowledge article a list of instructions for the operation.
An operation 930 includes the processor identifying fields and screen elements corresponding to the extracted list of instructions on one or more display screens presented to the agent for performing the operation.
An operation 940 includes the processor processing the identified fields and screen elements to generate executable code for an execution engine so as to automate the operation.
Software, and documentation thereof, which may be executed by a processor, such as processing system 1, or a computer which operates with a standard operating system such as WINDOWS®, MACINTOSH® Operating System (“macOS”), UNIX, Linux, etc., to perform one or more of the various operations described herein may be found at http://chilp.it/c47cc2d, the contents or which are incorporated by reference as if fully set forth herein.
While the foregoing written description enables one of ordinary skill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. Such variations would become clear to one of ordinary skill in the art after inspection of the specification, drawings and claims herein. The invention should therefore not be limited by the above described embodiment, method, and examples, but by all embodiments of devices, systems, and methods within the scope and spirit of the invention.
This patent application claims priority under 35 U.S.C. § 119(e) from U.S. provisional patent application 62/824,119, filed on 26 Mar. 2019 in the names of Gideon Hollander, et al., the entirety of which is hereby incorporated by reference as if fully set forth herein.
Number | Date | Country | |
---|---|---|---|
62824118 | Mar 2019 | US |