Contextual feedback for natural understanding systems in chatbots

By using natural language processors and robot controllers in chatbot systems, identifying and utilizing concepts in input as context information, the ambiguity problem of chatbots when processing natural language input is solved, and the accuracy of response is improved.

CN113906411BActive Publication Date: 2025-03-25MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080039891.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-05-30
Filing Date
2020-04-23
Publication Date
2025-03-25
Estimated Expiration
2040-04-23

AI Technical Summary

Technical Problem

Chatbots have difficulty effectively handling ambiguity in input when processing natural language input, especially in the absence of context, resulting in inaccurate responses.

Method used

By introducing natural language processors and robot controllers into chatbot systems, the natural language processor receives text input, identifies concepts in the input, and feeds these concepts back to the robot controller as context information to generate a response.

Benefits of technology

This approach effectively eliminates ambiguity in natural language input and improves the accuracy of chatbots' understanding of user intentions and responses.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113906411B_ABST
    Figure CN113906411B_ABST
Patent Text Reader

Abstract

The chatbot computing system includes a robot controller and a natural language processor. The natural language processor receives a first text input and identifies a concept represented by the first text input. An indication of the concept is output to the robot controller, and the robot controller generates a response to the first text input. When a second text input is received, the concept output by the natural language processor is also fed back into the input of the natural language processor as context information. Then, the natural language processor identifies the concept represented in the second text input based on the second natural language, the text input, and the context information.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Computing systems are now widely used. Some computing systems include online chat functionality that allows users to communicate with each other in real time (or near real time). Similarly, some computing systems include robots (sometimes called web robots), which are applications that are run to perform tasks over a network (such as a wide area network). When a robot uses a chat function, it is sometimes called a chatbot.

[0002] Chatbots are sometimes used in computing systems to implement conversational interfaces. Users can interact with the conversational interface using natural language to perform a variety of different tasks. Some tasks include obtaining information (in which case the robot implements a search function and returns the information to the user) and performing tasks (in which case the robot implements a control function to control some physical control system or item). Chatbots can also be used by users to perform a variety of other tasks.

[0003] To name just a few examples, a chatbot can be used as a conversational interface to a data storage system so that searches can be performed using natural language input queries. In another example, a chatbot can be used to implement an interface to a home automation system, where different controllable subsystems in a home can be controlled by a user using conversational input from the chatbot. Chatbots can be used to make reservations, get driving directions, get weather information, and many other things.

[0004] The above discussion is provided for general background information only and is not intended to be an aid in determining the scope of the claimed subject matter. Summary of the invention

[0005] A chatbot computing system includes a robot controller and a natural language processor. The natural language processor receives a first text input and identifies a concept represented by the first text input. An indication of the concept is output to the robot controller, and the robot controller generates a response to the first text input. When a second text input is received, the concept output by the natural language processor is also fed back into the input of the natural language processor as context information. Then, the natural language processor identifies the concept represented in the second text input based on the second natural language, the text input, and the context information.

[0006] This summary is provided to introduce a series of concepts in a simplified form, which are further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all of the shortcomings noted in the background technology. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] Figure 1 is a block diagram of one example of a computing system architecture in which a chatbot computing system is used.

[0008] Figure 2 It's a picture. Figure 1 Flowchart of one example of the overall operation of the architecture illustrated in FIG.

[0009] Figure 3 It shows Figure 1 Block diagram of the architecture using the knowledge model illustrated in .

[0010] Figure 3A , Figure 3B and Figure 3C Examples of different parts of a knowledge model are shown.

[0011] Figure 4 is a block diagram illustrating an example of a knowledge model.

[0012] Figure 5 It shows Figure 3 A block diagram of an architecture using contextual filtering / enhancement logic is shown in FIG.

[0013] Figure 6 is a block diagram illustrating one example of contextual filtering / enhancement logic in more detail.

[0014] Figure 7 is a flow diagram illustrating one example of an architecture using the knowledge model illustrated in the previous figures.

[0015] Figure 8 is a flow diagram illustrating one example of the operation of the architecture shown in the previous figures using contextual filtering / enhancement logic.

[0016] Fig. 9 One example of the architecture illustrated in the previous figures being deployed in a cloud computing architecture is shown.

[0017] Figure 10-12 An example of a mobile device that may be used in the architecture shown in the previous figures is shown.

[0018] Fig.13 is a block diagram illustrating one example of a computing environment that may be used in the architectures shown in the previous figures. DETAILED DESCRIPTION

[0019] As mentioned above, chatbots are often used to implement natural language interfaces for a variety of different types of systems. Natural language input often contains ambiguity. This is because natural language conversations often assume a certain level of shared context between the participants in the conversation.

[0020] As an example, suppose the following conversation occurs:

[0021] Conversation Participant 1: "What's the weather like in Seattle today?"

[0022] Participant 2: “It’s cloudy today, and there’s a chance of rain.”

[0023] Participant 1: "How about tomorrow?"

[0024] Participant 2: "It might rain tomorrow."

[0025] Participant 1: "How's Ellensburg?"

[0026] Participant 2: "It will be sunny in Ellensburg tomorrow."

[0027] At the beginning of the conversation, the recipient of the first utterance has no context, but the first utterance ("What's the weather like in Seattle today?") is unambiguous. However, the second utterance ("What about tomorrow?") itself is ambiguous.

[0028] When these types of natural language input are provided through a conversational interface implemented by a chatbot, the only way for the chatbot to understand the meaning of the user's second utterance will be that it already knows the context of the utterance. The context indicates what the participants in the conversation were talking about before the second utterance was received. In this example, these contents would include "weather", "Seattle", and "today". The same is true for responding to the user's third utterance ("How is Ellensburg?"). The only way to respond accurately is to know that the content of the utterance is "weather" and "tomorrow" (which will override the context of "today").

[0029] Thus, this discussion is about identifying concepts in the natural language input to a chatbot and carrying these concepts forward in the conversation as contextual information that is provided to enhance subsequent utterances in the conversation. Figure 1 One example of a computing system architecture 100 is shown in which a chatbot computing system 102 receives chat messages over a chat message channel function 104 from a user 106 providing those messages via a user device 108 .

[0030] User device 108 may be any of a number of different types of devices. Figure 1In the example shown, it may be a mobile device that generates one or more interfaces 110 for user 106 to interact with. User 106 illustratively interacts with interface 110 to control and manipulate portions of user device 108 and chatbot computing system 102. As one example, interface 110 may include a microphone so that user 106 may provide natural language input as voice input to chatbot computing system 102 through user device 108 and chat message channel functionality 104.

[0031] As an example, Figure 1 The user 106 is shown to have provided a chat message 112 as input to the chat message channel functionality 104. The chat message 112 is provided to the chatbot computing system 102. The chatbot computing system 102 processes the chat message 112 and generates a chat response 114, which is provided back to the user device 108 through the chat message channel functionality 104, where it is presented to the user 106 on one of the interfaces 110. The interface 110 may be generated on a display device, an audio device, a tactile device, etc.

