GB2574214A - Method and apparatus for engaging with a user in a conversation flow - Google Patents

Method and apparatus for engaging with a user in a conversation flow Download PDF

Info

Publication number
GB2574214A
GB2574214A GB1808772.6A GB201808772A GB2574214A GB 2574214 A GB2574214 A GB 2574214A GB 201808772 A GB201808772 A GB 201808772A GB 2574214 A GB2574214 A GB 2574214A
Authority
GB
United Kingdom
Prior art keywords
conversation flow
flow state
data processing
user
user intent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB1808772.6A
Other versions
GB201808772D0 (en
Inventor
Jack Mohammed
Wood Oisin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Corp Pop Ltd
Original Assignee
Corp Pop Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Corp Pop Ltd filed Critical Corp Pop Ltd
Priority to GB1808772.6A priority Critical patent/GB2574214A/en
Publication of GB201808772D0 publication Critical patent/GB201808772D0/en
Publication of GB2574214A publication Critical patent/GB2574214A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • H04L51/02Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages with automatic reactions or user delegation, e.g. automatic replies or chatbot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Real-time or near real-time messaging, e.g. instant messaging [IM] interacting with other applications or services

Abstract

A method and data processing apparatus to engage a user in a conversation flow. The method comprises receiving a user intent while in a first conversation flow state 101. The first conversation flow state defines an expected user intent that the data processing apparatus expects to receive while in the first conversation flow state. The first conversation flow state also defines a second conversation flow state linked to the expected user intent. If the received user intent corresponds to the expected user intent, a response is generated according to the second conversation flow state 102 and the conversation flow advanced by transitioning to the second conversation flow state 103. Sentiment scores may be applied to the conversation flows and these may be modified by sentiment values that are derived from the received user intent. The data processing apparatus may be an automated chat device such as a chat bot, a dialogue system, an interactive agent or some other conversational entity.

Description

[0001] The present invention relates to a method and apparatus for engaging with a user in a conversation flow, and in particular relates to a method and apparatus that generates responses according to conversation flow states.

[0002] Data processing apparatuses providing chatbot messaging applications are known. Such chatbots are designed with the intent of simulating intelligent conversation with a human, often with the intent of providing a useful end result to the conversation such as the performance of a certain action.

[0003] Typically chatbots will receive a user message in an auditory or textual form and will process the message to determine an intent underlying the message. The chatbot will then use its knowledge base to determine an appropriate response to the intent of the message. The knowledge base may have been developed through an interactive training approach, such as through the use of recurrent neural networks.

[0004] It is desirable to improve the performance of existing data processing apparatuses providing chatbot messaging applications such as by providing more realistic, nuanced, or helpful conversations.

[0005] According to the present invention there is provided an apparatus and method as set forth in the appended claims. Other features of the invention will be apparent from the dependent claims, and the description which follows.

[0006] According to a first aspect of the invention, there is provided a method of engaging with a user in a conversation flow using a data processing apparatus. The method comprises receiving a user intent while in a first conversation flow state. The user intent is obtained from a message received from the user while the data processing apparatus is in the first conversation flow state. The first conversation flow state defines an expected user intent that the data processing apparatus expects to receive while in the first conversation flow state. The first conversation flow state defines a second conversation flow state linked to the expected user intent. If the received user intent corresponds to the expected user intent, the method comprises: generating a response to the user intent according to the second conversation flow state; and advancing the conversation flow by transitioning to the second conversation flow state.

[0007] The data processing apparatus is thus able to provide a chatbot messaging application which is able to engage the user in a conversation flow. However, the present invention does not just relate to generating a response based on the intent of a message received from a user. Instead, the present invention generates a response according to the intent of the message and the current conversation flow state that the data processing apparatus is in. In other words, the conversation flow state that the data processing apparatus is currently in determines the conversation flow state that the data processing apparatus should use to generate a response when a particular user intent is received from a user. In this way, the data processing apparatus does not reply robotically in the same way (albeit perhaps with different wording) when messages with the same user intent are repeatedly received. Instead, the data processing apparatus is able to shift the conversation in a way which resembles or mimics the way in which a human would shift such a conversation.

[0008] The generated response to the user intent according to the second conversation flow state may be different to a response generated for the user intent according to the first conversation flow state. That is, the response to the same user intent differs based on the conversation flow state the data processing apparatus is currently in.

[0009] The first and second conversation flow states may represent conversational frames of minds for the data processing apparatus. In this way, responses generated while in the first conversation flow state may represent a different frame of mind of the data processing apparatus to responses generated while in the second conversation flow state.

[0010] The first conversation flow state may define a plurality of expected user intents that the data processing apparatus expects to receive while in the first conversation flow state. The first conversation flow state may define, for each of the plurality of expected user intents, a second conversation flow state linked to the expected user intent. The data processing apparatus may thus be able to generate a response according to a certain one of the second conversation flow states if an expected user intent linked to the certain second conversation flow state is received. Some of the second conversation flow states may be the same. That is, two or more different expected user intents may be linked to the same second conversation flow states. Some or all of the second conversation flow states may be different.

[0011] The second conversation flow state may define an expected user intent that the data processing apparatus expects to receive while in the second conversation flow state. The second conversation flow state may define a third conversation flow state linked to the expected user intent. In this way, the data processing apparatus is able to generate a response according to the third conversation flow state if the expected user intent is received.

[0012] The second conversation flow state may define a plurality of expected user intents that the data processing apparatus expects to receive while in the second conversation flow state. The second conversation flow state may define, for each of the plurality of expected user intents, a third conversation flow state linked to the expected user intent. The data processing apparatus may thus be able to generate a response according to a certain one of the third conversation flow states if an expected user intent linked to the certain third conversation flow state is received. Some of the third conversation flow states may be the same. That is, two or more different expected user intents may be linked to the same third conversation flow state. Some or all of the third conversation flow states may be different.

[0013] The method may further comprise receiving a user intent while in the second conversation flow state. The user intent may be obtained from a message received from the user while the data processing apparatus is in the second conversation flow state. If the received user intent corresponds to the expected user intent, the method may comprise generating a response to the user intent according to the third conversation flow state; and may comprise advancing the conversation flow by transitioning to the third conversation flow state.

[0014] The third conversation flow state may define an expected user intent that the data processing apparatus expects to receive while in the third conversation flow state. The third conversation flow state may define a fourth conversation flow state linked to the expected user intent. This means that the data processing apparatus may be able to generate a response according to the fourth conversation flow state if the expected user intent is received.

[0015] The method may comprise transitioning between a plurality of conversation flow states according to received user intents.

[0016] The first conversation flow state may further comprise a sentiment value for the expected user intent. If the received user intent corresponds to the expected user intent, the method may further comprise modifying a sentiment score for the conversation flow by the sentiment value. In this way, the data processing apparatus is able to assess the sentiment/ emotional sate of the user, and thus provides the data processing apparatus with a degree of emotional intelligence. This assessment is not made solely based on the message input by the user, but instead relate to the choices may be the user within the conversation. That is, the choice of intent by the user when the data processing apparatus is in a particular conversation flow state is used to determine the sentiment score for the conversation flow.

[0017] The method may comprise transitioning between a plurality of conversation flow states according to received user intents. Each of the plurality of conversation flow states may define one or a plurality of expected user intents that the data processing apparatus expects to receive while in the conversation flow state, a sentiment value for each of the expected user intents, and, for each of the expected user intents, a conversation flow state linked to the expected user intent.

[0018] The method may comprise receiving the message from the user while the data processing apparatus is in the first conversation flow state. The method may comprise processing the message to determine the user intent. That is, the message may be parsed, and rules may be used to determine the intent of the message. The skilled person will appreciate that there are a number of natural language understanding process that may be used to process a message so as to determine an intent behind a message.

[0019] Generating the response according to the second conversation flow state may comprise generating the response that matches an intent of the second conversation flow state. The response may be a natural language response such as message. The message may comprise a sentence or group of sentences provided to the user. The response may be a reply to a question from the user or a question to the user. The question may be a counterquestion in response to a question received from the user. The response may be an action performed by the data processing apparatus. The action may relate to adding an event to a calendar of a user. The action may relate to obtaining the result to a medical-related question. The response may be a combination of a message and an action. The response or an indication of the response may be displayed on a display of the data processing apparatus or a display apparatus communicatively coupled to the data processing apparatus. The response or an indication of the response may be output as a auditory signal such as via a speaker of the data processing apparatus, ora speaker associated with the data processing apparatus.

[0020] Generating the response may comprise accessing a knowledge base associated with the second conversation flow state, and using the knowledge base to generate the response. The knowledge base may comprise a pre-generated response or a plurality of pre-generated responses. Generating the response may comprise obtaining the pre-generated response from the knowledge base. The pre-generated responses may be generated by a human operator in advance. In the same or other examples, the pre-generated responses may be learnt by the data processing apparatus such as from previous conversation flows [0021] Generating the response may comprise generating the response in an ad hoc manner. That is, the response may not be pre-generated, and may instead be generating from scratch in response to receiving the user intent. The message may be generated according the knowledge base associated with the second conversation flow state.

[0022] Generating the response may comprise generating part of the response in an ad hoc manner and generating part of the response from a response that was pre-generated for the second conversation flow state.

[0023] Each of the conversation flow states may have an associated knowledge base used for generating a response.

[0024] The knowledge base or bases may be stored in a memory of the data processing apparatus. That is, for each conversation flow state, the data processing apparatus may store an associated knowledge base for generating responses, optionally in a pre-determined or an ad hoc manner.

[0025] The first conversation flow state and the second conversation flow state may be stored as a set of linked-rules in the data processing apparatus.

[0026] The data processing apparatus may be a mobile device, a portable electronic device, an embedded device, a vehicle computing system (e.g., a vehicle navigation or media management system), a desktop computer, a laptop computer, a table computer, a wearable device, a workstation, or any other data processing system or computing device.

[0027] According to a second aspect of the invention, there is provided a computer readable medium having instructions recorded thereon which, when executed by a data processing apparatus, cause the data processing apparatus to perform the method as described above in relation to the first aspect of the invention.

[0028] According to a third aspect of the invention, there is provided a data processing apparatus for engaging with a user in a conversation flow. The data processing apparatus comprises a processor configured to perform the method as described above in relation to the first aspect of the invention.

[0029] Although a few preferred embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that various changes and modifications might be made without departing from the scope of the invention, as defined in the appended claims.

[0030] For a better understanding of the invention, and to show how embodiments of the same may be carried into effect, reference will now be made, by way of example only, to the accompanying diagrammatic drawings in which:

[0031] Figure 1 shows a process diagram for engaging a user in a conversation flow according to aspects of the present invention;

[0032] Figure 2 shows a network diagram of linked conversation flow states according to aspects of the present invention;

[0033] Figure 3 shows another network diagram of linked conversation flow states according to aspects of the present invention; and [0034] Figure 4 shows a simplified schematic diagram of an example data processing apparatus according to aspects of the present invention.

[0035] Referring to Figure 1, there is shown a process diagram for a method of engaging a user in a conversation flow according to an aspect of the present invention. The method is performed by a data processing apparatus 400 (Figure 4).

[0036] In step 101, the data processing apparatus receives a user intent while in a first conversation flow state. The user intent is obtained from a message received from the user while the data processing apparatus is in the first conversation flow state. The first conversation flow state defines an expected user intent that the data processing apparatus expects to receive while in the first conversation flow state. In addition, the first conversation flow state defines a second conversation flow state that is linked to the expected user intent. The data processing apparatus is able to generate a response according to the second conversation flow state if the expected user intent is received.

[0037] In step 102, if the user intent corresponds to the expected user intent, the method comprises generating a response to the user intent according to the second conversation flow state.

[0038] In step 103, the method comprises advancing the conversation flow by transitioning to the second conversation flow state.

[0039] It will be appreciated that this method may be repeated, that is another user intent may be received while in the second conversation flow state. For example, the second conversation flow state defines an expected user intent that the data processing apparatus expects to receive while in the second conversation flow state. In addition, the second conversation flow state defines a third conversation flow state linked to the expected user intent. The data processing apparatus is thus able to generate a response according to the third conversation flow state if the expected user intent is received.

[0040] Referring to Figure 2 there is shown a network diagram outlining different conversation flows that may be generated using the method according to aspects of the present invention. The network diagram comprises four conversation flow states 201,203, 205, 207. Each of the conversation flow states 201, 203, 205, 207 represents a different frame of mind for the data processing apparatus.

[0041] Figure 2 further shows a series of arrows that represent how the data processing apparatus transitions between different conversation flow states according to the particular user intent received while in a certain conversation flow state. For example, while in the “Greet” conversation flow state 201, the data processing apparatus may transition to a “qConcern” conversation flow state 203 if a “Negative” 202a or “Sensitive” 202b user intent is received. Further, each transition has a numerical value associated with it. The numerical value is a sentiment value. For example, the sentiment value associated with the “Negative” 202a user intent while in the “Greet” conversation flow state is “-1”. This indicates that receiving a “Negative” 202a user intent while in the “Greet” conversation flow state has a negative sentiment value.

[0042] In the example of Figure 2, the “Greet” conversation flow state 201 may be defined by the following table:

[0043] [Table 1]

Expected user intent Linked conversation flow state Sentiment Value “?” (204a) “InitiateConvoO” (207) 0 “Negative” (202a) “qConcern” (203) -1 “Sensitive” (202b) “qConcern” (203) -1 “Greet” (204b) “qFeeling” (205) 0

[0044] The “Greet” conversation flow state may be stored in a memory of the data processing apparatus in a look-up table of similar structure to Table 1 above. That is, all of the conversation flow states may be stored as a set of linked rules in the memory of the data processing apparatus.

[0045] The “Greet” conversation flow state 201 defines four expected user intents and a linked conversation flow state for each of these expected user intents. The first expected user intent is “?” 204a which signifies any other user intent to the “Negative” 202a, “Sensitive” 202b and “Greet” 204b user intents. In this way, the “Greet” conversation flow state 201 of this example is able to generate a response and transition to another conversation flow state for any received user intent. Thus, one of the expected user intents may be a catch-all intent to catch any other, e.g. uncategorised, received intent.

[0046] If the “?” 204a user intent is received while in the “Greet” conversation flow state 201, then the data processing apparatus generates a response according to the “InitiateConvoO” conversation flow state 207 and transitions to the “InitiateConvoO” conversation flow state 207. Here, “InitiateConvoO” conversation flow state 207 denotes that the data processing apparatus should perform an action of attempting to initiate a conversation with the user, such as by posing a question or providing an anecdote to the user. In particular, the data processing apparatus uses a knowledge base associated with the “InitiateConvoO” conversation flow state 207 to generate a response. The response may be pre-generated and stored in the “InitiateConvoO” knowledge base.

[0047] If the “Negative” 202a or “Sensitive” 202b user intent is received while in the “Greet” conversation flow state 201, then the data processing apparatus generates a response according to the conversation flow state “qConcern” 203 and transitions to the “qConcern” conversation flow state 203. Here, the “qConcern” conversation flow state 203 denotes that the data processing apparatus should be in a concerned frame of mind, and should generate a response reflecting a concerned frame of mind. For example, the data processing apparatus may respond with a question reflecting concern such as (“are you okay?”) or (“is everything alright?”). The data processing apparatus uses a knowledge base associated with the “qConcern” conversation flow state 203 to generate a response. The response may be pregenerated and stored in the “qConcern” knowledge base.

[0048] If the “Greet” user intent 204b is received while in the “Greet” conversation flow state 201, then the data processing apparatus generates a response according to the conversation flow state “qFeeling” 205 and transitions to the “qFeeling” conversation flow state 205. Here, “qFeeling” 205 denotes that the data processing apparatus should be in frame of mind of desiring to know the current mind set of the user, and should generate a corresponding response. For example, the data processing apparatus may respond with a question inquiring into the current mind set of the user, such as “How are you?” The data processing apparatus uses a knowledge base associated with the “qFeeling” conversation flow state 205 to generate a response. The response may be pre-generated and stored in the “qFeeling” knowledge base.

[0049] Significantly, by transitioning to the “qFeeling” conversation flow state 205, the data processing apparatus will now generate a response with a different intent/meaning if the “Greet” 206b user intent is again received. In particular, in this example, the “qFeeling” conversation flow state 205 may be defined by the following table:

[0050] [Table 2]

Expected user intent Linked conversation flow state Sentiment Value “Negative” (206a) “qConcern” (203) -1 “Greet” (206b) “InitiateConvoO” (207) -1

[0051] Thus, if the “Greet” 206b user intent is received while in the “qFeeling” 205 conversation flow state, the data processing apparatus generates a response according to the conversation flow state “InitiateConvoO” 207 and transitions to the “InitiateConvoO” conversation flow state 207. This means that if a user repeatedly messages the data processing apparatus with a “Greet” intent, the data processing apparatus does not remain trapped in a conversation loop. That is, the data processing apparatus does not repeatedly reply with a “how are you?” or similar message every time the user inputs a message with a “Greet” intent. In this way, the data processing apparatus is able to respond differently in different contexts to thus provide a conversation flow which is more similar to a natural conversation.

[0052] By way of example, if while in the “Greet” conversation flow state 201, the data processing apparatus receives the user message “Go away!”, then the data processing apparatus may determine that the user message has a “Negative” intent 202a. The “Greet” conversation flow state 201 defines that if a “Negative” intent 202a is received then a response should be generated according to the “qConcern” conversation flow state 203. Because of this, the data processing apparatus generates a reply with a “qConcern” 203 intent such as “are you okay?”. This conversation or branch of a conversation will have been given a sentiment score of “-1” due to the sentiment value associated with receiving a “Negative” intent 202a while in the “Greet” conversation flow state 201.

[0053] By way of another example, if while in the “Greet” conversation flow state 201, the data processing apparatus receives the user message “Hello”, then the data processing apparatus may determine that the user message has a “Greet” 204b intent. The “Greet” conversation flow state 201 defines that if a “Greet” 204b intent is received then a response should be generated according to the “qFeeling” conversation flow state 205. Because of this, the data processing apparatus generates a reply with a “qFeeling” 205 intent such as “how are you”. This conversation or branch of a conversation will have been given a sentiment score of “0” due to the sentiment value associated with receiving a “Greet” intent 204ba while in the “Greet” conversation flow state 201.

[0054] Continuing with this example, the data processing apparatus then transitions to the “qFeeling” conversation flow state 205. In this way, the data processing apparatus has shifted its frame of mind from a “Greet” frame of mind to a “qFeeling” frame of mind. Further, while in the “qFeeling” conversation flow state 205 the data processing apparatus receives a user message with a “Greet” intent 206b such as “Hello again”. The “qFeeling” conversation flow state 205 defines that if a “Greet” 206b intent is received then a response should be generated according to the “InitiateConvoO” conversation flow state 207. Because of this, the data processing apparatus generates a reply with a “InitiateConvoO” 207 intent such as “Did you know I lost 3-0 at space invaders today?”. This conversation or branch of a conversation will have been given a sentiment score of “-1 ” due to the sentiment value associated with receiving a “Greet” intent 206b while in the “qFeeling” conversation flow state 205.

[0055] Viewed from the beginning, the conversation flow in this example is as follows:

User: “Hello” (intent: “Greet” 204b; sentiment value “0”)

Apparatus: “How are you?” (intent: “qFeeling” 205)

User: “Hello again” (intent: “Greet” 206b; sentiment value “-1”)

Apparatus: “Did you know I lost 3-0 at space invaders today?” (intent: “InitiateConvoO” 207) [0056] From this example, it can be seen that the data processing apparatus changes how it replies by generating responses with different intents that reflect different frames of mind of the data processing apparatus. Even though the user has only provided messages with a “Greet” intent, the data processing apparatus has replied differently depending on the conversation flow state the data processing apparatus is in. In this way, the data processing apparatus is able to engage in a conversation flow with the user that better reflects or mimics a conversation flow between two humans. The conversation flow is further assigned a sentiment score which reflects the different routes the conversation takes. The sentiment score is “-1” as repeated use of the “Greet” intent by the user may be considered as reflecting a negative sentiment of the user. The overall score can be used to given an assessment of the user’s sentiment.

[0057] The simplicity and compactness of the design lends itself to be easily modifiable and quick to train (only requires one example for each route to learn) - unlike other methods which learn iteratively and thus require thousands of examples to generate apparently intelligent or meaningful conversations.

[0058] Referring to Figure 3 there is shown another network diagram outlining different conversation flows that may be generated. The network diagram comprises seven conversation flow states 301,303, 305, 307, 309, 311,313, 315. Each of the conversation flow states 301,303, 305, 307, 309, 311,313, 315 represents a different frame of mind for the data processing apparatus. The conversation flow states may be stored as a look-up table in memory along with an associated knowledge base. The look-up table may have the form of a set of linked rules defining how conversation flow states are linked together according to the expected user intents.

[0059] Figure 3 further shows a series of arrows that represent how the data processing apparatus transitions between different conversation flow states according to the particular user intent received while in a certain conversation flow state. For example, while in the “Greet” conversation flow state 301, the data processing apparatus may transition to a “qFeeling” conversation flow state 303 if a “Greet” user intent 302b is received. Further, each transition has a numerical value associated with it. The numerical value is a sentiment value. For example, the sentiment value associated with the “Greet” 302b user intent while in the “Greet” conversation flow state 301 is “0”.

[0060] In this example, the data processing apparatus is initially in the “Greet” conversation flow state 301 and may provide a message to the user with the “Greet” intent of this conversation flow state 301. This message may be a pre-generated message for the “Greet” conversation flow state 301 and may be obtained from a knowledge base of the “Greet” conversation flow state 301. In particular, knowledge base may comprise a plurality of pregenerated messages that represent different ways of conveying the same “Greet” intent such as “Hi/Hello/Howdy/Hiya”. Having multiple different pre-generated messages for conveying the same intent is beneficial in providing a more varied and engaging conversation with the user. That is, the user may become less aware that they are communicating with a data processing apparatus instead of a human. The knowledge base may grow as the data processing apparatus interacts with users. That is, the data processing apparatus may derive new pregenerated responses based on responses generated by the data processing apparatus or received user messages during conversation flows.

[0061] In the “Greet” conversation flow state 301, the data processing apparatus is expecting a message with either a “Love” 302a user intent or a “Greet” user intent 302b. If a “Greet” 302b user intent is received while in the “Greet” conversation flow state 301, the data processing apparatus generates a response according to the “qFeeling” conversation flow state 303 and transitions to the “qFeeling” conversation flow state 303. A response according to the “qFeeling” conversation flow state 303 may be in the form of a question inquiring as to how the user is feeling (e.g. “How are you?”).

[0062] In the “qFeeling” conversation flow state 303, the data processing apparatus is expecting a message with either a “Negative” 304a user intent, a “Neutral” 304b user intent, or a “Great” 304c user intent. If a “Negative” 304a user intent is received while in the “qFeeling” conversation flow state 303, the data processing apparatus generates a response according to the “qConcern” conversation flow state 311 and transitions to the “qConcern” conversation flow state 311. A response according to the “qConcern” conversation flow state may be in the form of a question enquiring as to whether the user has any concerns. The “Negative” 304a intent has a sentiment value of “-1” which means that receiving a “Negative” 304a intent while in the “qFeeling” conversation flow state 303 implies that the user has a negative sentiment.

[0063] In the “qConcern” conversation flow state 311, the data processing apparatus is expected a message with a “Yes” 312a intent. If a “Yes” 312a intent is received, the data processing apparatus generates a response according to the “ReferO” conversation flow state 313 and transitions to the “ReferO” conversation flow state 313. A response to the “ReferO” conversation flow state 313 may comprise the data processing apparatus referring the user to a human operator.

[0064] Viewed from the beginning, the conversation flow in this example may be as follows:

Apparatus: “Hi” (intent: “Greet”)

User: “Hello” (intent: “Greet” 302b; sentiment value “0”)

Apparatus: “How are you?” (intent: “qFeeling” 303)

User: “Bad” (intent: “Negative” 304a; sentiment value “-1”)

Apparatus: “Should I contact your Doctor” (intent: “qConcern” 311)

User: “Yes” (intent: “Yes” 312a; sentiment value: “0”)

Apparatus: Performs action referring user to Doctor.

[0065] By way of another example, the following conversation flow may develop using the conversation flow states of Figure 3:

Apparatus: “Hi” (intent: “Greet”)

User: “I love you” (intent: “Love” 302a; sentiment value “1”)

Apparatus: “I love you too” (intent: “Love” 305)

User: “Thanks” (intent: “Thanks” 306a; sentiment value “0”)

Apparatus: “How’s things?” (intent: “qFeeling” 303)

User: “So so” (intent: “Neutral” 304b; sentiment value: “0”)

Apparatus: “Would you look to hear a joke?” (intent: “qJoke” 307)

User: “Sure” (intent: “Yes” 308a; sentiment value “1”).

Apparatus: Tells a joke to user.

[0066] By way of another example, the following conversation flow may develop using the conversation flow states of Figure 3:

Apparatus: “Hello” (intent: “Greet”)

User: “Hi” (intent: “Greet” 302b; sentiment value “0”)

Apparatus: “How are you feeling” (intent: “qFeeling” 303)

User: “Great thanks” (intent: “Positive” 304c; sentiment value “1”)

Apparatus: “Great!” (intent: “Great” 315) [0067] From these examples, it may be seen that complex conversation flows may be established between the user and the data processing apparatus using a set of light weight linked rules in accordance with the present invention. That is, the conversation flow states that define expected user intents, and conversation flow states linked to the expected user intents enable for complex and meaningful conversations. Such approaches do not require the training of complex and data intensive recurrent neural networks, and instead the light-weight linked rules of the present invention may be stored on the data processing apparatus. In this way, the data processing apparatus may engage the user in a conversation flow without requiring access to one or more other external computing devices (such as over the internet).

[0068] Significantly, and additionally the routes that user takes are given sentiment values such that a sentiment score for the conversation may be determined. The sentiment values do not just take into account the intent of the user, but rather than intent of the user while in certain conversation flow states. In other words, the shift in user intents throughout the conversation determine the sentiment score.

[0069] Referring to the example of Figure 3, the “Yes” intent 312a while in the “qConcern” conversation flow state 311 has a neutral sentiment value of “0”. By contrast, the “Yes” intent 308a while in the “qJoke” conversation flow state 307 has a positive sentiment value of “1”. This is because a user wanting to hear a joke implies that the user has a positive sentiment, while a user wanting to be referred to a human operator is fairly typical and does not normally convey a particular sentiment. By way of another example, not particularly shown in Figure 3, if a “Bye” intent is detected while in the “Greet” conversation flow state, the sentiment may be negative “-1”. Whereas, when the “Bye” intent is detected while in the “Joke” conversation flow state the sentiment may be neural “0”. This is because it is fairly normal to say goodbye after hearing a joke, whereas a shift from “greet” to “bye” carries a fairly negative, non-verbal meaning. Therefore, the data processing apparatus is able to extract not just information regarding the intent of the user, but non-verbal cues reflecting the mind-set of the user.

[0070] The above examples are just simple examples of linked conversation flow states. More conversation flow states/expected user intents may be added. The conversation flow states/expected user intents are customisable and may be easily added/removed/or modified. This contrasts with complicated machine learning based techniques such as recurrent neural networks.

[0071] Referring to Figure 4, the data processing apparatus 400 comprises a processor 401, a memory 403, an input unit 405, and a display 407. The data processing apparatus 400 in this example is shown as a stand-alone data processing apparatus 400. By this, it is meant that the data processing apparatus 400 does not need access to a computer network to perform the method according to aspects of the present invention. In other examples, the data processing apparatus 400 may be a networked system. That is, the data processing apparatus 400 may comprise a number of modules connected over a distributed network such as the Internet.

[0072] The data processing apparatus 400 is arranged to provide a chatbot messaging application which, in this example, is displayed on the display 407 of the data processing apparatus 400. The input unit 405 of the data processing apparatus 400 provides the means by which a user can interact with the chatbot messaging application such as to input messages to the chatbot messaging application. The input unit 405 may be part of the display 407, that is the display 407 may be a touch-screen display 407 capable of sensing touch inputs by the user. In another examples, the input unit 405 may be a separate unit such as a keyboard or touchpad. The input unit 405 may be a microphone for receiving a voice message from the user.

[0073] The memory 403 of the data processing apparatus stores instructions and data. The processor 401 is operable to access the instructions and data from the memory 403 so as to perform the method according to the first aspect of the invention.

[0074] In this example, the memory 403 stores a plurality of conversation flow states as a set of linked rules. That is, the linked rules define how the data processing apparatus is to transition between conversation flow states based on received user intents. In other examples, the plurality of conversation flow states may not be stored on the data processing apparatus 400, but may instead be stored on an external device or server.

[0075] The processor 401 is arranged to enter a first conversation flow state. The first conversation flow state may be a predetermined starting conversation flow state such as a “Greet” conversation flow state. The first conversation flow state may be conversation flow state that the processor 401 has entered as a result of a previous or an ongoing conversation with the user.

[0076] The processor 401 is arranged to process/parse the message to determine a user intent for the received message. In other examples, the processor 401 may receive the user intent from an external device or server. That is, an external device or server may receive the user message and may determine the user intent for the message and provide the intent to the processor 401. The external device or server may provide the user message to the processor 401 so that the processor 401 determines the user intent for the message.

[0077] The processor 401 then determines if the received user intent corresponds to an expected user intent for the first conversation flow state. The first conversation flow state may comprise a plurality of expected user intents, and the processor 401 may identify the expected user intent that corresponds to the received user intent.

[0078] The expected user intent that corresponds to the received user intent will be linked to a second conversation flow state. The processor 401 will generate a response to the user intent according to the second conversation flow state, and will advance the conversation flow by transitioning to the second conversation flow state.

[0079] The display 407 of the data processing apparatus 400 is for displaying information to the user such as the response generated by the processor. The data processing apparatus 400 may separately or additionally comprise a speaker (not shown) which may output the response to the user as an audible signal. In other examples, the data processing apparatus 400 provides the generated response to an external device or server which may then display or provide the same to the user.

[0080] At least some of the example embodiments described herein may be constructed, partially or wholly, using dedicated special-purpose hardware. Terms such as ‘component’, ‘module’ or ‘unit’ used herein may include, but are not limited to, a hardware device, such as circuitry in the form of discrete or integrated components, a Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC), which performs certain tasks or provides the associated functionality. In some embodiments, the described elements may be configured to reside on a tangible, persistent, addressable storage medium and may be configured to execute on one or more processors. These functional elements may in some embodiments include, by way of example, components, such as software components, objectoriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. Although the example embodiments have been described with reference to the components, modules and units discussed herein, such functional elements may be combined into fewer elements or separated into additional elements. Various combinations of optional features have been described herein, and it will be appreciated that described features may be combined in any suitable combination. In particular, the features of any one example embodiment may be combined with features of any other embodiment, as appropriate, except where such combinations are mutually exclusive. Throughout this specification, the term “comprising” or “comprises” means including the component(s) specified but not to the exclusion of the presence of others.

