BACKGROUNDAspects of the disclosure relate to hardware and/or software for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions. In particular, one or more aspects of the disclosure relate to performing natural language processing (NLP) on a user input, determining whether the input is the same as or similar to a previously received input stored in a global corpora, determining whether the input is the same as or similar to a previously received input, and, based on determining that the input is different from previously received inputs in the global corpora, storing the input in a virtual corpora and performing further analysis on the input.
Current distributed, interactive chatbot sessions allow a plurality of chatbots (e.g., a chatbot stack) to each interact with a plurality of users. A first chatbot may receive input (e.g., speech, text, or the like) from a first user and may pose questions to the first user to better understand the first user's input. The first chatbot may use the first user's responses to generate a response to the input. The first chatbot may store the first user's input and the first user's responses in temporary memory (e.g., slot memory) associated with the first chatbot and may use the contents of the slot memory during an interactive chatbot session with another user. A second chatbot may engage in a distributed, interactive chat session with a second user, wherein the second user may generate an input similar to the first user's input. The second chatbot may pose questions to the second user and may receive responses from the second user. The second chatbot may use the responses to better understand the second user's input and to respond to the second user's input. The second chatbot might not have access to the slot memory associated with the first chatbot and, as such, may repeat a similar investigative process as the first chatbot to understand the second user's input. In some instances, the chatbot stack might not have access to a central database (e.g., a global corpora) of learned information and, as such, may repeatedly engage with users to learn information that one chatbot may have already stored in its slot memory. Therefore, current distributed, interactive chatbot sessions neither offer chatbots the opportunity to dissect the input using text and speech semantics nor allow the chatbot stack to retrieve information from and add information to the global corpora.
SUMMARYThe following presents a simplified summary in order to provide a basic understanding of some aspects of the disclosure. The summary is not an extensive overview of the disclosure. It is neither intended to identify key or critical elements of the disclosure nor to delineate the scope of the disclosure. The following summary merely presents some concepts of the disclosure in a simplified form as a prelude to the description below.
Aspects of the disclosure provide effective, efficient, and convenient technical solutions that address and overcome the technical problems associated with preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions.
In accordance with one or more embodiments, a method may comprise, at a computing device including at least one processor and memory, receiving, by a chatbot and from a user, a data input. The method may comprise performing, by the chatbot, natural language processing on the data input. The method may comprise identifying, by the chatbot, a plurality of characteristics that correspond to the data input. The method may comprise, based on determining that additional data is needed to populate the plurality of characteristics and to generate a response to the data input, transmitting, by the chatbot, the data input to a slot memory. The method may comprise determining, by a controller, whether a second plurality of characteristics associated with a similar data input is stored in a virtual corpora. The method may comprise, based on determining that the second plurality of characteristics associated with the similar data input is stored in the virtual corpora, transmitting, by the controller, the second plurality of characteristics associated with the similar data input to the chatbot. The method may comprise increasing, by the controller, a count associated with the similar data input. The method may comprise, based on the count satisfying count threshold rules, transmitting, by the controller, the similar data input and the second plurality of characteristics associated with the similar data input to a global corpora.
In accordance with one or more embodiments, a computing platform may comprise at least one processor, a communication interface communicatively coupled to the at least one processor, and memory storing computer-readable instructions that, when executed by the at least one processor, cause the computing platform to receive, by a chatbot and from a user, a data input. The computing platform may perform, by the chatbot, natural language processing on the data input. The computing platform may identify, by the chatbot, a plurality of characteristics that correspond to the data input. The computing platform may, based on determining that additional data is needed to populate the plurality of characteristics and to generate a response to the data input, transmit, by the chatbot, the data input to a slot memory. The computing platform may determine, by a controller, whether a second plurality of characteristics associated with a similar data input is stored in a virtual corpora. The computing platform may, based on determining that the second plurality of characteristics associated with the similar data input is stored in the virtual corpora, transmit, by the controller, the second plurality of characteristics associated with the similar data input to the chatbot. The computing platform may increase, by the controller, a count associated with the similar data input. The computing platform may, based on the count satisfying count threshold rules, transmit, by the controller, the similar data input and the second plurality of characteristics associated with the similar data input to a global corpora.
In accordance with one or more embodiments, one or more non-transitory computer-readable media storing instructions that, when executed by a computing platform comprising at least one processor, memory, and a communication interface, cause the computing platform to receive, by a chatbot and from a user, a data input. The instructions, when executed, may cause the computing platform to perform, by the chatbot, natural language processing on the data input. The instructions, when executed, may cause the computing platform to identify, by the chatbot, a plurality of characteristics that correspond to the data input. The instructions, when executed, may cause the computing platform to, based on determining that additional data is needed to populate the plurality of characteristics and to generate a response to the data input, transmit, by the chatbot, the data input to a slot memory. The instructions, when executed, may cause the computing platform to determine, by a controller, whether a second plurality of characteristics associated with a similar data input is stored in a virtual corpora. The instructions, when executed, may cause the computing platform to, based on determining that the second plurality of characteristics associated with the similar data input is stored in the virtual corpora, transmit, by the controller, the second plurality of characteristics associated with the similar data input to the chatbot. The instructions, when executed, may cause the computing platform to increase, by the controller, a count associated with the similar data input. The instructions, when executed, may cause the computing platform to, based on the count satisfying count threshold rules, transmit, by the controller, the similar data input and the second plurality of characteristics associated with the similar data input to a global corpora.
These features, along with many others, are discussed in greater detail below.
BRIEF DESCRIPTION OF THE DRAWINGSThe present disclosure is illustrated by way of example and is not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
FIG.1A depicts an illustrative example of a computing environment for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with one or more example embodiments.
FIG.1B depicts an illustrative example of the enterprise infrastructure for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with one or more example embodiments.
FIG.1C depicts an illustrative example of the chatbot stack for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with one or more example embodiments.
FIGS.2A-2H depict an illustrative event sequence for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with one or more example embodiments.
FIGS.3A-3C depict an illustrative method for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with one or more example embodiments.
FIG.4 depicts an illustrative example of the global corpora that may be used for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with one or more example embodiments.
DETAILED DESCRIPTIONIn the following description of various illustrative embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which are shown, by way of illustration, various embodiments in which aspects of the disclosure may be practiced. It is to be understood that other embodiments may be utilized, and structural and functional modifications may be made, without departing from the scope of the present disclosure. Various aspects are capable of other embodiments and of being practiced or being carried out in various different ways.
It is noted that various connections between elements are discussed in the following description. It is noted that these connections are general and, unless specified otherwise, may be direct or indirect, wired or wireless, and that the specification is not intended to be limiting in this respect.
It is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. Rather, the phrases and terms used herein are to be given their broadest interpretation and meaning. The use of “including” and “comprising” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items and equivalents thereof.
As discussed above, current distributed, interactive chatbot sessions neither offer chatbots the opportunity to dissect user input using text and speech semantics nor allow a chatbot stack (e.g., a plurality of chatbots wherein each chatbot is associated with a global corpora) to access information that may be collected by a chatbot, but might not be added to the global corpora. Accordingly, proposed herein is a solution to the problem described above that includes preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions. A user may transmit an input (e.g., a text input, a speech input, or the like) to a chatbot. The chatbot may parse the input and may determine whether a long short-term memory (e.g., a global corpora) contains information that the chatbot may use to generate a response to the input. If the chatbot determines that the global corpora contains information that may be used to generate the response, the chatbot may use the information within the global corpora to generate the response.
Alternatively, if the chatbot determines that the global corpora does not contain information that may be used to generate the response, the chatbot may transmit the input to a slot memory associated with the chatbot. A controller model may read the input from the slot memory and may determine whether a virtual corpora contains the same or a similar input that was previously received. If the controller model determines that the virtual corpora does not contain the same input or a similar input that was previously received, then the controller model may instruct the chatbot to generate queries and transmit the queries to the user to gather further information that the chatbot may use to generate a response to the input. Alternatively, if the controller model determines that the virtual corpora contains the same input or a similar input that was previously received, then the controller model may transmit, to the chatbot, the previously received input as well as any associated responses. The controller model may update the global corpora using information from the virtual corpora based on a count threshold and/or an ambiguity threshold.
In some examples, a computing environment may comprise the chatbot stack, the slot memory associated with each chatbot within the chatbot stack, the plurality of users, the controller model, the virtual corpora, and the global corpora. Each chatbot within the chatbot stack may comprise an identification module and a dialogue management module. A chatbot may receive an input (e.g., text or speech input) from a user. The identification module may parse the input using semantics and a natural language processing algorithm, and may determine whether a plurality of characteristics associated with the input (e.g., a domain associated with the input, a user intent associated with the input, a general concept that describes the input, or the like) may be identified. If the identification module determines that the plurality of characteristics can be identified, then the identification module may access the global corpora to populate the identified characteristics. The dialogue management module may further parse the input to determine whether further information is needed from the user to generate a response to the input. The dialogue management module may use the populated characteristics and/or the further information gathered from the user to generate a response to the input.
Alternatively, if the identification module determines that the plurality of characteristics can neither be identified nor populated, then the chatbot may transmit the input to the slot memory associated with the chatbot. The controller model may read the input from the slot memory associated with the chatbot and may determine whether information within the virtual corpora (e.g., a temporary storage that contains information that may be used to update the global corpora) may be used to identify and populate the plurality of characteristics that correspond to the input (e.g., the same or a similar input that was previously received). If the controller model determines that the virtual corpora does not contain the same input or a similar previously received input that may be used to identify and to populate the plurality of characteristics, then the controller model may instruct the chatbot to pose questions to the user, to use responses from the user to identify and populate the plurality of characteristics, and to use the populated characteristics to generate a response to the input.
Alternatively, if the controller model determines that the virtual corpora contains the same or a similar previously received input that may be used to identify and to populate the plurality of characteristics, then the controller model may transmit, to the chatbot, the same or similar previously received input as well as corresponding responses. The controller model may instruct the virtual corpora to increase a count associated with the information. The controller model may receive, from an enterprise organization computing device, a plurality of rules (e.g., count threshold rules, ambiguity threshold rules, or the like). The controller model may determine whether the count associated with previously received inputs within the virtual corpora satisfies the count threshold rules. If the controller model determines that the previously received inputs fail to satisfy the count threshold rules, then the controller model may instruct the virtual corpora to retain the previously received inputs. Alternatively, if the controller model determines that the previously received inputs satisfy the count threshold rules, then the controller model may determine whether the previously received inputs satisfy the ambiguity threshold rules. If the controller model determines that the previously received inputs fail to satisfy the ambiguity threshold rules, then the controller model may instruct the virtual corpora to retain the previously received inputs. If the controller model determines that the previously received inputs satisfy the ambiguity threshold rules, then the controller model may transmit the previously received inputs to the global corpora. The global corpora may receive the previously received inputs and may use the previously received inputs to update the information within the global corpora.
Computer ArchitectureFIG.1A depicts an illustrative example of a computing environment for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with the features described herein.Computing environment100 may comprise enterpriseorganization computing device110,user computing devices120a-120e,enterprise infrastructure130, andnetwork140. WhileFIG.1A depicts more than one user computing device (e.g.user computing devices120a-120e), each ofuser computing devices120a-120emay be configured in accordance with the features described herein. While the description herein may refer touser computing device120, it is important to note that the functions described in connection withuser computing device120 may also be performed by any one ofuser computing devices120a-120e. Each one ofuser computing devices120a-120eand enterpriseorganization computing device110 may be configured to communicate withenterprise infrastructure130 throughnetwork140. In some arrangements,computing environment100 may include additional computing devices that are not depicted inFIG.1A, which may also be configured to interact withenterprise infrastructure130 and, in some instances,user computing device120.
Computing environment100 may include one or more networks, which may interconnect one or more ofuser computing device120,enterprise infrastructure130, and enterpriseorganization computing device110. For example,computing environment100 may includenetwork140.Network140 may include one or more sub-networks (e.g., local area networks (LANs), wide area networks (WANs), or the like). Furthermore,computing environment100 may include a local network configured to interconnect each of the computing devices comprisingenterprise infrastructure130.
As discussed in detail in connection withFIG.1B,enterprise organization infrastructure130 may comprisechatbot stack131,global corpora134,controller model136,virtual corpora137,database138, and processor(s)139. WhileFIG.1B may illustrate three chatbots within chatbot stack131 (e.g.,chatbots131a,131b, and131c, referred to herein as “chatbot131a” for illustration purposes),chatbot stack131 may comprise more than three chatbots or less than three chatbots without departing from the disclosure.Chatbots131a-131care illustrated inFIG.1B for illustration purposes and are not meant to be limiting. While the description herein may refer tochatbot131a, it is important to note that the functions described in connection withchatbot131amay also be performed by any one ofchatbots131a-131c. As discussed in detail in connection withFIG.1C, each chatbot withinchatbot stack131 may comprise identification module132 (e.g.,identification module132amay correspond tochatbot131a) and dialogue management module133 (e.g., dialogue management module133amay correspond tochatbot131a). WhileFIG.1C references three chatbots (e.g.,chatbots131a-131c) and modules that correspond to each of the three chatbots (e.g., identification modules132a-132c, and dialogue management modules133a-133c), the number of modules may increase or decrease to correspond to (e.g., match) the number of chatbots withinchatbot stack131.
Enterprise infrastructure130 may containdatabase138 and processor(s)139, which may be stored in the memory of the one or more computing device(s) ofenterprise infrastructure130.Enterprise infrastructure130 may be associated with a distinct entity such as an enterprise organization, company, school, government, or the like, and may comprise one or more personal computer(s), server computer(s), hand-held or laptop device(s), multiprocessor system(s), microprocessor-based system(s), set top box(es), programmable client electronic device(s), network personal computer(s) (PC), minicomputer(s), mainframe computer(s), distributed computing environment(s), or the like.Enterprise infrastructure130 may include computing hardware and/or software that may host various data and applications for performing tasks of the centralized entity and interacting withuser computing device120, as well as other computing devices.
In some arrangements,enterprise infrastructure130 may include and/or be part of enterprise information technology infrastructure and may host a plurality of enterprise applications, enterprise databases, and/or other enterprise resources. Such applications may be executed on one or more computing devices included inenterprise infrastructure130 using distributed computing technology or the like. In some instances,enterprise infrastructure130 may include a relatively large number of servers that may support operations of the enterprise organization, such as a financial institution.
As illustrated inFIG.1A, computingenvironment100 may comprise enterpriseorganization computing device110. Enterpriseorganization computing device110 may be associated with a distinct entity such as an enterprise organization, company, school, government, or the like. Enterpriseorganization computing device110 may be configured to generate a plurality of rules (e.g., count threshold rules, ambiguity threshold rules, or the like). Enterpriseorganization computing device110 may transmit the plurality of rules tocontroller model136.
The count threshold rules may be used to determine whether to updateglobal corpora134 using data (e.g., a current input, previously received inputs) fromvirtual corpora137. As discussed in detail in connection withFIG.1B,global corpora134 may comprise data that each chatbot withinchatbot stack131 may use to generate responses to the current inputs received fromuser computing devices120a-120e.Virtual corpora137 may comprise data that might not be stored inglobal corpora134, but may be used by each chatbot withinchatbot stack131 to generate at least one response to the current inputs received fromuser computing devices120a-120e. The data within bothglobal corpora134 andvirtual corpora137 may comprise characteristics that may describe the current input (or a previously received input). For example,global corpora134 andvirtual corpora137 may identify a domain that may describe the current input (or a previously received input), a user intent that may correspond to the current input (or a previously received input), a general concept that may correspond to the current input (or a previously received input), properties that may be associated with the domain that may describe the current input (or a previously received input), or the like.
For example,user computing device120 may transmit, to chatbot131a, a request to make a restaurant reservation (e.g., “I would like to make a reservation at restaurant ABC in New York City for Y number of people on DD/MM/YY”). As discussed in greater detail below, chatbot131amay determine thatglobal corpora134 might not contain data (e.g., a domain, a user intent, a general concept that may describe the current input, properties that may describe the domain, or the like) that may be used to generate a response to the current input.Chatbot131amay transmit the current input to slotmemory135 andcontroller model136 may determine whethervirtual corpora137 contains data that chatbot131amay use to generate the response to the current input.Controller model136 may use the count threshold rules and the ambiguity threshold rules to determine whether the data (e.g., a domain, a user intent, a general concept that may describe the current input, properties that may describe the domain, or the like) withinvirtual corpora137 should be transmitted to and stored withinglobal corpora134.
The count threshold rules may indicate criteria for determining when the data is eligible to move fromvirtual corpora137 to global corpora134 (e.g., a minimum number of times the same input should be received before the input may be added toglobal corpora134, a minimum number of times that inputs associated with the same domain should be received before the domain may be added toglobal corpora134, a minimum number of times that a particular user intent should be detected before the corresponding input may be added toglobal corpora134, a minimum number of times a general concept should be detected before the corresponding input may be added toglobal corpora134, or the like). Each input withinvirtual corpora137 may be associated with a count (e.g., a number of times the input was received by a chatbot withinchatbot stack131, a number of times a domain was used to generate a response to an input, or the like). The count associated with each input may change over time (e.g., the count may increase when another input is received and is the same as or is similar to (e.g., may meet a threshold value of matching characteristics, key words, or the like) a previously received input within virtual corpora137). If an input (e.g., the current input, the previously received input stored invirtual corpora137, or the like) fails to satisfy the count threshold rules, then the input may remain withinvirtual corpora137. Alternatively, if the input (e.g., the current input, the previously received input stored invirtual corpora137, or the like) satisfies the count threshold rules, then the ambiguity threshold rules may be used to determine whether the input should be transmitted to and stored withinglobal corpora134.
The ambiguity threshold rules may indicate criteria for determining the accuracy of the data withinvirtual corpora137 before the data is transmitted to global corpora134 (e.g., whether the domain that was used to generate the response to the current input (or the previously received input) accurately addressed the user's request, whether the user intent detected in the current input (or the previously received input) accurately address the user's request, whether the general concept detected in the current input (or the previously received input) accurately reflected the user's request, whether the correct domain was identified but the incorrect properties were used to describe the domain, or the like). If an input (e.g., the current input, the previously received input stored invirtual corpora137, or the like) fails to satisfy the ambiguity threshold rules, then the input may remain withinvirtual corpora137. Alternatively, if the input satisfies the ambiguity threshold rules, then the input and the responses associated with the input may be transmitted to and stored withinglobal corpora134.
As further illustrated inFIG.1A, computingenvironment100 may compriseuser computing devices120a-120e(referred to herein as “user computing device120”).User computing device120 may be configured to generate and to transmit an input (e.g., a textual input, a voice input, a computer-generated voice input, or the like) tochatbot131a.User computing device120 may use at least one peripheral device to generate the input (e.g., a keyboard, a mouse, a microphone, a device configured to receive input via speech recognition, or the like). The input may comprise at least one request forchatbot131ato perform an action (e.g., a request forchatbot131ato provide a service, a request forchatbot131ato provide clarification on a point, a request forchatbot131ato provide a recommendation, or the like).User computing device120 may transmit the request tochatbot131a.
In some instances,user computing device120 may receive, fromchatbot131a, at least one query. The at least one query may comprise a request for information to further clarify the current input (e.g., a request foruser computing device120 to provide additional details that chatbot131amay use to understand the domain, the user intent, and/or the general concept associated with the current input).User computing device120 may generate at least one response to the at least one query and may transmit the at least one response tochatbot131a.
User computing device120 may receive, fromchatbot131a, at least one response to the current input. The at least one response to the current input may address the request in the current input (e.g., the at least one response may confirm the request to book a hotel room, the at least one response may provide the requested service, the at least one response may provide the requested clarification, or the like). Based on the at least one response received fromchatbot131a,user computing device120 may determine whether to continue the conversation withchatbot131a. Ifuser computing device120 determines thatchatbot131aprovided the requested information, thenuser computing device120 may terminate the conversation withchatbot131aand might not transmit additional inputs to chatbot131a. Alternatively, ifuser computing device120 determines that additional information may be needed fromchatbot131a, thenuser computing device120 may continue transmitting inputs tochatbot131a, in accordance with the methods and features described herein.
FIG.1B depicts an illustrative example ofenterprise infrastructure130 for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with the features described herein.Enterprise infrastructure130 may comprisechatbot stack131,global corpora134, slotmemories135a-135c,controller model136,virtual corpora137,database138, and processor(s)139.Enterprise infrastructure130 may be configured to operate as a computing platform on which the components and computing devices withinenterprise infrastructure130 may preserve text and speech semantics using real-time virtual corpora in live interactive chatbot sessions. In some instances, the computing platform may comprisechatbot stack131,global corpora134, slotmemories135a-135c,controller model136,virtual corpora137,database138, and/or processor(s)139.
Chatbot stack131 may comprise a plurality of chatbots (e.g.,chatbots131a-131c, referred to herein as “chatbot131a”). Each chatbot withinchatbot stack131 may be configured to engage in conversation withuser computing device120. In particular, each chatbot withinchatbot stack131 may be configured to receive input fromuser computing device120, to parse the current input, to perform natural language processing (NLP) on the current input using at least one NLP algorithm (e.g., a supervised machine learning model that may be configured to perform text classification), and to perform natural language generation (NLG) to generate and to transmit, touser computing device120, at least one response to the current input. As illustrated inFIG.1C, each chatbot withinchatbot stack131 may comprise identification module132 (e.g., identification modules132a-132c, referred to herein as “identification module132”) and dialogue management module133 (e.g., dialogue management modules133a-133c, referred to herein as “dialogue management module133”).
Identification module132 may use the at least one NLP algorithm to analyze the current input and to identify one or more key terms, characters, symbols, punctuation, semantics, or the like. For example, the at least one NLP algorithm may be configured to read and to detect interrogative words (e.g., who, what, where, why, when, how, or the like) and to read and to detect instructional verbs (e.g., do, find, trace, provide, clarify, or the like) to determine whether the current input may instructchatbot131ato provide a service, to provide further information, or the like. Identification module132 may use the at least one NLP algorithm to determine whether characteristics that describe the current input may be identified (e.g., a domain that describes the current input, a user intent that corresponds to the current input, a general concept that corresponds to the current input, properties associated with the domain that may describe the current input, or the like). If identification module132 determines that the at least one NLP algorithm may identify the characteristics that may describe the current input, then identification module132 may accessglobal corpora134. Identification module132 may useglobal corpora134 to populate the identified characteristics. To do so, identification module132 may locate, withinglobal corpora134, the identified domain that describes the current input. Each domain withinglobal corpora134 may be associated with a plurality of slot terms, wherein the plurality of slot terms may identify properties that may be associated with the domain that may describe the current input. Identification module132 may use the identified general concept and the identified user intent to determine the properties that may be used to generate a response to the current input, as described in detail in connection withFIG.4. Alternatively, if identification module132 determines that the at least one NLP algorithm might not identify the characteristics that may describe the current input, then identification module132 may transmit the current input to slotmemory135.
Based on determining that the at least one NLP algorithm may identify at least one characteristic that may describe the current input, dialogue management module133 may use the at least one NLP algorithm to further analyze the current input. In particular, dialogue management module133 may parse the current input and may use the at least one NLP algorithm to determine whether to pose queries touser computing device120 to gather additional data that may be used to identify and to populate one or more characteristics that may describe the current input. For example, if identification module132 identifies a general concept and a domain associated with the current input, then dialogue management module133 may further parse the current input to determine whether the user intent may be identified. If dialogue management module133 determines that further details may be needed fromuser computing device120 to identify and to populate at least one characteristic (e.g., the user intent associated with the current input), then dialogue management module133 may generate at least one query to request further details fromuser computing device120. Dialogue management module133 may transmit the at least one query touser computing device120 and may receive, fromuser computing device120, at least one response to the at least one query. Dialogue management module133 may parse the at least one response and may determine whether to pose additional queries touser computing device120. In some instances, dialogue management module133 may continue to pose queries touser computing device120 to gather information that may be used to identify and to populate the at least one characteristic.
Alternatively, if dialogue management module133 determines that the characteristics that describe the current input may be populated and that additional details fromuser computing device120 might not be needed, then dialogue management module133 may perform natural language generation (NLG) using the populated characteristics to generate a response to the current input. To do so, dialogue management module133 may use the populated characteristics to provide the service requested in the current input, to provide the clarification requested in the current input, to answer the question posed in the current input, or the like. Dialogue management module133 may transmit, touser computing device120, the response to the current input.
In some instances,chatbot131amay receive, fromcontroller model136, at least one previously received input that may be the same as or similar to the current input, characteristics that may describe the at least one previously received input, and at least one response that may be associated with the at least one previously received input.Chatbot131amay compare the characteristics associated with the at least one previously received input to the characteristics associated with the current input.Chatbot131amay use the at least one previously received input and the at least one associated response to generate the response to the current input.
As further illustrated inFIG.1B,enterprise infrastructure130 may compriseglobal corpora134.Global corpora134 may comprise data that each chatbot withinchatbot stack131 may use to generate responses to the current inputs. In particular,global corpora134 may store a plurality of domains that may be used to describe the current input and to identify an industry that may be associated with the current request.FIG.4 depicts sample data that may be stored withinglobal corpora134. As illustrated inFIG.4, the plurality of domains stored inglobal corpora134 may span an array of industries (e.g., hospitality, transportation, entertainment, or the like).Global corpora134 may also store a plurality of slot terms (e.g., properties associated with each domain that may describe the current input through the lens of the corresponding domain). For example, as illustrated inFIG.4,global corpora134 may store a bus domain and slot terms (e.g., properties) that describe the bus domain, such as “ArriveBy,” “Destination,” “LeaveAt,” or the like. In some instances, identification module132 may use the identified general concept and the identified user intent to determine the slot terms (e.g., properties) that may be used to generate a response to the current input. In some instances, identification module132 may use less than a total number of slot terms associated with a domain (e.g., identification module132 may select the slot terms that may provide information relevant to the user intent and the general concept of the current input).
Global corpora134 may receive, fromcontroller model136, data fromvirtual corpora137 that may be stored inglobal corpora134 based on the data satisfying the count threshold rules and the ambiguity threshold rules.Global corpora134 may store the received data such that the received data may be used to analyze future inputs.
Access toglobal corpora134 may differ depending on the computing device requesting access (e.g., a hierarchy of accessibility).Controller model136 may be associated with a first level of accessibility (e.g., a least restrictive level of accessibility).Controller model136 may perform functions on the data within global corpora134 (e.g., access the data, add new data, remove data, modify the data, or the like).Chatbot stack131 may be associated with a second level of accessibility (e.g., a more restrictive level of accessibility than the first level of accessibility).Chatbot stack131 may view the data withinglobal corpora134, but might not be permitted to add, remove, or modify the data withinglobal corpora134.
Enterprise infrastructure130 may further compriseslot memories135a-135c(referred to herein as “slot memory135”). Each chatbot withinchatbot stack131 may be associated with a corresponding slot memory135 (e.g.,slot memory135amay correspond tochatbot131a).Slot memory135 may receive the current input from the corresponding chatbot (e.g.,slot memory135amay receive the current input fromchatbot131a,slot memory135bmay receive the current input fromchatbot131b, or the like).Slot memory135 may be configured to operate as temporary memory that may store the current input based on identification module132 determining thatglobal corpora134 might not contain data that may be used to identify the characteristics that describe the current input.Slot memory135 may further be configured to operate as temporary memory that may store the current input based on dialogue management module133 determining that further analysis of the current input may be needed.Slot memory135 may retain the current input (e.g., untilcontroller model136 retrieves the current input from slot memory135). In some instances,slot memory135 may receive, fromcontroller model136, instructions to clear (e.g., erase, wipe, remove, or the like) the current input fromslot memory135. To do so,slot memory135 may locate at least one cell withinslot memory135 that may store the current input and may clear the data stored on the at least one cell.
Enterprise infrastructure130 may further comprisecontroller model136.Controller model136 may be configured to facilitate communication betweenchatbot131a,global corpora134,slot memory135, and/orvirtual corpora137.Controller model136 may retrieve the current input fromslot memory135.Controller model136 may compare the current input to the previously received inputs that may be stored invirtual corpora137.Controller model136 may determine whether the current input is the same as or is similar to at least one of the previously received inputs. Ifcontroller model136 determines that the current input may be the same as or similar to at least one of the previously received inputs, thencontroller model136 may retrieve a copy of the at least one previously received input fromvirtual corpora137.Controller model136 may transmit the copy of the at least one previously received input that may be the same as or similar to the current input tochatbot131a.Controller model136 may instructslot memory135 to clear (e.g., erase, wipe, remove, or the like) the current input fromslot memory135.Controller model136 may transmit, tovirtual corpora137, instructions to increase the count associated with the at least one previously received input.
Alternatively, ifcontroller model136 determines that the current input might not be the same as or similar to at least one previously received input, thencontroller model136 may instructchatbot131ato generate queries that may be used to gather additional details fromuser computing device120 to further understand the current input and to identify characteristics that may describe the current input.Controller model136 may instructchatbot131ato transmit the queries touser computing device120.
Controller model136 may receive a plurality of rules from enterprise organization computing device110 (e.g., count threshold rules, ambiguity threshold rules, or the like).Controller model136 may use the rules to determine whether data fromvirtual corpora137 should be transmitted to and stored withinglobal corpora134.Controller model136 may determine whether data (e.g., the current input, a previously received input, or the like) stored invirtual corpora137 satisfies the count threshold rules (e.g., whether a count associated with the current input (or the previously received input) is equal to or greater than a minimum number of times the same or similar inputs should be received before the input may be added toglobal corpora134, whether a count associated with the current input (or the previously received input) is equal to or greater than a minimum number of times that inputs associated with the same domain should be received before the domain may be added toglobal corpora134, or the like). Ifcontroller model136 determines that the current input (or the previously received input) fails to satisfy the count threshold rules, thencontroller model136 may instructvirtual corpora137 to retain the current input (or the previously received input).
Alternatively, ifcontroller model136 determines that the current input (or the previously received input) satisfies the count threshold rules, thencontroller model136 may determine whether the current input (or the previously received input) satisfies the ambiguity threshold rules. Ifcontroller model136 determines that the current input (or the previously received input) fails to satisfy the ambiguity threshold rules, thencontroller model136 may instructvirtual corpora137 to retain the current input (or the previously received input). Alternatively, ifcontroller model136 determines that the current input (or the previously received input) satisfies the ambiguity threshold rules, thencontroller model136 may retrieve, fromvirtual corpora137, the current input (or the previously received input), characteristics that may describe the current input (or the previously received input), at least one response that corresponds to the current input (or the previously received input), and/or properties that may describe the domain.Controller model136 may transmit the retrieved data toglobal corpora134.
Enterprise infrastructure130 may further comprisevirtual corpora137.Virtual corpora137 may comprise data that might not be stored inglobal corpora134, but may be used by each chatbot withinchatbot stack131 to generate at least one response to the current input.Virtual corpora137 may store at least one previously received input, characteristics that may describe the at least one previously received input, slot terms, and/or at least one response that may have been used to respond to the at least one previously received input.Virtual corpora137 may be configured to store the at least one previously received input, the characteristics that may describe the at least one previously received input, the slot terms, and/or the at least one response untilcontroller model136 determines whether the at least one previously received input, the characteristics, the slot terms, and/or the at least one response may be transmitted to and stored withinglobal corpora134.
In some instances,virtual corpora137 may receive, fromcontroller model136, a request to access the at least one previously received input, the characteristics that may describe the at least one previously received input, the slot terms, and/or the at least one response associated with the at least one previously received input. Based oncontroller model136 determining that the current input may be the same as or similar to the at least one previously received input,virtual corpora137 may permitcontroller model136 to retrieve a copy of the requested data. In such instances,virtual corpora137 may receive, fromcontroller model136, instructions to increase the count associated with the at least one previously received input. To do so,virtual corpora137 may identify the count associated with the at least one previously received input (e.g., a number of times the same input may have been received, a number of times a similar input may have been received, a number of times an input with the same or similar characteristics may have been received, or the like).Virtual corpora137 may increase the count and may store the updated count with the at least one previously received input.
In some instances, and based oncontroller model136 determining that the at least one previously received input fails to satisfy the count threshold rules,virtual corpora137 may receive, fromcontroller model136, instructions to retain the at least one previously received inputs.Virtual corpora137 may continue to store the at least one previously received input, the characteristics that may describe the at least one previously received input, the slot terms, and/or the at least one response that corresponds to the at least one previously received input (e.g., untilcontroller model136 determines the at least one previously received input satisfies the count threshold rules). In some instances, and based oncontroller model136 determining that the at least one previously received input satisfies the count threshold rules but fails to satisfy the ambiguity threshold rules,virtual corpora137 may receive, fromcontroller model136, instructions to retain the at least one previously received input.Virtual corpora137 may continue to store the at least one previously received input, the characteristics that may describe the at least one previously received input, the slot terms, and/or the at least one response that corresponds to the at least one previously received input (e.g., untilcontroller model136 determines the at least one previously received input satisfies the count threshold rules and the ambiguity threshold rules).
Preserving Text and Speech Semantics Using Real-Time Virtual Corpora in Live Interactive Chatbot SessionsFIGS.2A-2H depict an illustrative event sequence for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with one or more aspects described herein. While aspects described with respect toFIG.2A toFIG.4 include the evaluation of a single input, a plurality of inputs may be received and evaluated (e.g., in parallel) without departing from the present disclosure. Further, the method described herein may be performed in real-time or near real-time.
Referring toFIG.2A, atstep201,user computing device120 may be configured to generate and to transmit an input (e.g., a textual input, a voice input, a computer-generated voice input, or the like) tochatbot131a.User computing device120 may use at least one peripheral device to generate the input (e.g., a keyboard, a mouse, a microphone, a device configured to receive input via speech recognition, or the like). The input may comprise at least one request forchatbot131ato perform an action (e.g., a request forchatbot131ato provide a service, a request forchatbot131ato provide clarification on a point, a request forchatbot131ato provide a recommendation, or the like).User computing device120 may transmit the request tochatbot131a.
Atstep202,chatbot131amay receive the current input fromuser computing device120. Atstep203, identification module132 may parse the current input using at least one NLP algorithm. Identification module132 may use the at least one NLP algorithm to analyze the current input and to identify one or more key terms, characters, symbols, punctuation, or the like. For example, the at least one NLP algorithm may be configured to read and to detect interrogative words (e.g., who, what, where, why, when, how, or the like) and to read and to detect instructional verbs (e.g., do, find, trace, provide, clarify, or the like) to determine whether the current input may instructchatbot131ato provide a service, to provide further information, or the like. In some instances, the at least one NLP algorithm may be configured to read and detect punctuation marks to determine an objective associated with the current input (e.g., a current input that is punctuated with a question mark may indicate a question, a current input that is punctuated with a period may indicate a command, or the like).
Atstep204, identification module132 may use the at least one NLP algorithm to determine whether characteristics that describe the current input may be identified. For example, identification module132 may determine whether the at least one NLP algorithm is able to identify a domain that may describe the current input, a user intent that may correspond to the current input, a general concept that may correspond to the current input, and/or slot terms (e.g., properties associated with the domain that may describe the current input), or the like).
If, atstep204, identification module132 determines that the at least one NLP algorithm is able to identify the characteristics that may describe the current input, then, referring toFIG.2B and atstep205a, identification module132 may request access toglobal corpora134. Atstep206, identification module132 may useglobal corpora134 to populate the identified characteristics. To do so, identification module132 may locate, withinglobal corpora134, the identified domain that describes the current input. Each domain withinglobal corpora134 may be associated with a plurality of slot terms. Identification module132 may use the identified general concept and the identified user intent to determine the slot terms that may be used to generate a response to the current input.
For example, the current input may askchatbot131ato purchase a ticket for an upcoming trip (e.g., “I would like to book a bus ticket to travel from City A to City B on DD/MM/YY”). Based on the parsing by the at least one NLP algorithm, identification module132 may determine that the general concept that may be associated with the current domain may be locating transportation. Identification module132 may determine, based on the at least one NLP algorithm, that the user intent that may correspond to the current input may be purchasing a bus ticket. Identification module132 may determine, based on the at least one NLP algorithm, that the domain that may correspond to the current input may be a bus domain. As such, identification module132 may accessglobal corpora134 to determine whetherglobal corpora134 contains data that may be used to generate at least one response to the current input. As illustrated inFIG.4, identification module132 may determine thatglobal corpora134 contains the bus domain as well as slot terms that correspond to the bus domain. Identification module132 may use the general concept, the user intent, and/or the current input to populate the slot terms. For example, identification module132 may determine that the current input identifies a departure city and an arrival city, and may populate the “Departure” slot term and the “Destination” slot term.
Atstep207, dialogue management module133 may determine whether further information may be needed fromuser computing device120 to identify the characteristics that may describe the current input and to populate the characteristics. Dialogue management module133 may parse the current input and may use the at least one NLP algorithm to determine whether to pose queries touser computing device120 to gather additional data that may be used to identify and to populate one or more characteristics that may describe the current input. For example, if identification module132 identifies a general concept and a domain associated with the current input, then dialogue management module133 may further parse the current input to determine whether the user intent may be identified. If, atstep207, dialogue management module133 determines that further details may be required to identify and populate the characteristics, then, referring toFIG.2C and atstep208a, dialogue management module133 may generate at least one query to request further details fromuser computing device120. Dialogue management module133 may transmit the at least one query touser computing device120.
Atstep209,user computing device120 may receive, from dialogue management module133, the at least one query. The at least one query may comprise a request for information to further clarify the current input (e.g., “Would you prefer a bus ticket with an early morning departure time or a late afternoon departure time?”).User computing device120 may generate at least one response to the at least one query. Atstep210,user computing device120 may transmit the at least one response tochatbot131a.
Atstep211,chatbot131amay receive the at least one response and dialogue management module133 may parse the at least one response. Dialogue management module133 may use the information gathered from the at least one response to generate a response to the current input. For example, the at least one response may indicate that an early morning bus departure time is preferred. As such, dialogue management module133 may generate a response indicating that a bus ticket with an early morning departure time may have been purchased. In some instances, and based on the at least one response fromuser computing device120, dialogue management module133 may continue to pose queries touser computing device120 to gather additional information that may be used to identify and to populate the characteristics.
However, if, atstep207, dialogue management module133 determines that further details might not be required to identify and populate the characteristics, then, at step208b, dialogue management module133 may perform natural language generation (NLG) using the populated characteristics to generate a response to the current input. Dialogue management module133 may use the populated characteristics to provide the service requested in the current input (e.g., to directuser computing device120 to a bus ticket booking webpage), to provide the clarification requested in the current input (e.g., to instructuser computing device120 to select a preferred departure time prior to booking the bus ticket), to answer the question posed in the current input, or the like. Dialogue management module133 may transmit, touser computing device120, the response to the current input.
Alternatively, if, atstep204, identification module132 determines that the at least one NLP algorithm might not be able to identify the characteristics that may describe the current input, then, referring toFIG.2D and atstep205b, identification module may transmit the current input to slotmemory135. Atstep212,slot memory135 may receive and store the current input.
Atstep213,controller model136 may request access toslot memory135. In particular,controller model136 may request access to the current input that may be stored inslot memory135.Controller model136 may retrieve the current input fromslot memory135.
At step214,controller model136 may determine whether the current input may be the same as or similar to at least one of the previously received inputs. To do so,controller model136 may compare the current input, retrieved fromslot memory135, to the previously received inputs that may be stored invirtual corpora137. If, at step214,controller model136 determines that the current input may be the same as or similar to at least one of the previously received inputs, then, at step215a,controller model136 may retrieve a copy of the at least one previously received input fromvirtual corpora137.Controller model136 may transmit, tovirtual corpora137, instructions to increase the count associated with the at least one previously received input.
Referring toFIG.2E, atstep216,virtual corpora137 may increase the count associated with the at least one previously received input that may have been retrieved bycontroller model136. To do so,virtual corpora137 may identify the count associated with the at least one previously received input (e.g., a number of times the same input may have been received, a number of times a similar input may have been received, a number of times an input with the same or similar characteristics may have been received, or the like).Virtual corpora137 may increase the count (e.g., by one) and may store the updated count with the at least one previously received input invirtual corpora137.
At step217,controller model136 may transmit, to chatbot131a, the copy of the at least one previously received input that may be the same as or similar to the current input. As described above, chatbot131amay use the at least one previously received input and the at least one associated response to generate the response to the current input.
At step218,controller model136 may transmit instructions to slotmemory135 to clear (e.g., erase, wipe, remove, or the like) the current input fromslot memory135. To do so,slot memory135 may locate at least one cell withinslot memory135 that may store the current input and may clear the data stored on the at least one cell.
Alternatively, if, at step214,controller model136 determines that the current input might not be the same as or similar to at least one of the previously received inputs, then, atstep215b,controller model136 may instructchatbot131ato generate queries that may be used to gather additional details fromuser computing device120 to further understand the current input and to identify characteristics that may describe the current input.Controller model136 may further instructchatbot131ato transmit the queries touser computing device120.
Referring toFIG.2F, atstep219,chatbot131 may generate at least one query to request additional details fromuser computing device120. In particular, dialogue management module133 may generate at least one query to request details that dialogue management module133 may use to better understand the domain, the user intent, the general concept, and/or the slot terms associated with the current input. Dialogue management module133 may transmit the at least one query touser computing device120. Atstep220,user computing device120 may receive the at least one query and may generate at least one response to the at least one query. At step221,user computing device120 may transmit the at least one response tochatbot131a.
At step222,chatbot131amay use the at least one response fromuser computing device120 to determine whether characteristics that may describe the current input may be identified (e.g., a domain, a user intent, a general concept, and/or slot terms associated with the current input). In particular, dialogue management module133 may parse the at least one response fromuser computing device120. Dialogue management module133 may use the at least one NLP algorithm to identify and extract information from the at least one response, and may use the extracted information to determine whether the characteristics may be identified and populated.
If, at step222, dialogue management module133 determines that the at least one response may be used to identify and populate the characteristics, then, at step223a, identification module132 may identify and populate the characteristics. Dialogue management module133 may use the identified and populated characteristics to generate the response to the current input. To do so, dialogue management module133 may perform natural language generation (NLG) using the populated characteristics. Dialogue management module133 may use the populated characteristics to provide the service requested in the current input (e.g., to directuser computing device120 to a bus ticket booking webpage), to provide the clarification requested in the current input (e.g., to instructuser computing device120 to select a preferred departure time prior to booking the bus ticket), to answer the question posed in the current input, or the like. Dialogue management module133 may transmit, touser computing device120, the response to the current input.
However, if, at step222, dialogue management module133 determines that the at least one response might not be used to identify and populate the characteristics, then, referring toFIG.2G and atstep223b, dialogue management module133 may generate and transmit, touser computing device120, at least one query to request additional details. Dialogue management module133 may receive, fromuser computing device120, at least one response to the at least one query, and may parse the at least one response using the at least one NLP algorithm. Dialogue management module133 may continue to generate and to transmit queries to user computing device120 (e.g., until dialogue management module133 determines that the at least one response fromuser computing device120 provides the details needed to identify and to populate the characteristics, untiluser computing device120 requests intervention from an individual associated with the enterprise organization, or the like).
Atstep224, enterpriseorganization computing device110 may generate a plurality of rules (e.g., count threshold rules, ambiguity threshold rules, or the like). As described above, the count threshold rules and/or the ambiguity threshold rules may be used to determine whether to updateglobal corpora134 using data (e.g., a current input, previously received inputs) fromvirtual corpora137. The count threshold rules may indicate criteria for determining when the data is eligible to move fromvirtual corpora137 to global corpora134 (e.g., a minimum number of times the same input should be received before the input may be added toglobal corpora134, a minimum number of times that inputs associated with the same domain should be received before the domain may be added toglobal corpora134, a minimum number of times that a particular user intent should be detected before the corresponding input may be added toglobal corpora134, a minimum number of times a general concept should be detected before the corresponding input may be added toglobal corpora134, or the like). Each input withinvirtual corpora137 may be associated with a count (e.g., a number of times the input was received by a chatbot withinchatbot stack131, a number of times a domain was used to generate a response to an input, or the like).
The ambiguity threshold rules may indicate criteria for determining the accuracy of the data withinvirtual corpora137 before the data may be transmitted to global corpora134 (e.g., whether the domain that was used to generate the response to the current input (or the previously received input) accurately addressed the user's request, whether the user intent detected in the current input (or the previously received input) accurately addressed the user's request, whether the general concept detected in the current input (or the previously received input) accurately reflected the user's request, whether the correct domain was identified but the incorrect slot terms were used to describe the domain, or the like). The accuracy of the data withinvirtual corpora137 may be based on whetheruser computing device120, after receiving the response to the current input, transmits additional inputs (e.g., requests) to address issues (e.g., miscommunications, mistakes, or the like) in the response to the current input. In some instances,user computing device120 may determine that the response to the current input might not address the request (e.g., might not address the user's question, might not address the user's request, may provide information that me associated with a general concept that may be different from the general concept associated with the current input, or the like) indicated in the current input. As such,user computing device120 may transmit at least one additional input to request additional assistance and/or services fromchatbot131a. In such instances, the accuracy of the response (and the associated characteristics) may be lowered. On the other hand,user computing device120 may determine that the response to the current input accurately addressed the request (e.g., accurately answered the user's question, accurately provided the requested service, or the like). As such, the accuracy of the response (and the associated characteristics) may be increased.
Enterpriseorganization computing device110 may transmit the count threshold rules and the ambiguity threshold rules tocontroller model136. At step225,controller model136 may receive the count threshold rules and the ambiguity threshold rules from enterpriseorganization computing device110.Controller model136 may use the rules to determine whether data fromvirtual corpora137 should be transmitted to and stored withinglobal corpora134.Controller model136 may determine whether data (e.g., the current input, a previously received input, or the like) stored invirtual corpora137 satisfies the count threshold rules (e.g., whether a count associated with the current input (or the previously received input) is equal to or greater than a minimum number of times the same or similar inputs should be received before the input may be added toglobal corpora134, whether a count associated with the current input (or the previously received input) is equal to or greater than a minimum number of times that inputs associated with the same domain should be received before the domain may be added toglobal corpora134, or the like).
If, at step225,controller model136 determines that the current input (or the previously received input) fails to satisfy the count threshold rules, then, atstep226a,controller model136 may instructvirtual corpora137 to retain the current input (or the previously received input). As such,controller model136 might not transmit the current input (or the previously received input) toglobal corpora134. Alternatively, if, at step225,controller model136 determines that the current input (or the previously received input) satisfies the count threshold rules, then, referring toFIG.2H and atstep226b,controller model136 may determine whether the current input (or the previously received input) satisfies the ambiguity threshold rules (e.g., whether an accuracy count associated with the current input (or the previously received input) is equal to or greater than a threshold accuracy count that may be established by the enterprise organization, whether the accuracy count associated with the current input (or the previously received input) is less than a maximum ambiguity count that may be established by the enterprise organization, or the like).
If, atstep226b,controller model136 determines that the current input (or the previously received input) fails to satisfy the ambiguity threshold rules, then, at step227a,controller model136 may instructvirtual corpora137 to retain the current input (or the previously received input). As such,controller model136 might not transmit the current input (or the previously received input) toglobal corpora134. Alternatively, if, atstep226b,controller model136 determines that the current input (or the previously received input) satisfies the ambiguity threshold rules, then, at step227b,controller model136 may retrieve, fromvirtual corpora137, the current input (or the previously received input), characteristics that may describe the current input (or the previously received input), at least one response that may correspond to the current input (or the previously received input), and/or slot terms that may be associated with the domain.Controller model136 may transmit the retrieved data toglobal corpora134.
At step228,global corpora134 may receive, fromcontroller model136, the current input (or the previously received input), characteristics that may describe the current input (or the previously received input), at least one response that may correspond to the current input (or the previously received input), and/or slot terms that may be associated with the domain.Global corpora134 may store the current input (or the previously received input), the characteristics that may describe the current input (or the previously received input), the at least one response that may correspond to the current input (or the previously received input), and/or the slot terms that may be associated with the domain.
FIGS.3A-3C depict flow diagrams illustrating one example method for preserving text and speech semantics using real-time virtual corpora in live interactive chatbot sessions, in accordance with one or more aspects described herein. The processes illustrated inFIGS.3A-3C are merely sample processes and functions. The steps shown may be performed in the order shown, in a different order, more steps may be added, or one or more steps may be omitted, without departing from the invention. In some examples, one or more steps may be performed simultaneously with other steps shown and described. Further, one or more steps described with respect toFIGS.3A-3C may be performed in real-time or near real-time.
Atstep301,user computing device120 may be configured to generate and to transmit an input (e.g., a textual input, a voice input, a computer-generated voice input, or the like) tochatbot131a. Atstep302,chatbot131amay receive the current input fromuser computing device120. Atstep303, identification module132 may parse the current input using at least one NLP algorithm. Identification module132 may use the at least one NLP algorithm to analyze the current input and to identify one or more key terms, characters, symbols, punctuation, or the like.
Atstep304, identification module132 may use the at least one NLP algorithm to determine whether characteristics that describe the current input may be identified (e.g., a domain that may describe the current input, a user intent that may correspond to the current input, a general concept that may correspond to the current input, and/or slot terms that may describe the domain, or the like). If, atstep304, identification module132 determines that the at least one NLP algorithm is able to identify the characteristics that may describe the current input, then, atstep305, identification module132 may request accessglobal corpora134. Identification module132 may useglobal corpora134 to populate the identified characteristics.
Atstep306, dialogue management module133 may determine whether further information may be needed fromuser computing device120 to identify the characteristics that may describe the current input and to populate the characteristics. Dialogue management module133 may parse the current input and may use the at least one NLP algorithm to determine whether to pose queries touser computing device120 to gather additional data that may be used to identify and to populate one or more characteristics that may describe the current input. If, atstep306, dialogue management module133 determines that further details may be required to identify and populate the characteristics, then, atstep307, dialogue management module133 may generate at least one query to request further details fromuser computing device120. Dialogue management module133 may transmit the at least one query touser computing device120.
Atstep308,user computing device120 may receive, from dialogue management module133, the at least one query.User computing device120 may generate at least one response to the at least one query and may transmit the at least one response tochatbot131a. The method flow described herein may return to step306 in that dialogue management module133 may parse the at least one response and may determine whether additional detail may be needed fromuser computing device120. Dialogue management module133 may continue to pose at least one query touser computing device120 and to use the at least one response fromuser computing device120 to generate a response to the current input.
However, if, atstep306, dialogue management module133 determines that further details might not be required to identify and populate the characteristics, then, atstep309, dialogue management module133 may perform natural language generation (NLG) using the populated characteristics to generate a response to the current input. Atstep310, dialogue management module133 may transmit, touser computing device120, the response to the current input.
Alternatively, if, atstep304, identification module132 determines that the at least one NLP algorithm might not be able to identify the characteristics that may describe the current input, then, atstep311, identification module may transmit the current input to slotmemory135.
Atstep312,controller model136 may retrieve the current input fromslot memory135. Atstep313,controller model136 may determine whether the current input may be the same as or similar to at least one of the previously received inputs. To do so,controller model136 may compare the current input, retrieved fromslot memory135, to the previously received inputs that may be stored invirtual corpora137. If, atstep313,controller model136 determines that the current input might not be the same as or similar to at least one of the previously received inputs, then, referring toFIG.3B and atstep314,controller model136 may instructchatbot131ato generate queries that may be used to gather additional details fromuser computing device120 to further understand the current input and to identify characteristics that may describe the current input.Controller model136 may further instructchatbot131ato transmit the queries touser computing device120.
Atstep315,chatbot131 may generate at least one query to request additional details fromuser computing device120. In particular, dialogue management module133 may generate at least one query to request details that dialogue management module133 may use to better understand the domain, the user intent, the general concept, and/or the slot terms associated with the current input. Dialogue management module133 may transmit the at least one query touser computing device120.
Atstep316,user computing device120 may receive the at least one query and may generate at least one response to the at least one query. Atstep317,user computing device120 may transmit the at least one response tochatbot131a.
Atstep318,chatbot131amay use the at least one response fromuser computing device120 to determine whether the characteristics that may describe the current input may be identified. In particular, dialogue management module133 may parse the at least one response fromuser computing device120. Dialogue management module133 may use the at least one NLP algorithm to identify and extract information from the at least one response, and may use the extracted information to determine whether the characteristics may be identified and populated.
If, atstep318, dialogue management module133 determines that the at least one response might not be used to identify and populate the characteristics, then, the method flow described herein may return to step315 in that dialogue management module133 may generate at least one additional query to request additional details fromuser computing device120. Dialogue management module133 may continue to pose at least one query touser computing device120 and to use the at least one response fromuser computing device120 to determine whether the at least one response may be used to identify and populate the characteristics.
Alternatively, if, atstep318, dialogue management module133 determines that the at least one response may be used to identify and populate the characteristics, then, atstep319, identification module132 may identify and populate the characteristics. Dialogue management module133 may use the identified and populated characteristics to generate the response to the current input. At step320, dialogue management module133 may transmit, touser computing device120, the response to the current input.
However, returning toFIG.3A, if, atstep313,controller model136 determines that the current input may be the same as or similar to at least one of the previously received inputs, then, referring toFIG.3C and at step321,controller model136 may retrieve a copy of the at least one previously received input fromvirtual corpora137.Controller model136 may also transmit, tovirtual corpora137, instructions to increase the count associated with the at least one previously received input. Atstep322,virtual corpora137 may increase the count associated with the at least one previously received input that may have been retrieved bycontroller model136.
Atstep323,controller model136 may transmit, to chatbot131a, the copy of the at least one previously received input that may be the same as or similar to the current input. As described above, chatbot131amay use the at least one previously received input and the at least one associated response to generate the response to the current input.
Atstep324,controller model136 may transmit instructions to slotmemory135 to clear (e.g., erase, wipe, remove, or the like) the current input fromslot memory135. Atstep325, enterpriseorganization computing device110 may generate the count threshold rules and/or the ambiguity threshold rules. The count threshold rules and/or the ambiguity threshold rules may be used to determine whether to updateglobal corpora134 using data (e.g., the current input, previously received inputs) fromvirtual corpora137, as described above.
Atstep326,controller model136 may determine whether data (e.g., the current input, a previously received input, or the like) stored invirtual corpora137 satisfies the count threshold rules (e.g., whether a count associated with the current input (or the previously received input) is equal to or greater than a minimum number of times the same or similar inputs should be received before the input may be added toglobal corpora134, whether a count associated with the current input (or the previously received input) is equal to or greater than a minimum number of times that inputs associated with the same domain should be received before the domain may be added toglobal corpora134, or the like). If, atstep326,controller model136 determines that the current input (or the previously received input) fails to satisfy the count threshold rules, then, atstep327,controller model136 may instructvirtual corpora137 to retain the current input (or the previously received input). As such,controller model136 might not transmit the current input (or the previously received input) toglobal corpora134.
Alternatively, if, atstep326,controller model136 determines that the current input (or the previously received input) satisfies the count threshold rules, then, atstep328,controller model136 may determine whether the current input (or the previously received input) satisfies the ambiguity threshold rules (e.g., whether an accuracy count associated with the current input (or the previously received input) is equal to or greater than a threshold accuracy count that may be established by the enterprise organization, whether the accuracy count associated with the current input (or the previously received input) is less than a maximum ambiguity count that may be established by the enterprise organization, or the like). If, atstep328,controller model136 determines that the current input (or the previously received input) fails to satisfy the ambiguity threshold rules, then, atstep329,controller model136 may instructvirtual corpora137 to retain the current input (or the previously received input). As such,controller model136 might not transmit the current input (or the previously received input) toglobal corpora134.
Alternatively, if, atstep328,controller model136 determines that the current input (or the previously received input) satisfies the ambiguity threshold rules, then, at step330,controller model136 may retrieve, fromvirtual corpora137, the current input (or the previously received input), characteristics that may describe the current input (or the previously received input), at least one response that may correspond to the current input (or the previously received input), and/or slot terms that may be associated with the domain.Controller model136 may transmit the retrieved data toglobal corpora134.
Atstep331,global corpora134 may receive, fromcontroller model136, the current input (or the previously received input), the characteristics that may describe the current input (or the previously received input), the at least one response that may correspond to the current input (or the previously received input), and/or the slot terms that may be associated with the domain.Global corpora134 may store the current input (or the previously received input), the characteristics that may describe the current input (or the previously received input), the at least one response that may correspond to the current input (or the previously received input), and/or the slot terms that may be associated with the domain.
As a result, the proposed solution may provide at least the following benefits: 1) real-time, or near real-time, access to the global corpora by a chatbot stack; 2) real-time, or near real-time, transmission of new words, grammar, and semantics to the virtual corpora; and 3) real-time, or near real-time, transmission of new words, grammar, and semantics to the global corpora using a count threshold and an ambiguity threshold.
One or more aspects of the disclosure may be embodied in computer-usable data or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices to perform the operations described herein. Generally, program modules include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types when executed by one or more processors in a computer or other data processing device. The computer-executable instructions may be stored as computer-readable instructions on a computer-readable medium such as a hard disk, optical disk, removable storage media, solid-state memory, RAM, and the like. The functionality of the program modules may be combined or distributed as desired in various embodiments. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents, such as integrated circuits, application-specific integrated circuits (ASICs), field programmable gate arrays (FPGA), and the like. Particular data structures may be used to more effectively implement one or more aspects of the disclosure, and such data structures are contemplated to be within the scope of computer executable instructions and computer-usable data described herein.
Various aspects described herein may be embodied as a method, an enterprise computing platform, or as one or more non-transitory computer-readable media storing instructions. Accordingly, those aspects may take the form of an entirely hardware embodiment, an entirely software embodiment, an entirely firmware embodiment, or an embodiment combining software, hardware, and firmware aspects in any combination. In addition, various signals representing data or events as described herein may be transferred between a source and a destination in the form of light or electromagnetic waves traveling through signal-conducting media such as metal wires, optical fibers, or wireless transmission media (e.g., air or space).
As described herein, the various methods and acts may be operative across one or more computing servers and one or more networks. The functionality may be distributed in any manner, or may be located in a single computing device (e.g., a server, a client computer, and the like). For example, in alternative embodiments, one or more of the computing platforms discussed above may be combined into a single computing platform, and the various functions of each computing platform may be performed by the single computing platform. In such arrangements, any and/or all of the above-discussed communications between computing platforms may correspond to data being accessed, moved, modified, updated, and/or otherwise used by the single computing platform. Additionally or alternatively, one or more of the computing platforms discussed above may be implemented in one or more virtual machines that are provided by one or more physical computing devices. In such arrangements, the various functions of each computing platform may be performed by the one or more virtual machines, and any and/or all of the above-discussed communications between computing platforms may correspond to data being accessed, moved, modified, updated, and/or otherwise used by the one or more virtual machines.
Aspects of the disclosure have been described in terms of illustrative embodiments thereof. Numerous other embodiments, modifications, and variations within the scope and spirit of the appended claims will occur to persons of ordinary skill in the art from a review of this disclosure. For example, one or more of the steps depicted in the illustrative figures may be performed in other than the recited order, and one or more depicted steps may be optional in accordance with aspects of the disclosure.