[0032] exist Figure 1 In the example shown, the chatbot computing system 102 illustratively includes one or more processors or servers 116, a data storage device 118, a chatbot 120, and it may include a variety of other items 121. The processors and / or servers 116 may implement the chatbot 120 in a variety of different ways. Figure 1 In the illustrated example, the chatbot 102 illustratively includes a robot controller 122 and a natural language processor 124. The robot controller 122 illustratively can be code generated by a developer to implement a specific type of interface that the developer wishes to implement. The natural language processor 124 illustratively performs natural language processing on natural language text inputs to identify concepts represented by those inputs.

[0033] Thus, in one example, the chat message 112 is provided from the robot controller 122 to the natural language processor 124 as input text 126. The natural language processor 124 (as will be described in more detail below) identifies concepts in the input text 126 and generates output 128 representing those concepts. Concepts, as described in more detail below, may be represented by unique identifiers.

[0034] Concepts (e.g., unique identifiers) in the input text 126 are provided back to the robot controller 122, which generates the chat response 114 (or takes other actions in response to those concepts). According to one example, the output 128 is also fed back into the natural language processor 124 along with subsequent input text subsequently received from the user 106 (e.g., based on the second utterance).

[0035] Thus, continuing with the example discussed above, the input text 126 may be “What’s the weather like in Seattle today?” Based on this input, the natural language processor 124 may identify concepts such as “weather,” “Seattle,” and “today” (or unique identifiers corresponding to those concepts). These concepts may be output as output 128 to the robot controller 122, which generates a responsive chat response 114, which may be “It’s cloudy today, with a chance of rain.” Then, when a second utterance is received as a second chat message 112 (“What about tomorrow?”), this text input is provided to the natural language processor 124 as input text 126, along with the concepts identified in the first utterance (“weather,” “Seattle,” and “today”). Thus, the natural language processor 124 generates an output indicating the concepts represented in the second utterance based not only on the text of the second utterance, but also on the concepts identified in the first utterance (which serve as context for the second utterance). The output generated by the natural language processor 124 based on the second utterance will again be fed back to the robot controller 122 so that it can generate a response, but this output from the natural language processor 124 will also be fed back into the natural language processor 124 as context for the third utterance (if received).

[0036] Referring again to the example conversation set forth above, the second response generated by the robot controller 122 (in response to the second utterance "How about tomorrow?") is "There may be showers tomorrow." Then, the user 106 generates a third utterance "How about Ellensburg?" Obviously, if one knows the context of the conversation, the user 106 is asking what the weather will be like in Ellensburg tomorrow. Therefore, the output 128 generated by the natural language processor 124 in response to the second utterance ("How about tomorrow?") will include the concepts "weather," "tomorrow," and "Seattle." It will be provided to the robot controller 122 so that the robot controller 122 can generate the response "There may be showers tomorrow." These concepts will also be fed back to the natural language processor 124 along with the third utterance "How about Ellensburg?" Since the concept of "Ellensburg" is closer than the concept of "Seattle," "Ellensburg" will replace "Seattle." Therefore, the natural language processor 124, based on the context fed back to it, will know that the conversation is currently about "weather," "tomorrow," and "Ellensburg."

[0037] Thus, the natural language processor 124 will generate another output 128 based on the third utterance and the context fed back to it from the second utterance. The output 128 based on the third utterance will be provided to the robot controller 122 so that it can generate a response to the third utterance. As illustrated in the example dialogue, the response may include "It will be sunny in Ellensburg tomorrow."

[0038] As briefly mentioned above, in one example, the natural language processor 124 includes code so that the most recent words (in the most recent utterance) will be more important (if there is any conflicting coverage), and include the context that accompanies them and is fed back from previous utterances. Thus, in the example discussed above, when the second utterance "How about tomorrow?" is provided, the concept "tomorrow" covers the context information of the concept "today". Thus, the concepts "weather" and "Seattle" are used to disambiguate the second utterance, but the context "today" is discarded because the more recent concept "tomorrow" covers it. The new context information for the second utterance will be "weather", "Seattle", and "tomorrow". Then, when the third utterance is received, the concept "Ellensburg" covers the concept "Seattle".

[0039] exist Figure 1 In the example shown, the natural language processor 124 can identify concepts in the input utterance in a number of different ways. In one example, it identifies the base concept using a unique identifier that is unique to each concept. Thus, for example, while the concept "weather" may include many different labels, such as "weather," "conditions," "weather conditions," etc., the base concept of "weather" will be represented by a single unique identifier. Similarly, while the base concept "Seattle" may be represented by different labels, such as "Emerald City" and "Seattle," the base concept of the city of Seattle will be represented by a single unique identifier.

[0040] Figure 2 is shown in more detail Figure 1 A flowchart of one example of the operation of the architecture 100 is shown in FIG. First, assume that the chatbot computing system 102 receives a representation of an utterance from the chat message channel function 104. This is done by Figure 2 The block 134 in the flowchart of FIG. 134 indicates that the representation of the utterance can be an audio representation, a textual representation, or a different type of representation. In one example, in the case where it is an audio representation, speech recognition is performed on the representation to generate a textual representation. This is just one example.

[0041] The robot controller 122 provides the representation of the utterance to the natural language processor 124 for evaluation. This is indicated by box 136. The natural language processor receives any context from any previous utterances and the representation of the utterance provided to it by the robot controller 122. The context from any previous utterances is received by the natural language processor 124. Figure 2 Indicated by block 138 in the flowchart of FIG. Figure 1In the example shown, any output 128 generated by the natural language processor 124 is fed directly into the natural language processor 124 along with the next utterance as context information for that utterance. The output from the evaluation of the previous utterance is provided directly to the natural language processor as context information input with the subsequent utterance, which is determined by Figure 2 140 in the flowchart of FIG.

[0042] However, as described in more detail below, the context information may include not only the output 128 from the natural language processor 124, but also an enhanced or modified version of that output, or it may include context from other sources in addition to the output of the natural language processor 124. Providing the filtered, enhanced output from the previous evaluation is indicated by box 142, and providing context information from other sources is indicated by box 144.

[0043] Then, given the context information it has also received, the natural language processor 124 evaluates the representation of the utterance it has received. This is indicated by box 146. By evaluating the representation of the utterance, given the context, it means that the natural language processor 124 identifies a new set of concepts based on the newly received utterance and its context information. It can do this in a number of different ways. In one example, it uses a knowledge model (such as the one below about Figure 3-Figure 7 discussed in more detail). Using the knowledge model by Figure 2 The natural language processor 124 may evaluate the representation of the utterance in a variety of other ways given the context. This is indicated by box 150.

[0044] The natural language processor 124 generates a concept set based on the evaluation and outputs the concept set to the robot controller 122. This is indicated by box 152. Based on the evaluation results provided by the natural language processor 124, the robot controller 122 formulates a chat response and outputs the chat response to the chat message channel function 104. Formulating and outputting the chat response is performed by Figure 2 154 in the flowchart of FIG.