[0081] Attention is directed to all papers and documents which are filed concurrently with or previous to this specification in connection with this application and which are open to public inspection with this specification, and the contents of all such papers and documents are incorporated herein by reference.

[0082] All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be 5 combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.

[0083] Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated 10 otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.

[0084] The invention is not restricted to the details of the foregoing embodiment(s). The invention extends to any novel one, or any novel combination, of the features disclosed in this specification (including any accompanying claims, abstract and drawings), or to any novel one, 15 or any novel combination, of the steps of any method or process so disclosed.

Claims (15)

1. A method of engaging with a user in a conversation flow using a data processing apparatus, the method comprising:
receiving a user intent while in a first conversation flow state, the user intent being obtained from a message received from the user while the data processing apparatus is in the first conversation flow state, the first conversation flow state defining an expected user intent that the data processing apparatus expects to receive while in the first conversation flow state, and defining a second conversation flow state linked to the expected user intent;
wherein if the received user intent corresponds to the expected user intent, the method comprises:
generating a response to the user intent according to the second conversation flow state; and advancing the conversation flow by transitioning to the second conversation flow state.
2. A method as claimed in claim 1, wherein the generated response to the user intent according to the second conversation flow state is different to a response generated for the user intent according to the first conversation flow state.
3. A method as claimed in claim 1 or 2, wherein the first and second conversation flow states represent conversational frames of minds for the data processing apparatus, such that responses generated while in the first conversation flow state represent a different frame of mind of the data processing apparatus to responses generated while in the second conversation flow state.
4. A method as claimed in any preceding claim, wherein the conversation flow state defines a plurality of expected user intents, and wherein for each of the plurality of expected user intents, the conversation flow state defines a second conversation flow state linked to the expected user intent.
5. A method as claimed in any preceding claim, wherein the second conversation flow state defines an expected user intent that the data processing apparatus expects to receive while in the second conversation flow state, and defines a third conversation flow state linked to the expected user intent.
6. A method as claimed in claim 5, wherein the method further comprises:
receiving a user intent while in the second conversation flow state, the user intent being obtained from a message received from the user while the data processing apparatus is in the second conversation flow state, wherein if the received user intent corresponds to the expected user intent, the method comprises:
generating a response to the user intent according to the third conversation flow state; and advancing the conversation flow by transitioning to the third conversation flow state.
7. A method as claimed in claim 6, wherein the third conversation flow state defines an expected user intent that the data processing apparatus expects to receive while in the third conversation flow state, and defines a fourth conversation flow state linked to the expected user intent.
8. A method as claimed in any preceding claim, wherein the method comprises transitioning between a plurality of conversation flow states according to received user intents.
9. A method as claimed in any preceding claim, wherein the first conversation flow state further comprises a sentiment value for the expected user intent, and wherein, if the received user intent corresponds to the expected user intent, the method further comprises modifying a sentiment score for the conversation flow by the sentiment value.
10. A method as claimed in any preceding claim, wherein the method comprises transitioning between a plurality of conversation flow states according to received user intents, wherein each of the plurality of conversation flow states defines an expected user intent that the data processing apparatus expects to receive while in the conversation flow state, a sentiment value for the expected user intent, and a conversation flow state linked to the expected user intent.
11. A method as claimed in any preceding claim, wherein generating the response comprises accessing a knowledge base associated with the second conversation flow state, and using the knowledge base to generate the response
12. A method as claimed in any preceding claim, wherein the knowledge base comprises a pre-generated response, and wherein generating the response comprises obtaining the pre-generated response from the knowledge base.
13. A method as claimed in any preceding claim, wherein the first conversation flow state and the second conversation flow state are stored as a set of linked-rules in the data processing apparatus.
14. A computer readable medium having instructions recorded thereon which, when executed by a computer, cause the computer to perform the method as claimed in any preceding claim.
10
15. A data processing apparatus for engaging with a user in a conversation flow, wherein the apparatus comprises a processor configured to perform the method as claimed in any of claims 1 to 13.
GB1808772.6A 2018-05-30 2018-05-30 Method and apparatus for engaging with a user in a conversation flow Withdrawn GB2574214A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1808772.6A GB2574214A (en) 2018-05-30 2018-05-30 Method and apparatus for engaging with a user in a conversation flow

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1808772.6A GB2574214A (en) 2018-05-30 2018-05-30 Method and apparatus for engaging with a user in a conversation flow

