AUTOMATED MULTI-GRAMMAR LANGUAGE PROCESSING SYSTEM TO OPTIMIZE REQUEST HANDLING IN CONTACT CENTERS
20170068657 ยท 2017-03-09
Inventors
Cpc classification
H04L51/216
ELECTRICITY
G06F40/232
PHYSICS
International classification
Abstract
An automated multi-grammar language processing system provides optimized request handling in contact centers. It enables a contact center to receive and analyze requests from users in the form of text messages, such as sms, email, instant messages, voice messages converted to text, etc., and to understand in real time if the request is to be managed by an automated system or queued for processing by a human operator.
Claims
1-16: (canceled)
17. A method for automated language processing for determining an intended meaning of a user message in an actual request from a user, comprising the steps of: providing a computing device and a memory; receiving a user message containing information, said user message being written in an unrestricted combination of writing styles and languages in which said writing styles and languages can include any of proper and improper grammatical structure and any of properly spelled words and misspelled words, and wherein said writing styles and languages can contain query keywords and can be expressed in a simplified grammatical structure used in search queries; storing the available supported grammars, supported language models, and available responses in memory so as to form a single knowledge graph; providing a message analyzer for analyzing said message using said computing device, wherein said message analyzer processes at least a portion of a message using at least one of multiple grammars and languages in parallel, so as to extrapolate, for each element of the message, possible candidates and combinations of candidates matching known elements in said supported grammars; analyzing said candidates and combinations of candidates using said computing device to match them with known services and responses to produce identified candidates; and analyzing said identified candidates using said computing device to select the most probable combination of said identified candidates that matches the intended meaning of said user message in the actual request from the user; wherein said message analyzer accesses information identified and extracted from the user message to select the proper response or the proper action to execute following up to the user request.
18. The method of claim 17 further comprising the steps of: providing a natural language processing system in said memory; identifying whether said user message contains structures and elements expressed in natural language and, in such case, further processing said message said natural language processing system.
19. The method of claim 17, wherein said message is written at least partially in short messaging service (SMS) Language.
20. The method of claim 17, wherein said message is written at least in part as a sequence of query keywords.
21. The method of claim 17, wherein said message is written all or in part in Natural Language.
22. The method of claim 17, wherein said message is transmitted over the Internet.
23. The method of claim 17, wherein said message is transmitted over a mobile network.
24. The method of claim 17, wherein said message is a user request sent to a contact center.
25. The method of claim 17, further comprising the step of: storing and analyzing the user conversation history in conjunction with said message received.
26. The method of claim 17 further comprising the step of: determining if an automatic processing system should handle the analyzed request and whether the analyzed request should be forwarded to a human customer support operator.
27. The method of claim 26, wherein the status of said contact center and of said customer support operators is taken into account to determine if a request should be processed automatically and whether the analyzed request should be forwarded to said customer support operator.
28. The method of claim 26 wherein incoming requests by a same user are preferentially forwarded to a same customer support operator.
29. A contact center system comprising: a Multi-Grammar Language processing system including a computing device and a memory; a Response & Service Backend; and a knowledge graph stored in said memory comprising grammars, related keywords, group of keyword, regular expressions, classes of words and language models linked in the graph to the responses and to the services handled by the contact center; said contact center receiving a user message containing information, said user message being written in an unrestricted combination of writing styles and languages in which said writing styles and languages can include any of proper and improper grammatical structure and any of properly spelled words and misspelled words, and said writing styles and languages can contain query keywords and can be expressed in a simplified grammatical structure used in search queries; said Multi-Grammar Language processing system storing the available supported grammars, supported language models, and available responses in said memory so as to form said knowledge graph; said Multi-Grammar Language processing system including a message analyzer for analyzing said message using said computing device to extrapolate, for each element of the message, possible candidates and combinations of candidates matching known elements in said supported grammars; analyzing said candidates and combinations of candidates using said computing device to match them with known services and responses to produce identified candidates; and analyzing said identified candidates using said computing device to select the most probable combination of said identified candidates that matches the intended meaning of said user message in the actual request from the user; wherein said message analyzer accesses information identified and extracted from the user message to select the proper response or the proper action to execute following up to the user request.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
DETAILED DESCRIPTION OF THE INVENTION
[0037]
[0038] The end-user device 102 can be a handheld device such as a phone, a smartphone, a tablet, a laptop or desktop computer as well as any other device capable of collecting a message from an end-user 101 and transmitting it through a network. The system requires the same device 102, or a different device, to be capable of receiving a response 105 from the Processing Server 106 and of presenting said response to the end-user 101.
[0039] In one embodiment of the invention, the end-user 101 is a person requesting some information or actual instructions on how to perform a specific action related to any of the services provided by the contact center. In another embodiment the end-user is a customer communicating information to a contact center. The end-user 101 can be previously known by the contact center or he/she can be a first-time user of the service. The end-user can be authenticated or remain anonymous if the request type allows it.
[0040] The network 104 is a telecommunication network; in one embodiment it can be the Internet, in another embodiment a cellular network or any other network capable of receiving and transmitting messages between the end-user device and the processing server. There is no need for the network used to transmit the request to be the same network used to transmit the response. It is common for the request to be sent through the Internet and for the response to be sent through a cellular network in the form of an SMS. Similarly, there is no need for device 102 and processing system 107 to be connected to the same type of network as long as messages 103 and 105 can be successfully delivered across the networks where the device 102 and the processing system 107 are connected.
[0041] Request 103 is a message sent by an end-user to the contact center. In one embodiment the message can contain a request to receive information from the contact center, a request for the contact center to perform a specific action on behalf of the end-user, or it can contain information required by the contact center to fulfill a specific operation or to update the end-user profile. In one embodiment of the invention the message is a text message. Said text message can be an SMS, an email, an instant message or a text message collected by a smartphone application, by a web form or by a speech to text processor. In another embodiment the message can be a voice or an audio/video message automatically converted to text.
[0042] Response 105 is a message sent by the contact center to the end-user. The message could contain the information requested by the user, the confirmation that an action has been performed on behalf of the user, the confirmation that a request has been fulfilled, a request for the user to provide more information, a thank you message, the confirmation that the request has been queued for the contact center to manage, or an error message. In one embodiment the response 105 is a text message sent as SMS, email, instant message or using a network protocol to deliver it to an application or web page able to display it. Response 105 is not always required; in one embodiment of the invention the system silently processes or discards requests without returning any response to the user.
[0043] The system 107 is a Multi-grammar Language Processing System connected to a network 104 and capable of receiving and processing messages sent by end-users. In one embodiment, the Processing System 107 is a computer server running software capable of automatically processing users' requests as hereunder described. In one embodiment of the invention the Processing System 107 is connected to a Response & Service Backend 109 required to fulfill a request once said request has been analyzed and understood by the Processing System itself. The Processing System is capable of directing a user's request to a human contact center operator 110 if this request requires special attention or if the Processing System was unable to properly process and understand it. In order to understand a wide range of user's requests, the Processing System is configured, trained and managed by a System Manager 108. To enhance its capabilities, a Processing System 107 can integrate multiple storages, databases and computing servers not illustrated in the drawings. The main purpose of the Multi-Grammar Language Processing system 107 is to understand a user's request identifying all relevant information required to fulfill the request itself. In one embodiment of the invention the Processing System 107 is able to understand if the request is about retrieving information, if it is requesting an action, what is the specific service requested, what information the user is providing about the service requested, what subject the user requires more information about. More generally the Processing System is able to understand how to route the request to the Response and Service Backend, enriching the request with all the identified information.
[0044] The system of the present invention includes also a Response & Service Backend 109 connected to the Processing System 107. In one embodiment, the Response & Service Backend 109 is a dedicated computer server running software capable of fulfilling a service request or to provide relevant information as requested by the user. In another embodiment the Processing System 107 and the Response & Service Backend 109 are hosted on the same server. Relying on the information provided by the Processing System 107, the Backend 109 handles the task of precisely identifying the correct response for the user or it manages the task to actually execute the requested service. In one embodiment of the invention the Response & Service Backend 109 comprises database servers, information services, customer support services, user profiling services, accounting services featuring all the information and services that the contact center is able to handle.
[0045] It will be useful to expand on what is meant when discussing the disambiguation process referenced herein, as follows.
[0046] An n-gram (a group of words) is ambiguous if it can refer to multiple meanings. The Disambiguation process refers to a well know activity in the Natural Language Processing domain that should be intended as the task to chose a specific meaning of a word (or a group of words) among two or more conflicting options.
[0047] As an example a user could ask: Please activate the plan to access the Internet from my mobile phone. When this sentence is analyzed, the word plan may refer to any one of the hundreds of plans (voice plans, sms plans, data plans, . . . ) that a Mobile Operator provides. The disambiguation process is tasked to choose which plan the user is referring to by looking at all the other features of the sentence, in this specific case the user is clearly referring to an Internet data plan as can be understood by looking at the rest of the sentence.
[0048] In the literature there are many ways to disambiguate the meaning of words (one can find many references especially to entity extraction and disambiguation). Those techniques are often domain specific, since the disambiguation process leverages some assumptions about the type or the context of the text being analyzed.
[0049] In this specific case there is used custom algorithm (described herein) that implies essentially two activities: 1) Assigning a score to any options that an n-gram may refer to; and 2) choose the combinations of options that seems to more likely represent the actual meaning of the sentence.
[0050] Step 1 (scoring) is accomplished by leveraging multiple algorithms (well known or custom). For Step 2 (the actual disambiguation), in the preferred embodiment there is provided an optimized and customized version of a well know algorithm to calculate the Longest Path in a Directed Acyclic Graph (there are numerous references which can be found in the published literature and on the Internet) where longest path in this context means the highest scoring combination.
[0051] As described herein, in this context all the identified options form a graph with a score attached to each edge of the graph. The assumption is that the combination better representing the actual meaning of the sentence is the one totalizing the highest score.
[0052] With regard to the use of the term N-gram processor, the preferred embodiment contemplates use of a relatively simple custom algorithm (i.e., custom developed) that essentially tries to match all words and group of words to a preloaded list of ngram that has been configured in the system. Any one having skill in this art would be able to implement this type of algorithm suitable for this task. When the algorithm finds a match it stores it and keeps analyzing the other words.
[0053] There are multiple commercial and open source libraries to support n-gram based algorithms, such as extraction, matching, storing, etc. Most of these libraries are optimized to achieve greater speed or scalability, whereas on the contrary the present invention's implementation is intended to seek a higher degree of flexibility allowing the user to define more complex types of n-grams, where more complex in this context means n-gram containing not just words but also other features of the sentence (ie. concepts, regular expressions, language models, and so on).
[0054] With regard to the terminology describing element 519 in
[0055] Further, regular expressions are typically used to match characters and words in a sentence, while for Smart regular expression is meant a more flexible (and extended) regular expression engine allowing to match not only characters and words in sentences but also concepts, services, language models and in general other features that the system of the present invention identifies in a sentence.
[0056] As an example there could be a smart regular expression to describe a service provided by the contact center to activate a plan. Here, the smart regular expression could be [LM:activation_request].* [E:plans] where:
[0057] [LM:activation_request] matches any word in the activation_request Language Model (a model containing words like activate, enable, add, . . . );
[0058] .* would match any word in between (in the Please active a data plan on my phone would match the article a;
[0059] [E:plans] matches all Entities listed in the plans list (ie. a list containing local voice plan, data plan, unlimited data plan, unlimited sms plan, etc.).
[0060] Essentially the term smart means extended. And by extended is meant allowing the use of more complex class of words/expressions than in a standard regular expression matching engine.
[0061]
[0062] Context injection is shown in
[0063] The Conversation History Database 303 enables the service to track conversation threads; this is critical to combine information received over multiple messages and to understand messages that may have been split in transit over the network. The latter case happens regularly, in one embodiment, when transmitting messages over a GSM network not properly supporting the transmission of multi-PDU SMS (messages longer than 160 characters).
[0064]
[0065] Confronted with Natural Language Processing Systems known in the art, the Multi-Grammar Language Processing System is quite different since it analyzes (502 and 503) a text using multiple grammars and languages in parallel, eventually performing complex disambiguation tasks (504) to detect the most probable interpretation of the analyzed text.
[0066]
[0067] According to one embodiment, the Multi-Grammar Language Processing System 501 comprises the following components: Step 1 Analyzer 502, Step 2 Analyzer 503, Step 3 Disambiguation Processor 504, Natural Language Processing Sub-system 505, Context importer 510, Step 4 Conditional Request Routing Processor 506, Interface to Messaging Server 507, Interface to Response & Service Backend 508, and Interface to Contact Center's Human Operators 509.
[0068] The Step 1 Analyzer 502 is a Token processor in charge of identifying the tokens in a text (words, abbreviations, numbers, and so on). Considering that texts may contain heavily misspelled words, concatenated words, words in multiple languages, acronyms, abbreviations, wrong punctuation, wrong capitalization and garbage characters, the task of the Step 1 Analyzer is to select the most relevant candidates for each token and to match them to elements represented in the Service & Knowledge Graph normalizing names and splitting tokens.
[0069] The Step 2 Analyzer 503 is an N-gram Processor designed to identify Knowledge Graph N-grams. N-grams include two or more tokens from the candidates selected by the Step 1 Analyzer. In one embodiment, the N-gram Processor supports smart combinations of tokens, their linked super-nodes in the Knowledge Graph, wildcards, classes of tokens and more complex regular expressions.
[0070] The task of Step 3 Disambiguation Processor 504 is to analyze all available candidate combinations of identified tokens and n-grams in the Graph to calculate a ranking of said combinations proportional to the probability of said combination to be the best interpretation for the analyzed text. In one embodiment the Disambiguation Processor leverages a weighted score assigned to each token/n-gram proportional to the probability of said token to actually match the analyzed word in the text. The Disambiguation Processor optimizes the analysis leveraging the assumption that the text is a short request about a specific service; the combinations that account for more tokens and n-grams connected to the same service receive a higher ranking.
[0071] The Natural Language Processing Sub-system 505 is the component dedicated to the analysis of phrase structures. According to one embodiment the NLP Sub-System 505 is activated only when the Step 2 Analyzer detects the presence of NLP triggers (e.g. pronouns, punctuation, conjugated verbs, multiple sentences, and so on) in the text. When activated the NLP Subsystem 505 receives the output of Step 3 Disambiguation Processor 504. This level of processing allows finer disambiguation since it analyzes all natural language features and structures in the text thus resolving issues of word dependencies and syntactic ambiguity. As a result, in one embodiment the NLP Sub-system 505 is used to distinguish between texts that can be very similar in terms of content, but differ as far as the actual type of requested action is concerned. In the context of contact center operations such scenario is often seen with texts that only request information about a specific service and texts that actually request the (same) service. In the same embodiment the NLP sub-system 505 leverages the normalized tokens provided by Step 1 and 2 to increase the ability to properly analyze the text.
[0072] Context Importer 510 provides the interface for external systems to import context related information in the Graph. As illustrated in
[0073] Step 4 Conditional Request Routing Processor 506 receives the analyzed text enriched with the features detected in the request and evaluates if the request should be forwarded to a human operator or to the Response & Service Backend, after verifying whether more information is needed from the user or not. In one embodiment, Step 4 Conditional Request Routing Processor leverages multiple parameters to optimize request routing. The parameters include: a confidence score proportional to the likelihood of having properly understood the request, the real time load of the contact center human operators and real time statistics about the measured quality of the automated answers for the specific service in question.
[0074] The Request Routing Processor (506) performs a critical role in ensuring that a Contact Center meets and exceeds its Key Performance Indicators. To match the operative needs of the Contact Center the Request Routing Processor (506) enables System Managers to configure and fine-tune the parameters conditioning the routing of inbound requests. Routing parameters can be configured on per service basis setting appropriate threshold values influencing the fate of the requests. Thresholds can be manually set to indicate maximum or minimum values allowed for any request's parameter (i.e. for the confidence score) in order for said request to be automatically processed rather than forwarded to a customer support operator. The Request Routing Processor can automatically calculate thresholds in order to adjust the amount of requests processed automatically or forwarded to customer support operators. This last option enables the Conditional Routing Request Processor (506) to respond in real time to the status of the contact center, as reported by component 303, preventing operator overloads (compromising quality over speed) or exploiting off-peek hours to increase the quality of the responses (forwarding more requests to the human operators). The Conditional Request Routing Processor (506) continuously evaluates all operative metrics of the contact center leveraging aggregated metrics but also specific metrics for each support group and single customer support operator.
[0075] In cooperation with the Conversation History Database 304 and leveraging the actual operator availability as reported by component 303, the Conditional Request Routing Processor is able to group and it can forward to the same customer support operator all the requests submitted by the same user. This feature enables the call contact center to optimize resources by grouping together multiple requests sent in a short timeframe by the same user concurrently avoiding to forward related requests to different operators.
[0076] Interface to Messaging Server 507 is the component in charge of forwarding the responses generated by the Multi-Grammar Language Processing System 501. In one embodiment the Interface 507 connect to a mail server or to an SMS server to send the message to the user. In another embodiment the Interface 507 sends the message to a real time instant messaging server in charge of pushing the message to the end-user's application. Interface 507 handles also the proper transmission of messages exceeding the maximum length allowed on the network. For example, GSM networks do not support the transmission of multi-PDU SMS thus leading to the delivery of a long text as multiple separate fragments (in any order). In order to avoid this problem, the Interface properly splits and reformats a longer message in multiple shorter messages ensuring also the correct order of each message delivery as to reflect the original complete text (longer than the 160 characters supported by the network).
[0077] Interface to Response & Service Backend 508 is the component dedicated to packaging the analyzed request, with all the information extracted from the text and from the injected context, and responsible to forwarding said analyzed request to the Response & Service Backend 508. In one embodiment the Interface 508 uses API to call into the Response & Service Backend 508 passing information about the service requested by the user, the entities mentioned if any and the available user's profile information.
[0078] Interface to Contact Center Human Operators 509 is the component dedicated to forward the request to the Contact Center Human Operators. In one embodiment the Interface 509 connects to the centralized request system of the contact center where requests are automatically routed to the first available operator.
[0079] At the core of the Multi-Grammar Language Processing System 501 sits the Service & Knowledge Graph 511. The Service & Knowledge Graph 511 includes all the supported grammars and language models together with their relationship with the services and the responses handled by the Contact Center. According to an embodiment of the invention, the Service & Knowledge Graph 511 includes: the list 512 of services and responses handled by the contact center, the language models of pre-analyzed training sets 513, the grammar-specific language models 514, domain specific keywords 515, thesaurus 516, fallback dictionaries 517 required to avoid overfitting the other models, smart n-grams 518 and smart regular expressions to extract specific features from the text. The main purpose of the Service & Knowledge Graph 511 is to connect language models, keywords, n-grams and any other entity mentioned in the Knowledge Graph to the relevant services and responses handled by the contact center.
[0080]
[0081]
[0082] The Disambiguation process carried out by the Step 4 Disambiguation Processor (506) is a critical element to properly identify the best candidate combination to understand a request. The main issue faced by the Disambiguation Processor (506) is the number of possible combinations to analyze (often millions of combinations are possible). It is then clear why an optimized disambiguation strategy needs to be implemented. As described in
[0083]
[0084]
[0085] Although the invention has been described by reference to particular illustrative embodiments thereof, many changes and modifications of the invention may become apparent to those skilled in the art without departing from the spirit and scope of the invention. The present invention is therefore intended to include all changes and modifications that may reasonably and properly be included within the scope of the present invention's contribution to the art. The invention being thus described, it will be evident that the same may be varied in many ways by a routineer in the applicable arts. Such variations are not to be regarded as a departure from the spirit and scope of the invention and all such modifications are intended to be included within the scope of the claims.