[0045] If another representation of another utterance is received, as indicated by block 156, processing returns to block 136 where the robot controller 122 provides the representation to the natural language processor 124. Then, at block 138, the natural language processor 124 receives contextual information from the previous utterance and then evaluates it. Figure 1 and Figure 2As shown, the natural language processor 124 interprets (or evaluates) a particular utterance not only based on information about the particular utterance itself, but also based on contextual information from previous utterances. This can be used to greatly enhance the operation of the chatbot computing system 102. It can be used to disambiguate utterances, increase the accuracy of implementing a natural language interface, and so on. The context can be captured as an unordered set of unique identifiers, which can be represented as URIs or in other ways.

[0046] Figure 3 Another example of architecture 100 is shown, which is similar to Figure 1 , and similar items are numbered similarly. However, Figure 3 Also shown, the natural language processor 124 now has access to a knowledge model 158, which can be used to identify concepts based on the utterance and context information provided to the natural language processor 124. The knowledge model 158 illustratively relates language (the words and text in the utterance) to topics or concepts, which become the output 128 of the natural language processor 124. These concepts also become the context information for the next subsequent utterance (and possibly more subsequent utterances) that is received.

[0047] Each concept can have multiple different labels. For example, the weather can be described as "gloomy." However, when someone is emotionally sad, their emotional state can also be described as "gloomy." Therefore, the concept of "cloudy weather" can be labeled as "gloomy." Similarly, the concept of "sad emotional state" can also be labeled as "gloomy." In addition, the knowledge model 158 illustratively describes synonyms. For example, the concept of "sad emotional state" can be labeled with language labels (e.g., words) "sad," "unhappy," "gloomy," etc.

[0048] Figure 3A Examples of concepts for these types of modeling are shown. Figure 3A It is shown that the concept "cloudy" may have the label "gloomy." However, the concept "emotion-sadness" may also have the label "gloomy" as well as the label "sadness" and the label "unhappy."

[0049] In addition, concepts can also be related to other concepts, not just to labels. The knowledge model 158 also illustratively captures these types of relationships because the contextual information output by the natural language processor 124 can include not only the concepts identified in the input text 126, but also closely related concepts. For example, it may be useful to relate the discrete concepts of "skiing conditions" and "driving conditions" to the concept of "weather."

[0050] Figure 3B An example of this is shown. Figure 3B It is shown that the concepts “weather-driving conditions” and “weather-skiing conditions” are both related to the concept “weather”.

[0051] It is also useful to name these types of relationships and to make them directional. For example, it may be helpful for the knowledge model 158 to indicate that the concept of "emotional state" is broader than the concept of "emotional state - sad". Similarly, the concept of "emotional state - sad" is broader than the concept of "emotional state - pessimistic". In addition, concepts can have the same relationship with more than one different concept. For example, the concept of "emotional state - pessimistic" can have a relationship with two different broader concepts. For example, it can have a relationship with the broader concept of "emotional state - negative" and can also have a relationship with the broader concept of "emotional state".

[0052] Figure 3C An example of these types of relationships is shown. Figure 3C It is shown that both concepts "emotion - sad" and "emotion - negative" are related to the broader concept "emotion - emotional state". Similarly, the concept "emotion - pessimistic" is related to two broader concepts, the first being "emotion - sad" and the second being "emotion - negative".

[0053] Thus, in one example, the knowledge model 158 represents different concepts, each of which is given a unique identifier. Concepts can be related to other concepts with naming and directional relationships. They can be labeled with natural language words (e.g., language tags). A particular concept can have many different tags, and the tags themselves may not be unique in the sense that the same tag can be used on different concepts. However, the base concepts are unique relative to other model concepts.

[0054] therefore, Figure 4 A block diagram of an example of a knowledge model 158 is shown. The knowledge model 158 has a collection of concepts, each of which is represented by a unique identifier and one or more language tags (words). Figure 4 The concepts may be connected to the language tags by connections or links. It should be noted that if the model 158 is to be localized into different languages, the unique identifiers representing the underlying concepts do not need to be localized as they are language independent. However, the language tags will be localized.

[0055] Concepts may also be connected to each other via labeled directional links 162. Model 158 may also include various other items 164. Thus, in operation, Figure 3 The example of architecture 100 shown in FIG. 1 is similar to Figure 1 However, in Figure 3In , the natural language processor 124 uses the knowledge model 158 to identify the concepts represented by the input text 126 (and any context fed back to the natural language processor 124 from previous evaluations). Figure 7 Describe an example of this.

[0056] Figure 5 Another example of architecture 100 is shown, which is similar to Figure 3 Similar items are numbered similarly. However, in Figure 5 In the example shown, in addition to or in lieu of the language model 158 , and in addition to context fed back from output 128 generated for a previous utterance, the chatbot computing system 102 also includes other context sources 168 that can provide context to the natural language processor 124 . Figure 5 It is also shown that, in one example, the output 128 is provided to the robot controller 122 so that it can formulate a chat response 114 to the utterance just received. However, after being provided to the contextual filtering / enhancement logic 170, it is fed back to the natural language processor 124 as context information for the next subsequent utterance. The contextual filtering / enhancement logic 170 can enhance and / or filter the output 128 to provide the filtered and / or enhanced context information to the natural language processor 124 along with the next subsequent utterance received. Figure 5 In the example shown, the natural language processor 124 is not only capable of receiving enhanced and filtered context output from the context filtering / enhancement logic 170 based on previous evaluation results or outputs 128, but it can also receive context from other context sources 168, which can be provided by the developer to further customize the natural language interface experience implemented by the chatbot computing system 102.

[0057] Before describing the operation of architecture 100, Figure 5 In the example shown, a brief description of the contextual filtering / enhancement logic 170 will first be provided. Figure 6 One example of a block diagram illustrating contextual filtering / enhancement logic 170 is shown in more detail. Figure 6In the example shown, the context filtering / enhancement logic 170 illustratively includes a shelf life indication generator 180, an expiration criteria processor 182, a data store 184, a context enhancement system 186, a context filtering system 188, a context weighting system 190, a context output generator 192, and it may include various other items 194. The shelf life indication generator 180 itself illustratively includes a timestamp generator 196, a round counter 198, a location stamp generator 200, and it may include other items 202. The expiration criteria processor 182 itself illustratively includes concept level logic 204, overall context logic 206, and it may include other items 208.

[0058] Before describing the contextual filtering / enhancement logic 170 in more detail, it should be understood that concepts typically have a useful duration or range (also referred to as a shelf life). Therefore, the context information provided with the utterance can have a limited useful duration (or shelf life). The shelf life can be determined by many different criteria. In one example, a time-related criterion can be used to determine the shelf life of concepts in the context information. For example, if the chatbot computing system 102 receives an utterance on Monday inquiring about the weather for the day, then if the next utterance is received two days later, the context information generated from the previous utterance is likely to no longer be applicable or meaningful to the second utterance. Therefore, including concept information from the first utterance as context information in the second utterance can have a limited useful duration, and a time-related criterion (such as a timestamp) can be used to identify the duration.