Publications (2)

Publication Number Publication Date
GB201808772D0 GB201808772D0 (en) 2018-07-11
GB2574214A true GB2574214A (en) 2019-12-04

Family

ID=62812427

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1808772.6A Withdrawn GB2574214A (en) 2018-05-30 2018-05-30 Method and apparatus for engaging with a user in a conversation flow

Country Status (1)

Country Link
GB (1) GB2574214A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10841251B1 (en) * 2020-02-11 2020-11-17 Moveworks, Inc. Multi-domain chatbot

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170324866A1 (en) * 2016-05-06 2017-11-09 Genesys Telecommunications Laboratories, Inc. System and method for chat automation
US20180068012A1 (en) * 2016-09-07 2018-03-08 International Business Machines Corporation Chat flow tree structure adjustment based on sentiment and flow history

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170324866A1 (en) * 2016-05-06 2017-11-09 Genesys Telecommunications Laboratories, Inc. System and method for chat automation
US20180068012A1 (en) * 2016-09-07 2018-03-08 International Business Machines Corporation Chat flow tree structure adjustment based on sentiment and flow history

Also Published As

Publication number Publication date
GB201808772D0 (en) 2018-07-11

Similar Documents

Publication Publication Date Title
Palaganas et al. Reflexivity in qualitative research: A journey of learning.
Bogilović et al. Hiding behind a mask? Cultural intelligence, knowledge hiding, and individual and team creativity
Huettig et al. Individual differences in working memory and processing speed predict anticipatory spoken language processing in the visual world
US10528878B2 (en) Tailoring question answering system output based on user experience
Sellar A feel for numbers: Affect, data and education policy
Aveling et al. A qualitative method for analysing multivoicedness
Schwab et al. Language learning, socioeconomic status, and child‐directed speech
Mogashoa Understanding critical discourse analysis in qualitative research
Boysen Teacher and student perceptions of microaggressions in college classrooms
Schroeder et al. Mistaking minds and machines: How speech affects dehumanization and anthropomorphism.
McGowan Social expectation improves speech perception in noise
Monaghan et al. The role of sound symbolism in language learning.
US20170200075A1 (en) Digital companions for human users
Pak et al. Designing displays for older adults
US20170004731A1 (en) Computing technologies for diagnosis and therapy of language-related disorders
Morford et al. When deaf signers read English: Do written words activate their sign translations?
Wilkinson et al. Constructing identities: A feminist conversation analytic approach to positioning in action
Schlosser et al. Speech output technologies in interventions for individuals with autism spectrum disorders: A scoping review
McQueen et al. Tracking recognition of spoken words by tracking looks to printed words
Kagohara et al. Behavioral intervention promotes successful use of an iPod-based communication device by an adolescent with autism
Rummer et al. The perceptual basis of the modality effect in multimedia learning.
Yukawa Co-reflection in online learning: Collaborative critical thinking as narrative
Alexander et al. Accentuate the negative
Weiss et al. Speech segmentation in a simulated bilingual environment: A challenge for statistical learning?
Butcher et al. Text comprehension and discourse processing

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)