[0059] The limited usefulness of context information can also be generalized to other dimensions besides time. For example, the chatbot computing system 102 can implement a natural language interface on a motor vehicle. In this case, a user can provide an utterance to find the nearest gas station. However, the next subsequent utterance may be an utterance provided by the user 106 after the motor vehicle has traveled 100 miles since the previous utterance. In this case, the previous utterance to find the nearest gas station is unlikely to be useful as context information for the next subsequent utterance. Similarly, in the same example, if the first utterance is to ask for the next nearest highway exit, and the second utterance is provided after the car has left the highway, the usefulness of the first utterance as context information for the next subsequent utterance may be limited. Therefore, in this example, the shelf life or expiration criteria may be location (or geographic location) information (such as the current geographic location), rather than information related to time.

[0060] In addition, it can be appreciated that context information is generally only useful for a certain maximum number of conversation turns. As an example, it can be found that context information is only useful for three conversation turns (where the chatbot computing system 102 has received and responded to three utterances). After this, it can be found that the usefulness of the context information from the first utterance is relatively low. Therefore, in this case, the expiration criterion can be the number of conversation turns that have been processed within a given amount of time. Of course, it should be noted that the number of conversation turns used to identify usefulness can be any number, and three is provided only as an example.

[0061] exist Figure 6 In the illustrated example, the expiration date indicator generator 180 illustratively generates the expiration date indicator associated with the output 128 generated by the natural language processor 124 (before the output is fed back along with the next utterance as context information). The expiration date indicator is then compared to the expiration criteria or expiration date criteria to determine its relevance to the next sequence utterance.

[0062] In one example, the expiration criteria (or shelf life criteria) may be time-related criteria. In this case, the timestamp generator 196 generates a timestamp for each concept that will be fed back as contextual information. In examples where the shelf life or expiration criteria includes a number of conversation turns, the turn counter 198 generates a turn count indication that identifies the specific conversation turn (within the last predetermined amount of time) for which the output 128 was generated. Similarly, where the shelf life or expiration criteria includes location information, then the location stamp generator 200 generates a location stamp (e.g., based on information received from a GPS receiver or other location identifier) ​​that indicates the location of the user device 108 when the chat message 112 was received.

[0063] It should be noted that a shelf life indicator may be generated for each individual concept. It is also possible to generate a shelf life indicator for the output 128 as a whole.

[0064] The expiration criteria processor 182 then processes the shelf life indication (such as by comparing it to the expiration criteria), which is associated with or attached to different items of context information that are fed back into the natural language processor 124. This is done to determine the relevance of the context information to the next utterance. For example, the concept level logic 204 processes the shelf life information that corresponds to each concept identifier that is fed back as context information. Based on different utterances, each item of context information (e.g., each concept) can be generated at different times. At that time, a timestamp is generated for it. When a concept is fed back as an item of context, it is associated with the timestamp. When enough time has passed between the timestamps on a given concept, the item can be considered less relevant to the subsequent utterance. It can be removed from the context information that is fed back into the natural language processor 124. It can be assigned a lower relevance weight, etc.

[0065] The overall context logic 206 evaluates the shelf life information associated with the overall context (e.g., which may include multiple concepts from an utterance, or aggregated and carried forward over time from multiple utterances) that is fed back into the natural language processor 124. As an example, the entire context to be fed back into the natural language processor 124 may have been generated from an utterance that was input when the vehicle was at a location 100 miles from the current location. In this case, the context filtering / enhancement logic 170 may discard the entire context as irrelevant.

[0066] The context enhancement system 186 may illustratively interact with other context sources 168 to obtain other context information. Other context sources 168 may be specified or generated by a developer to provide certain behaviors to the chatbot computing system 102. The context filtering system 188 illustratively filters context items based on expiration (or shelf life) criteria or for other reasons. The context weighting system may weight different items of context based on the shelf life or expiration criteria of the context. For example, as the item of context grows over time (based on its timestamp), it may be weighted lower by the context weighting system 190 because it may not be as relevant as when it was first generated. Similarly, when the item of context is generated in the first dialogue turn, its weight may decrease with each subsequent dialogue turn because it may become less relevant. Similarly, when the item of context is generated at the first position, the weight of the context item may decrease as the user moves away from the particular position. These are just examples.

[0067] The context output generator 192 then generates an output to the natural language processor 124 indicating the filtered and / or enhanced context so that it can be considered with the next subsequent utterance.

[0068] Figure 7 is a flow diagram illustrating one example of the operation of the architecture 100 , in which the natural language processor 124 uses the knowledge model 158 to identify concepts in the input text 126 (given its contextual information).

[0069] In one example, the model 158 can be distributed so that different parts of the model can be created at different times by different systems and from different data sources and then combined. The combined model can then be used during runtime to build a runtime execution model. Similarly, the knowledge model 158 can be constructed in a non-hierarchical manner. While concepts are modeled using unique identifiers, namespaces can be used for relationship names.

[0070] First assume that the natural language processor 124 receives input text 126 to be evaluated and any unique identifiers representing context from previous utterances. This is done by Figure 7 The natural language processor 124 then matches the current input text 126 being evaluated with the labels in the knowledge model 158. This is indicated by box 214. As an example, the input text 126 will have language elements (such as words) that can be matched to the labels, and will have underlying concepts modeled by the knowledge model 158. The matching can be guided or informed by contextual information from previous utterances.

[0071] Given the context information, the natural language processor 124 identifies the current unique identifier of the concept that has the label that best matches the current text being evaluated. Again, as an example, assume that the knowledge model 158 includes a concept such as Figure 3 Suppose also that the concept "sadness" has a Figure 3A . Assume further that the input text 126 includes the word "unhappy". In this case, the knowledge model 158 will indicate that the input text matches the concept "sad", and therefore, the unique identifier for the concept "sad" will be displayed by the knowledge model 158. The current unique identifier that identifies the concept with a label that matches the current text being evaluated is represented by Figure 7 As indicated in box 216 in FIG.

[0072] The natural language processor 124 then generates an output 128 based on the current unique identifier identified for the input text 126 and based on the unique identifier representing the received context information. Figure 7 As indicated by block 218 in the flowchart of . Thus, it can be seen that based on the input text 126 (given its context), the knowledge model 158 can be used to display unique identifiers for different concepts. It can also be used to enhance contextual information by expanding to adjacent concepts in the knowledge model 158.

[0073] Figure 8 is a flow chart illustrating an example of the operation of the contextual filtering / enhancement logic 170 using a shelf life or expiration criteria and subsequent utterances in generating context to be fed back to the natural language processor 124. The natural language processor 124 first receives input text 126 from the robot controller 122. This is done by Figure 8 The block 230 in the flowchart of is indicated. It can be a textual representation of the speech as indicated by block 232, or another representation as indicated by block 234.

[0074] The natural language processor 124 then performs natural language processing to identify concepts in the utterance (given its context). This is indicated by box 236. It may do so using the knowledge model 158, as described by Figure 8 The context filtering / enhancement logic 170 then first associates a concept-level expiration date indicator with each identified concept before providing those unique identifiers (of the concepts) back to the natural language processor 124 along with the subsequent utterance. This is done by Figure 8 In one example, the timestamp generator 196 generates a time-based indicator 244 (such as a timestamp indicating when the concept identifier was identified). In another example, the location stamp generator 200 generates a location-based shelf life indicator 246 that indicates the location of the user device 108 when the chat message 112 being evaluated was received. In another example, the turn counter 198 generates a conversation turn-based indicator, as indicated by box 248, which indicates for which conversation turn the concept was identified. The shelf life indicator can also be shown in a variety of other ways, and this is shown by Figure 8 250 in the flowchart of FIG.

[0075] Once a shelf life indicator has been associated with each of the concepts identified based on the current utterance, any other existing context items may be added to the output 128 as context for the next utterance before the output 128 is fed back to the natural language processor 124. This is referred to as the overall context information that will be fed back with the next utterance. Adding existing context items to obtain the overall context is done by Figure 8 252 in the flowchart of FIG.

[0076] The shelf life indicator generator 180 then associates the overall shelf life indicator with the overall context. Figure 8 Again, this may be a timestamp 256, a position stamp 258, a stamp indicating the number of rounds, such as indicated by Figure 8or another overall shelf life indicator 262.

[0077] The expiration criteria processor 182 then compares the concept level expiration date indicator and the overall expiration date indicator to the expiration criteria to see if any contextual information should be filtered out (or down-weighted in) the overall context provided to the natural language processor 124 as the context for the next utterance. Figure 8 The concept level logic 204 compares the expiration indicator for each individual concept term to the expiration criteria to determine whether the individual concept should be removed from (or weighted down in) the overall context. The overall context logic 206 compares the expiration indicator for the overall context to determine whether the overall context is irrelevant, should have a reduced weight, or should be handled differently.

[0078] The form of the expiration criterion will depend on the form of the expiration date indicator. For example, where the expiration date indicator is a timestamp, then the expiration criterion may be an elapsed time criterion indicating that the concept associated with the timestamp is no longer relevant, has reduced relevance, etc. Filtering the context based on current time or elapsed time is indicated by box 266.

[0079] If the shelf life indicator is a location stamp, the expiration criteria processor 182 may compare the location stamp to the current location of the user device 108. Analyzing the expiration criteria based on the current location is indicated by block 268.

[0080] If the shelf life indicator is a dialog turn count indicator, then the expiration criterion may be the current turn count number. Evaluating the expiration criterion based on the current turn count number is indicated by block 270 .

[0081] It should be appreciated that the evaluation of the expiration criteria may also be performed in a variety of other ways. This is indicated by block 272.

[0082] The context filtering / enhancing logic 170 then filters or enhances the individual concepts and the overall context based on the comparison with the expiration criteria to obtain a filtered / enhanced context. Figure 8 For example, the context filtering system 188 may remove the expired concept from the context to be returned to the natural language processor 124 with the next subsequent utterance. Removing the expired concept is indicated by box 276. The context weighting system 190 may adjust the weights of the various concepts before they are provided back as context for the next utterance. Adjusting the weights of the context items (to be provided to the natural language processor 124 in the next evaluation) is indicated by box 276. Figure 8The context filtering / enhancement logic 170 may also filter and / or enhance the context in other ways, as indicated by block 278 in the flowchart of FIG. Figure 8 280 in the flowchart of FIG.

[0083] The context enhancement system 186 may enhance the context by obtaining additional context from other context sources 168. It may also enhance the context information in other ways.

[0084] The context output generator 192 then generates an output indicating the filtered / enhanced context information and provides the output to the natural language processor 124 so that it can be considered as context information for the next subsequent utterance. The filtered / enhanced context is returned to the natural language processor 124 along with the next utterance for evaluation, which is performed by Figure 8 282 in the flowchart of FIG.

[0085] It should be noted that the above discussion has described various systems, components and / or logical units. It should be understood that such systems, components and / or logical units can be composed of hardware items (such as, processors and associated memory, or other processing components, some of which are described below) that perform the functions associated with those systems, components and / or logical units. In addition, systems, components and / or logical units can be composed of software that is loaded into memory and then executed by processors or servers or other computing components, as described below. Systems, components and / or logical units can also be composed of different combinations of hardware, software, firmware, etc., some examples of which are described below. These are just some examples of different structures that can be used to constitute the systems, components and / or logical units described above. Other structures can also be used.

[0086] The discussion of the present invention refers to processors and servers. In one example, the processors and servers include a computer processor associated with memory and timing circuits, not shown separately. They are functional parts of the systems or devices to which they belong and are activated by them, and contribute to the functions of other components or items in those systems.

[0087] In addition, many user interface displays have been discussed. They can take a variety of different forms, and a variety of different user-actuated input mechanisms can be arranged thereon. For example, the user-actuated input mechanism can be a text box, a check box, an icon, a link, a drop-down menu, a search box, etc. They can also be actuated in various different ways. For example, they can be actuated using a click device (such as a trackball or a mouse). They can be actuated using hardware buttons, switches, game joysticks or keyboards, finger switches or finger pads, etc. They can also be actuated using virtual keyboards or other virtual actuators. In addition, when the screen displaying them is a touch-sensitive screen, they can be actuated using touch gestures. In addition, when the device displaying them has a voice recognition component, they can be actuated using voice commands.

[0088] A plurality of data storage devices have been discussed. It should be noted that each of them can be divided into a plurality of data storage devices. All can be local to the system accessing them, all can be remote, or some can be local and others can be remote. All of these configurations are contemplated herein.

[0089] In addition, the drawings show multiple blocks, with functions attributed to each block. It should be noted that fewer blocks can be used, so that the functions are performed by fewer components. In addition, more blocks can be used, and the functions are distributed among more components.

[0090] Fig. 9 500 is a block diagram of the architecture 100 shown in the previous figure, except that its elements are arranged in the cloud computing architecture 500. Cloud computing provides computing, software, data access and storage services that do not require end users to know the physical location or configuration of the system delivering the service. In various embodiments, cloud computing uses appropriate protocols to deliver services through a wide area network (such as the Internet). For example, cloud computing providers deliver applications through a wide area network, and they can be accessed through a web browser or any other computing component. The software or components of architecture 100 and corresponding data can be stored on a server at a remote location. The computing resources in a cloud computing environment can be fixed at a remote data center location, or they can be dispersed. The cloud computing infrastructure can deliver services through a shared data center, even if they appear as a single point of user access. Therefore, the components and functions described herein can be provided from a service provider at a remote location using a cloud computing architecture. Alternatively, they can be provided from a traditional server, or they can be installed directly or otherwise on a client device.

[0091] This description is intended to include both public and private cloud computing.Cloud computing (both public and private) provides a substantially seamless pool of resources, and a reduced need to manage and configure the underlying hardware infrastructure.

[0092] Public clouds are managed by vendors and typically support multiple customers using the same infrastructure. In addition, public clouds, as opposed to private clouds, free end users from managing hardware. Private clouds can be managed by the organization itself, and the infrastructure is typically not shared with other organizations. The organization also maintains the hardware to some extent, such as installation and repair.

[0093] exist Fig. 9 In the example shown in , some items are similar to those shown in previous figures, and they are numbered similarly. Fig. 9 Specifically illustrated is that computing systems 102 may be located in a cloud 502 (which may be public, private, or a combination of some public and other private). Thus, users 106 access those systems through the cloud 502 using user devices 108 .

[0094] Fig. 9 Another example of a cloud architecture is also described. Fig. 9 As shown, it is contemplated that some elements of computing system 102 may be provided in cloud 502, while others may not. As an example, data storage device 118 may be provided outside of cloud 502 and accessed through cloud 502. In another example, knowledge model 158 and other context sources 168 (or other items) may be outside of cloud 502. Regardless of where they are located, they may be directly accessed by device 108, accessed through a network (wide area network or local area network), they may be hosted at a remote site through a service, or they may be provided as a service through the cloud or accessed by a connection service residing in the cloud. All of these architectures are contemplated herein.

[0095] It should also be noted that the architecture 100 or a portion thereof can be disposed on a variety of different devices. Some of those devices include servers, desktop computers, laptop computers, tablet computers or other mobile devices such as palmtop computers, cellular phones, smart phones, multimedia players, personal digital assistants, etc.

[0096] Fig.10 is a simplified block diagram of one illustrative example of a handheld or mobile computing device that may be used as a handheld device 16 of a user or customer in which the present system (or a portion thereof) may be deployed. Figure 11-Figure 12 are examples of handheld or mobile devices.

[0097] Fig.10An overall block diagram of the components of a client's device 16 is provided, which can run components of a computing system 102 or a user device or interact with the architecture 100, or both. In the device 16, a communication link 13 is provided, which allows the handheld device to communicate with other computing devices and, in some examples, provides a channel for automatically receiving information (such as by scanning). Examples of the communication link 13 include an infrared port, a serial / USB port, a cable network port (such as an Ethernet port), and a wireless network port that allows communication through one or more communication protocols (including: General Packet Radio Service (GPRS), LTE, HSPA, HSPA+ and other 3G and 4G wireless protocols, 1Xrtt and Short Message Service, which are wireless services for providing cellular access to the network; and Wi-Fi protocols and Bluetooth protocols, which provide local wireless connections to the network).

[0098] In other examples, the application or system is received on a removable secure digital (SD) card connected to the SD card interface 15. The SD card interface 15 and communication link 13 communicate with a processor 17 (which may also be embodied as a processor or server from other figures) along a bus 19 that is also connected to a memory 21 and input / output (I / O) components 23, as well as a clock 25 and a local system 27.

[0099] In one embodiment, I / O components 23 are provided to support input and output operations. The I / O components 23 of various embodiments of device 16 may include input components such as buttons, touch sensors, multi-touch sensors, optical or video sensors, voice sensors, touch screens, proximity sensors, microphones, tilt sensors, and gravity switches, and output components such as display devices, speakers, and printer ports. Other I / O components 23 may also be used.

[0100] Clock 25 illustratively includes a real-time clock component that outputs time and date. It also illustratively provides a timing function for processor 17.

[0101] Position system 27 illustratively includes components that output the current geographic location of device 16. This may include, for example, a global positioning system (GPS) receiver, a LORAN system, a dead reckoning system, a cellular triangulation positioning system, or other positioning systems. It may also include, for example, mapping software or navigation software that generates desired maps, navigation routes, and other geographic functions.

[0102] The memory 21 stores an operating system 29, network settings 31, applications 33, application configuration settings 35, data storage 37, communication drivers 39, and communication configuration settings 41. The memory 21 may include all types of tangible volatile and non-volatile computer-readable storage devices. It may also include computer storage media (described below). The memory 21 stores computer-readable instructions that, when executed by the processor 17, cause the processor to perform computer-implemented steps or functions in accordance with the instructions. Similarly, the device 16 may have a client system 24 that may run various applications or embody part or all of the architecture 100. The processor 17 may also be activated by other components to support their functions.

[0103] Examples of network settings 31 include things such as proxy information, Internet connection information, and mappings. Application configuration settings 35 include settings that customize an application to a specific enterprise or user. Communication configuration settings 41 provide parameters for communicating with other computers and include items such as GPRS parameters, SMS parameters, connection user names and passwords.

[0104] The applications 33 may be applications that have been previously stored on the device 16 or that are installed during use, but these may also be part of the operating system 29 or hosted externally to the device 16 .

[0105] Fig.11 Device 16 is shown as an example of a tablet computer 600. Fig.11 In the embodiment of the present invention, computer 600 is shown with a user interface display screen 602. Screen 602 can be a touch screen (so that touch gestures from a user's fingers can be used to interact with the application) or a stylus-enabled interface that receives input from a stylus or stylus. It can also use an on-screen virtual keyboard. Of course, it is also possible to attach to a keyboard or other user input device through an appropriate attachment mechanism (such as a wireless link or a USB port). Computer 600 can also illustratively receive voice input.

[0106] Fig.12 A device is shown, which may be a smartphone 71. Smartphone 71 has a touch-sensitive display 73 that displays icons or tiles or other user input mechanisms 75. Mechanisms 75 may be used by a user to run applications, make calls, perform data transfer operations, etc. In general, smartphone 71 is built on a mobile operating system and provides more advanced computing capabilities and connectivity than feature phones.

[0107] Note that other forms of device 16 are possible.

[0108] Fig.13 is an example of a computing environment in which architecture 100 or a portion thereof (as an example) may be deployed. Fig.13 , an exemplary system for implementing some embodiments includes a general purpose computing device in the form of a computer 810. Components of the computer 810 may include, but are not limited to, a processing unit 820 (which may include a processor or server from the previous figures), a system memory 830, and a system bus 821 that couples various system components (including the system memory) to the processing unit 820. The system bus 821 can be any of several types of bus architectures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus (also known as a Mezzanine bus). The memory and programs described with respect to the previous figures may be deployed on Fig.13 in the corresponding part of .

[0109] Computer 810 generally includes various computer-readable media. Computer-readable media can be any available media that can be accessed by computer 810, and include both volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, computer-readable media can include computer storage media and communication media. Computer storage media is different from and does not include modulated data signals or carrier waves. It includes hardware storage media, including both volatile and non-volatile, removable and non-removable media implemented by any method or technology for information (such as, computer-readable instructions, data structures, program modules or other data) storage. Computer storage media include but are not limited to RAM, ROM, EEPROM, flash memory or other storage technology, CD-ROM, digital versatile disc (DVD) or other optical disk storage device, cassette, tape, disk storage device or other magnetic storage device, or any other medium that can be used to store desired information and can be accessed by computer 810. Communication media usually specifically implement computer-readable instructions, data structures, program modules or other data in a transmission mechanism, and include any information delivery medium. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Any combination of the above may also be included within the scope of computer-readable media.

[0110] The system memory 830 includes computer storage media in the form of volatile and / or nonvolatile memory, such as read-only memory (ROM) 831 and random access memory (RAM) 832. A basic input / output system 833 (BIOS), containing the basic routines that help transfer information between elements within the computer 810 (such as during startup), is typically stored in ROM 831. RAM 832 typically contains data and / or program modules that are immediately accessible to and / or currently being operated on by the processing unit 820. By way of example and not limitation, Fig.13 Operating system 834 , application programs 835 , other program modules 836 , and program data 837 are illustrated.

[0111] The computer 810 may also include other removable / non-removable volatile / non-volatile computer storage media. For example only, Fig.13 A hard disk drive 841 is illustrated that reads from or writes to a non-removable, non-volatile magnetic medium, and an optical disk drive 855 that reads from or writes to a removable, non-volatile optical disk 856 (such as a CD ROM or other optical media). Other removable / non-removable, volatile / non-volatile computer storage media that may be used with the exemplary operating environment include, but are not limited to, magnetic cassettes, flash memory cards, digital versatile disks, digital video tapes, solid-state RAM, solid-state ROM, and the like. The hard disk drive 841 is typically connected to the system bus 821 via a non-removable memory interface (such as interface 840), and the optical disk drive 855 is typically connected to the system bus 821 via a removable memory interface (such as interface 850).

[0112] Alternatively or additionally, the functions described herein may be at least partially performed by one or more hardware logic components. For example, but not by way of limitation, illustrative types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standardized products (ASSPs), systems on chip (SOCs), complex programmable logic devices (CPLDs), and the like.

[0113] Discussed above and in Fig.13 The drives and their associated computer storage media shown in the figure provide storage of computer readable instructions, data structures, program modules and other data for the computer 810. For example, in Fig.1384, hard disk drive 84 is illustrated as storing operating system 844, application programs 845, other program modules 846, and program data 847. It should be noted that these components may be the same as or different from operating system 834, application programs 835, other program modules 836, and program data 837. Operating system 844, application programs 845, other program modules 846, and program data 847 are given different numbers here to illustrate that at least they are different copies.

[0114] The user can enter commands and information to the computer 810 through input devices such as a keyboard 862, a microphone 863, and a pointing device 861 (such as a mouse, a trackball, or a touch pad). Other input devices (not shown) may include a game joystick, a game pad, an antenna receiver, a scanner, and the like. These and other input devices are often connected to the processing unit 820 through a user input interface 860 coupled to the system bus, but may be connected through other interfaces and bus structures, such as a parallel port, a game port, or a universal serial bus (USB). A visual display 891 or other type of display device is also connected to the system bus 821 via an interface (such as a video interface 890). In addition to the monitor, the computer may also include other peripheral output devices, such as speakers 897 and a printer 896, which may be connected through an output peripheral interface 895.

[0115] The computer 810 operates in a networked environment using logical connections to one or more remote computers, such as a remote computer 880. The remote computer 880 may be a personal computer, handheld device, server, router, network PC, peer device or other public network node, and typically includes many or all of the elements described above with respect to the computer 810. Fig.13 The logical connections depicted in the diagram include a local area network (LAN) 871 and a wide area network (WAN) 873, but other networks may also be included. Such networking environments are common in offices, enterprise-wide computer networks, intranets, and the Internet.

[0116] When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873 (such as the Internet). The modem 872, which may be internal or external, may be connected to the system bus 821 via the user input interface 860 or other appropriate mechanism. In a networking environment, program modules depicted with respect to the computer 810 or portions thereof may be stored in the remote memory storage device. By way of example and not limitation, Fig.13Remote application programs 885 are illustrated as residing on remote computer 880. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

[0117] It should also be noted that the different examples described herein can be combined in different ways. That is, a portion of one or more examples can be combined with a portion of one or more other examples. All of this is contemplated herein.

[0118] Example 1 is a computing system comprising:

[0119] a natural language processor that receives text input and receives context information, the text input indicating a given received chat message, the context information being identified based on previously received chat messages received prior to the given received chat message, the natural language processor generating an NLP output based on the text input and the context information, and providing the NLP output back to the natural language processor as context information for a subsequent received chat message that is received after the given received chat message; and

[0120] A robot controller receives the NLP output from the natural language processor and generates a responsive output based on the NLP output.

[0121] Example 2 is the computing system of any or all of the previous examples, wherein the robot controller is configured to: based on the NLP output, generate a response chat message as a response output in response to a given received chat message.

[0122] Example 3 is the computing system of any or all of the previous examples, wherein the robotic controller is configured to generate a responsive output as a command for performing an action based on the NLP output.

[0123] Example 4 is the computing system of any or all of the previous examples, wherein the natural language processor is configured to generate NLP output by identifying concepts in a given received chat message.

[0124] Example 5 is the computing system of any or all of the previous examples, wherein the natural language processor is configured to generate NLP output by outputting a unique identifier corresponding to a concept, the unique identifier uniquely identifying the concept relative to other concepts identifiable by the natural language processor.

[0125] Example 6 is the computing system of any or all of the preceding examples, and further comprising:

[0126] Context enhancement logic, the context enhancement logic is configured to: modify the NLP output to obtain context information.

[0127] Example 7 is the computing system of any or all of the previous examples, wherein the context enhancement logic is configured to: modify the NLP output by adding additional context information from a context source in addition to the NLP output, the context source providing the additional context information.

[0128] Example 8 is the computing system of any or all of the preceding examples, and further comprising:

[0129] The context filtering logic is configured to filter the NLP output to obtain context information.

[0130] Example 9 is the computing system of any or all of the previous examples, wherein the context filtering logic filters the unique identifier based on the NLP output, the unique identifier identifying the given concept based on whether the given concept is relevant to a subsequently received chat message.

[0131] Example 10 is a computer-implemented method comprising:

[0132] receiving, at a natural language processor, text input and context information, the text input indicating a given received chat message, the context information being identified based on previously received chat messages received prior to the given received chat message;

[0133] Use natural language processors to generate NLP output based on text input and contextual information;

[0134] providing the NLP output back to the natural language processor as context information for a subsequent received chat message that is received after the given received chat message; and

[0135] Generate a responsive output based on the NLP output.

[0136] Example 11 is a computer-implemented method of any or all of the previous examples, wherein generating a responsive output comprises:

[0137] Based on the NLP output, a response chat message is generated in response to a given received chat message.

[0138] Example 12 is a computer-implemented method of any or all of the previous examples, wherein generating a responsive output comprises:

[0139] Based on the NLP output, commands are generated for performing actions.

[0140] Example 13 is a computer-implemented method of any or all of the previous examples, wherein generating the NLP output comprises:

[0141] identifying concepts in a given received chat message; and

[0142] Outputs the concept identifier that indicates the concept.

[0143] Example 14 is the computer-implemented method of any or all of the previous examples, wherein outputting the concept identifier comprises:

[0144] A unique identifier corresponding to the concept is output, the unique identifier uniquely identifying the concept relative to other concepts identifiable by the natural language processor.

[0145] Example 15 is the computer-implemented method of any or all of the previous examples, wherein the NLP output is provided back to the natural language processor as context information, comprising:

[0146] Modify NLP output to obtain contextual information.

[0147] Example 16 is a computer-implemented method of any or all of the previous examples, wherein modifying the NLP output comprises:

[0148] In addition to the NLP output, additional context information from a context source is added, which provides additional context information.

[0149] Example 17 is a computer-implemented method of any or all of the previous examples, wherein modifying the NLP output comprises:

[0150] Filter NLP output for contextual information.

[0151] Example 18 is a computer-implemented method of any or all of the previous examples, wherein filtering the NLP output comprises:

[0152] A unique identifier is filtered based on the NLP output, the unique identifier identifying a given concept based on whether the given concept is relevant to a subsequently received chat message.

[0153] Example 19 is a chatbot computing system, comprising:

[0154] processor;

[0155] a robot controller implemented by a processor, the robot controller receiving a first chat message; and

[0156] A natural language processor NLP, at an NLP input, the NLP receives a chat message input indicating a first chat message, identifies a concept in the first chat message, generates an NLP output indicating the identified concept, and returns the NLP output to the robot controller for a response output generated in response to the first chat message, the natural language processor feeds the NLP output as context information to the NLP input together with feeding a subsequent received chat message input to the NLP input, the subsequent received chat message input indicating a subsequent received chat message received after the first chat message, the natural language processor generates a subsequent output, the subsequent output indicating a concept identified based on the context information and the indication of the subsequent received chat message.

[0157] Example 20 is a chatbot computing system of any or all of the previous examples, wherein the natural language processor is configured to: generate NLP output by outputting a unique identifier corresponding to the identified concept, the unique identifier uniquely identifying the concept relative to other concepts identifiable by the natural language processor.

[0158] Although the subject matter of the present invention has been described in language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are disclosed as exemplary forms of implementing the claims.

Claims

1. A computing system comprising: The natural language processor is configured to: receiving a first text input indicating a first chat message; identifying a set of concepts in the first chat message based on the first text input; Obtaining a set of unique identifiers, each particular unique identifier in the set of unique identifiers corresponding to a concept in the set of concepts and uniquely identifying the corresponding concept relative to other concepts identifiable by the natural language processor; as well as generating a first natural language processor (NLP) output, the first natural language processor output comprising the set of unique identifiers identifying the set of concepts; as well as associating a contextual indicator with the set of unique identifiers, the contextual indicator comprising at least one of a temporal criterion or a geographic criterion; Context filters are configured to: determining, based on a comparison of the contextual indicator with a filter criterion corresponding to the second chat message, a relevance of the set of concepts to the second chat message received subsequently to the first chat message; filtering the set of unique identifiers based on the determined relevance to obtain filtered contextual information, wherein the natural language processor is configured to: receiving the filtered context information and the second chat message received subsequently to the first chat message; as well as generating a second NLP output based on the filtered contextual information and a second text input indicative of the second chat message; as well as A robot controller is configured to receive the second NLP output from the natural language processor and generate a response output based on the second NLP output.

2. The computing system of claim 1, wherein: The natural language processor is configured to generate the first NLP output based on previous context information identified from a previously received chat message, the previously received chat message being received prior to the first chat message, and The robot controller is configured to generate a response chat message as the response output in response to the second chat message based on the second NLP output.

3. The computing system of claim 1, wherein the robotic controller is configured to generate the response output as a command for performing an action based on the second NLP output. The computing system of claim 1 , wherein the screening criteria include an expiration criterion that represents a duration of a concept as context information.

5. The computing system of claim 4, wherein the contextual indicator comprises a time criterion associated with the first chat message.

6. The computing system of claim 5, wherein the time criterion represents a conversation turn, and the context filter is configured to filter the set of unique identifiers based on a number of conversation turns between the first chat message and the second chat message.

7. The computing system of claim 5, wherein the time criteria represents a threshold time period, and the context filter is configured to filter the set of unique identifiers based on an amount of time between the first chat message and the second chat message.

8. The computing system of claim 4, wherein the contextual indicator comprises a location criterion associated with the first chat message.

9. A computing system according to claim 8, wherein the location criteria represents a first user device location associated with the first chat message, and the context filter is configured to filter the set of unique identifiers based on a difference between the first user device location and a second user device location associated with the second chat message.

10. A computer-implemented method comprising: At a natural language processor (NLP), receiving a first text input indicating a received first chat message; Generating, using the natural language processor, a first NLP output based on the first text input, wherein generating the first NLP output comprises: identifying concepts in the first chat message; and outputting a concept identifier indicating the concept; generating contextual screening criteria based on the first text input; modifying the first NLP output by adding, in addition to the first NLP output and the concept identifier, the additional context information from a context source providing the additional context information; filtering the first NLP output based on the contextual filtering criteria to obtain filtered contextual information; receiving a second chat message subsequent to the first chat message; generating a second NLP output based on the filtered contextual information and a second text input indicative of the second chat message; and A response output is generated based on the second NLP output.

11. The computer-implemented method of claim 10, wherein: Generating the first NLP output includes: generating a first output based on previous context information identified for a previously received chat message, the previously received chat message being received prior to the first chat message; and Generating the response output includes: Based on the second NLP output, a response chat message is generated in response to the second chat message.

12. The computer-implemented method of claim 10, wherein generating the responsive output comprises: Based on the second NLP output, a command for performing an action is generated.

13. The computer-implemented method of claim 10, wherein outputting a concept identifier comprises: A unique identifier corresponding to the concept is output, the unique identifier uniquely identifying the concept relative to other concepts identifiable by the natural language processor.

14. The computer-implemented method of claim 10, wherein the context source is external to the natural language processor.

15. The computer-implemented method of claim 10, wherein modifying the first NLP output comprises: The first NLP output is filtered to obtain the contextual information.

16. The computer-implemented method of claim 15, wherein screening the first NLP output comprises: A unique identifier identifying a given concept is filtered from the first NLP output based on whether the given concept is related to the second chat message.

17. A computing system comprising: at least one processor; as well as a memory storing instructions executable by the at least one processor, wherein when the instructions are executed, the computing system: At a natural language processor (NLP), receiving a first chat message input indicating a first chat message; generating, with the natural language processor, a first NLP output based on the first chat message input, wherein the first NLP output includes concept identifiers indicating one or more concepts in the first chat message; generating contextual filtering criteria based on the first chat message input; modifying the first NLP output by adding, in addition to the first NLP output and the concept identifier, the additional context information from a context source providing the additional context information; filtering the first NLP output based on the contextual filtering criteria to obtain filtered contextual information; receiving a second chat message input indicating a second chat message subsequent to the first chat message; generating a second NLP output based on the filtered contextual information and the second chat message input; as well as A response output is generated based on the second NLP output.

18. The computing system of claim 17, wherein when the instructions are executed, the computing system is caused to: The first NLP output is generated by outputting a unique identifier corresponding to a particular concept, the unique identifier uniquely identifying the particular concept relative to other concepts identifiable by the natural language processor.

19. The computing system of claim 18, wherein when the instructions are executed, the computing system is caused to: The unique identifier is filtered based on whether the specific concept is related to the second chat message.

Citation Information

Patent Citations

  • Man-machine multi-round dialog model construction method based on scene contexts

    CN108170764A

  • Method and electronic device for providing contents based on natural language understanding

    KR1020180113312A