Message processing method, information processing apparatus, and program
Patent Information
- Application Number
- JP2022171568
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-10-26
- Publication Date
- 2025-05-21
AI Technical Summary
Existing message processing technologies struggle to accurately interpret user intentions due to a lack of context awareness, leading to inconsistent and less precise responses.
An information processing system that associates user messages with context, utilizing an interpretation server to interpret messages by leveraging past message contexts stored in a database, enhancing the accuracy of message interpretation.
The system improves message interpretation accuracy by utilizing past message contexts, enabling consistent and contextually relevant responses even when user messages lack explicit intent indicators.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a method for processing messages. [Background technology]
[0002] Conventionally, various technologies for processing messages from users have been considered. For example, Non-Patent Document 1 ("Virtual assistant", [online], September 9, 2022, Internet<URL: https: / / en.wikipedia.org / wiki / Virtual_assistant> ) discloses a virtual assistant that provides various tasks or services in response to input of text or voice messages from a user. [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] “Virtual assistant”, [online], September 9, 2022, Internet<URL: https: / / en.wikipedia.org / wiki / Virtual_assistant> Summary of the Invention [Problem to be solved by the invention]
[0004] In the above-mentioned technology, there is a need for technology to more accurately interpret messages from a user so that the user's intent is more accurately reflected in the task or service provided.
[0005] The present disclosure has been made in view of the above circumstances, and has an object to provide a technique for enabling a message input by a user to be interpreted more accurately. [Means for solving the problem]
[0006] According to one aspect of the present disclosure, there is provided a message processing method comprising: an information processing device obtaining a first message from a first entity; the information processing device storing a context of the first message in a storage device in association with the first entity; the information processing device obtaining a second message from the first entity; and the information processing device providing the second message together with the context of the first message to an interpretation server that interprets the message. Effect of the Invention
[0007] According to the present disclosure, the interpretation server is provided with a message about an entity along with the context of past messages at that entity, allowing the interpretation server to interpret messages that do not contain detailed content using the past content at the entity to which the message belongs, thereby allowing the interpretation of messages entered by users to be more accurately performed. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 illustrates an example of a configuration of a message processing system. [Diagram 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of a user terminal 100. [Diagram 3] FIG. 2 is a diagram illustrating an example of a hardware configuration of a communication server 200. [Figure 4] FIG. 2 is a diagram illustrating an example of a hardware configuration of an information processing server 300. [Diagram 5] FIG. 2 is a diagram showing an example of the hardware configuration of a conversation server 400. [Figure 6] FIG. 2 is a diagram showing an example of a dialogue in the message processing system 1. [Figure 7] FIG. 13 is a diagram showing another example of a dialogue in the message processing system 1. [Figure 8] FIG. 8 shows a schematic diagram of information flow for the interactions in the two threads shown in FIGS. 6 and 7. [Figure 9] FIG. 2 is a diagram illustrating an example of information stored in a context database 500. [Figure 10] FIG. 13 is a diagram illustrating another example of information stored in the context database 500. [Figure 11] FIG. 13 is a diagram illustrating still another example of information stored in the context database 500. [Figure 12] FIG. 13 is a diagram illustrating still another example of information stored in the context database 500. [Figure 13] 10 is a diagram showing the flow of processing in each of the information processing server 300 and the conversation server 400. FIG. [Figure 14] FIG. 13 is a diagram illustrating another example of the configuration of a message processing system. [Figure 15] FIG. 2 is a diagram showing an example of a dialogue in the message processing system 2. [Figure 16] FIG. 16 is a diagram showing a schematic flow of information in generating the order information shown in FIG. 15. [Figure 17] FIG. 16 is a diagram showing a schematic flow of information in generating the order information shown in FIG. 15. [Figure 18] FIG. 2 is a diagram illustrating an example of information stored in a context database 500. [Figure 19] FIG. 13 is a diagram showing another example of information stored in the context database 500. [Figure 20] FIG. 13 is a diagram showing yet another example of information stored in the context database 500. [Figure 21] FIG. 13 is a diagram showing yet another example of information stored in the context database 500. [Figure 22] FIG. 13 is a diagram showing yet another example of information stored in the context database 500. [Figure 23] FIG. 13 is a diagram showing yet another example of information stored in the context database 500. [Figure 24] FIG. 13 is a diagram showing another example of a dialogue in the message processing system 2. [Diagram 25] FIG. 25 is a diagram showing a schematic flow of information in generating the order information shown in FIG. 24. [Figure 26] FIG. 2 is a diagram illustrating an example of information stored in a context database 500. [Figure 27] FIG. 13 is a diagram showing yet another example of information stored in the context database 500. [Figure 28] FIG. 13 is a diagram showing yet another example of information stored in the context database 500. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, an embodiment of a message processing system will be described with reference to the drawings. In the following description, the same parts and components are denoted by the same reference numerals. Their names and functions are also the same. Therefore, the description thereof will not be repeated.
[0010] <First embodiment> [1. Message Processing System Configuration] 1 is a diagram showing an example of the configuration of a message processing system 1. As shown in FIG. 1, the message processing system 1 includes a user terminal 100, a communication server 200, an information processing server 300, a conversation server 400, and a context database 500.
[0011] In one implementation example, the user terminal 100 is realized by a computer (such as a smartphone, a tablet terminal, or a personal computer) operated by a user.
[0012] The communication server 200 is a server that provides a chat service such as Slack (registered trademark).
[0013] The information processing server 300 is a server for providing a chatbot in the above chat service. The information processing server 300 is an example of an information processing device in the message processing system 1.
[0014] The conversation server 400 performs various processes including interpretation of messages in order to cause the information processing server 300 to function as a chatbot. The conversation server 400 is an example of an interpretation server in the message processing system 1.
[0015] The context database 500 manages the context of a message input by a user in the message processing system 1. In one implementation example, the context may mean the intent and / or target of the message. Note that the context may also mean additional information such as a place and / or a time associated with the message, or a history of such additional information, in addition to or instead of these meanings.
[0016] [2. Overview of message processing system functions] With reference to FIG. 1, an overview of the functions of the message processing system 1 will be described.
[0017] An application program for using the chat service is installed in the user terminal 100. A user 150 uses the user terminal 100 to input a message (inquiry) into a thread of the chat service. The user terminal 100 inputs the input message into the chat service. Messages on the chat service are managed in the communication server 200. Note that, in the user terminal 100, input of a message into the message service may be performed on a dedicated application program, or on a dedicated site accessed via a browser.
[0018] The information processing server 300 monitors input of messages from users in the chat service. When a message is input from a user in the chat service, the information processing server 300 acquires the message from the communication server 200 and transfers the message to the conversation server 400.
[0019] The conversation server 400 interprets the message from the user, generates a response to the message, and transmits the generated response to the information processing server 300. The information processing server 300 transfers the response transmitted from the conversation server 400 to the communication server 200. The communication server 200 provides the response transferred from the information processing server 300 to the user terminal 100. At this time, the response is provided as a reply to the message (inquiry) input by the user 150 in the thread of the chat service.
[0020] The conversation server 400 transmits the context generated in interpreting the message together with the response to the information processing server 300. The information processing server 300 stores the context transmitted from the conversation server 400 in the context database 500 in association with the thread.
[0021] Thereafter, when the information processing server 300 acquires a message in the thread, it searches for a context stored in association with the thread in the context database 500. Then, the information processing server 300 transmits the message acquired in the thread together with the context obtained as the search result to the conversation server 400. This allows the conversation server 400 to use the context generated for the past message in the thread to interpret the message in the thread.
[0022] [3. Hardware configuration] (User terminal 100) 2 is a diagram showing an example of a hardware configuration of the user terminal 100. The user terminal 100 includes a CPU (Central Processing Unit) 101, a display 102, a microphone 103, a speaker 104, an input device 105, a communication I / F (interface) 106, and a storage 107. The storage 107 is realized by a memory device that stores data in a non-volatile manner. The storage 107 includes a program area 1071 that stores various programs, and a data area 1072 that stores various data.
[0023] The CPU 101 includes one or more processors, and executes various calculations by executing programs stored in the storage 107 or an external storage device.
[0024] The display 102 displays a screen instructed by the CPU 101. The microphone 103 inputs input voice to the CPU 101. The speaker 104 outputs voice instructed by the CPU 101. The input device 105 is realized by, for example, a physical key and / or a touch sensor, and accepts information input from the user. The communication I / F 106 is realized by, for example, a network card, and allows the user terminal 100 to communicate with other devices in the dialogue system 1 (for example, the communication server 200).
[0025] (Communication Server 200) 3 is a diagram showing an example of the hardware configuration of the communication server 200. The communication server 200 includes a CPU 201, a communication I / F 202, and a storage 203. The storage 203 is realized by a memory device that stores data in a non-volatile manner. The storage 203 includes a program area 2031 that stores various programs, and a data area 2032 that stores various data.
[0026] The CPU 201 includes one or more processors, and executes various calculations by executing programs stored in the storage 203 or an external storage device. The communication I / F 202 is realized by, for example, a network card, and allows the communication server 200 to communicate with other devices (such as the user terminal 100 and the information processing server 300) in the message processing system 1.
[0027] (Information processing server 300) 4 is a diagram showing an example of a hardware configuration of the information processing server 300. The information processing server 300 includes a CPU 301, a communication I / F 302, and a storage 303. The storage 303 is realized by a memory device that stores data in a non-volatile manner. The storage 303 includes a program area 3031 that stores various programs, and a data area 3032 that stores various data.
[0028] The CPU 301 includes one or more processors, and executes various calculations by executing programs stored in the storage 303 or an external storage device. The communication I / F 302 is realized by, for example, a network card, and allows the information processing server 300 to communicate with other devices in the message processing system 1 (the information processing server 300, the conversation server 400, the context database 500, etc.).
[0029] (Conversation Server 400) 5 is a diagram showing an example of the hardware configuration of the conversation server 400. The conversation server 400 includes a CPU 401, a communication I / F 402, and a storage 403. The storage 403 is realized by a memory device that stores data in a non-volatile manner. The storage 403 includes a program area 4031 that stores various programs, and a data area 4032 that stores various data.
[0030] The CPU 401 includes one or more processors, and executes various calculations by executing programs stored in the storage 403 or an external storage device. The communication I / F 402 is realized by, for example, a network card, and allows the conversation server 400 to communicate with other devices (for example, the information processing server 300) in the message processing system 1.
[0031] (Context Database 500) The context database 500 is realized by a given computer and stores various data. The context database 500 may be realized as a part of another element (for example, the information processing server 300) in the message processing system 1, or may be realized as a hardware resource separate from the other elements in the message processing system 1.
[0032] [4. Specific examples of dialogue in message processing systems] In the message processing system 1, the context of a message is managed for each thread. In this sense, each thread constitutes an example of an entity in the message processing system 1. Below, the management of the context for each thread will be described along with a specific example of a dialogue between two threads.
[0033] (An example of a dialogue) FIG. 6 is a diagram showing an example of a dialogue in the message processing system 1. As shown in FIG.
[0034] 6 shows a screen 600 representing a dialogue between user A and a chatbot. The screen 600 represents a dialogue in a thread in a chat service. In the screen 600, a field 601 displays a character string "Thread_#Talk to a chatbot 001" representing information about the thread.
[0035] Each of columns 602 to 605 represents a message in the thread. More specifically, column 602 represents a message from user A, "What's the weather like today?". Column 603 represents a message from the chatbot, "Today in San Jose, it is expected to have rain showers, with a maximum temperature of 62°F and a minimum temperature of 49°F.". Column 604 represents a message from user A, "What's it like tomorrow?". Column 605 represents a message from the chatbot, "Tomorrow in San Jose, it is expected to be mostly cloudy, with a maximum temperature of 62°F and a minimum temperature of 49°F."
[0036] (Other examples of dialogue) FIG. 7 is a diagram showing another example of a dialogue in the message processing system 1. In FIG.
[0037] Fig. 7 shows a screen 700 representing a conversation between user A and a chatbot. The screen 700 represents a conversation in a thread in a chat service, which is different from the example shown in Fig. 6. In the screen 700, a field 701 displays a character string "Thread_#Talk to chatbot 002" representing information about the thread.
[0038] Each of columns 702-703 represents a message in the thread. More specifically, column 702 represents a message from user A, "Find restaurants in Santa Clara." Column 703 represents a message from the chatbot, "Found these restaurants." Column 703 includes two columns, 7031 and 7032. Column 7031 represents information about the first restaurant search result, "Restaurant X." Column 7032 represents information about the second restaurant search result, "Restaurant Y."
[0039] (Information flow) FIG. 8 is a schematic diagram illustrating the information flow for the interactions in the two threads shown in FIGS.
[0040] In the example of FIG. 8, the thread in FIG. 6 is represented as "thread 001", and the thread in FIG. 7 is represented as "thread 002". "User (thread 001)" represents a conversation with user A carried out as thread 001 in the communication server 200. "User (thread 002)" represents a conversation with user A carried out as thread 002 in the communication server 200. "@chatbot" represents that the destination of a message in the thread is a chatbot.
[0041] The information processing server 300 monitors messages that the communication server 200 receives from users. When the communication server 200 receives the message "What's the weather today?" (box 602 in FIG. 6) in thread 001, the information processing server 300 receives the message. This message is the first message in thread 001. That is, at this point in time, thread 001 is a new thread for the information processing server 300. Therefore, the information processing server 300 transmits this message to the conversation server 400 without searching for a context in the context database 500.
[0042] In the chat service, a message may be input by voice or may be input by text. The conversation server 400 may process the text corresponding to the message when interpreting the message. If the message is input by voice, the voice-to-text conversion may be performed by any of the communication server 200, the information processing server 300, and the interpretation server. Also, in the chat service, a message may be output by voice or may be output by text, or may be output by both.
[0043] Conversation Server 400 generates a response to User A's message "What's the weather today?" by processing the message. In one implementation, processing the message includes interpreting the message, identifying a command based on the interpretation, and executing the command.
[0044] Interpreting the message includes natural language processing of the message. In interpreting the message, the conversation server 400 may identify a context of the message. In one implementation, to identify the context, the conversation server 400 identifies a grammar in natural language processing to which the message conforms. The conversation server 400 then identifies the context associated with the identified grammar as the context of the message. For example, from the message "What's the weather like today?", the context "weather" is identified.
[0045] The conversation server 400 may determine a command corresponding to the message based on the context. In one implementation, the context "weather" may be associated with the command "provide weather forecast." The conversation server 400 may determine the command "provide weather forecast" based on the context "weather."
[0046] The conversation server 400 may use information about the user A when identifying a command. One example of the information about the user A is information that indicates a place called San Jose. When the command "provide weather forecast" is identified, the conversation server 400 may use the information about the user A, "San Jose," to update the identified command to the command "provide weather forecast for San Jose."
[0047] Information about user A may be pre-registered in the conversation server 400. When the information processing server 300 transmits the above message to the conversation server 400 together with information identifying the target user (user A), the conversation server 400 identifies information about the target user (user A) and processes the above message using the information.
[0048] Information about user A may be sent from the information processing server 300 to the conversation server 400. In one implementation example, the communication server 200 may obtain location information from the user terminal 100, and the information processing server 300 may obtain the location information from the communication server 200 together with the message.
[0049] In executing a command, the conversation server 400 may use an external server (e.g., an API (Application Programming Interface) server) as necessary. In one implementation example, the conversation server 400 accesses an API server for weather forecasts to execute the command "provide weather forecast for San Jose" and generates a response using information obtained from the API server.
[0050] When the conversation server 400 generates the response “Today in San Jose, it is expected to rain suddenly, with a maximum temperature of 62° F and a minimum temperature of 49° F,” it transmits the response to the information processing server 300. The conversation server 400 also transmits the context (weather) used in generating the response to the information processing server 300.
[0051] The information processing server 300 transmits the response transmitted from the conversation server 400 to the communication server 200. In response to this, the communication server 200 outputs the response (field 603 in FIG. 6) as a reply to the message of user A. As a result, user A obtains the response in thread 001 as a reply to the message "What's the weather like today?"
[0052] The information processing server 300 also assigns an ID to the response. More specifically, in the example of Fig. 8, an ID of "1" is assigned to the response "Today in San Jose, it is expected to rain suddenly, with a maximum temperature of 62°F and a minimum temperature of 49°F."
[0053] The information processing server 300 further stores the context acquired for the message of user A on which the response with ID=1 is based, together with information identifying the thread and the ID, in the context database 500. As a result, the context “weather” is stored in the context database 500 in association with the thread 001 and ID=1.
[0054] Fig. 9 is a diagram illustrating an example of information stored in the context database 500. As illustrated in Fig. 9, in the context database 500, information is stored so as to include three types of items (thread, ID, and context).
[0055] Fig. 10 is a diagram illustrating another example of information stored in the context database 500. As a result of the information processing server 300 storing the context as described above, the context database 500 stores the context "weather" associated with the thread 001 and ID=1, as shown in Fig. 10.
[0056] Returning to FIG. 8, when the communication server 200 acquires the message "Looking for restaurants in Santa Clara" (box 702 in FIG. 7) in thread 002, the information processing server 300 acquires the message. This message is the first message in thread 002. That is, at this point, thread 002 is a new thread for the information processing server 300. Therefore, the information processing server 300 transmits this message to the conversation server 400 without searching for a context in the context database 500.
[0057] The conversation server 400 processes the message "Find restaurants in Santa Clara" and generates a response to the message "Found these restaurants..." The conversation server 400 then transmits the response to the information processing server 300 together with the context of the message (the restaurant).
[0058] The information processing server 300 assigns an ID to the response "These restaurants were found...". This ID is shown as "2" in the example of FIG. 8. The information processing server 300 transmits the response sent from the conversation server 400 to the communication server 200 together with the assigned ID. As a result, the communication server 200 outputs the response sent from the information processing server 300 (column 703 in FIG. 7) as a reply to the above message. As a result, user A obtains the response in thread 002 as a reply to the message "Find restaurants in Santa Clara."
[0059] The information processing server 300 further stores the context transmitted from the conversation server 400 together with the assigned ID in the context database 500. As a result, the context (restaurant) is stored in the context database 500 in association with the thread 002 and ID=2. FIG. 11 is a diagram showing a schematic diagram of yet another example of information stored in the context database 500. As shown in FIG. 11, the context database 500 further stores the context "restaurant" in association with the thread 002 and ID=2.
[0060] Returning to FIG. 8, when the communication server 200 acquires the message "How about tomorrow?" (column 604 in FIG. 6) in thread 001, the information processing server 300 acquires the message. The information processing server 300 has already acquired the message in thread 001. Therefore, the information processing server 300 searches the context associated with thread 001 in the context database 500. More specifically, the information processing server 300 searches for the context with the latest ID among the contexts associated with thread 001. As shown in FIG. 11, the context database 500 stores the context "weather" in association with thread 001. Therefore, the information processing server 300 acquires the context "weather" as a result of the above search.
[0061] Then, the information processing server 300 transmits the message "How about tomorrow?" to the conversation server 400 together with the context "weather" that is the search result.
[0062] The conversation server 400 generates a response by interpreting the message "How's tomorrow?" using the context "weather." The information processing server 300 may transmit information identifying user A to the conversation server 400 along with the above conversation. The conversation server 400 may identify information about user A based on the information identifying user A, and use the information about user A to interpret user A's message.
[0063] The conversation server 400 uses the context "weather" transmitted from the information processing server 300 to interpret the message from user A. As a result, even if the message from user A does not contain information about "weather" or even if "weather" is not registered in advance as information about user A, the conversation server 400 can interpret the message by using the context "weather."
[0064] The conversation server 400 generates a response to the message "How about tomorrow?": "Tomorrow in San Jose, it is expected to be mostly cloudy with a maximum temperature of 62°F and a minimum temperature of 49°F." The conversation server 400 then transmits this response together with the context used in interpreting the message "How about tomorrow?" to the information processing server 300. The context used in interpreting the message "How about tomorrow?" may be a context newly identified in interpreting the message "How about tomorrow?", or may be a context received from the information processing server 300 together with the message "How about tomorrow?", i.e., a context identified in interpreting a message prior to the message "How about tomorrow?".
[0065] The information processing server 300 assigns a new ID (3) to the response sent from the conversation server 400, and sends the response together with ID=3 to the communication server 200. As a result, the communication server 200 outputs the response sent from the information processing server 300 (column 605 in FIG. 6) as a reply to the above message. As a result, user A obtains the response in thread 001 as a reply to the message "How about tomorrow?"
[0066] The information processing server 300 further stores the context transmitted from the conversation server 400 together with information identifying the thread and the ID in the context database 500. As a result, in the context database 500, this context is stored in association with the thread 001 and ID=3.
[0067] Fig. 12 is a diagram illustrating another example of information stored in the context database 500. As illustrated in Fig. 12, the context database 500 further stores a context "weather" in association with the thread 001 and ID=3.
[0068] As described above with reference to Fig. 6 to Fig. 12, the information processing server 300 manages a context for each thread in the context database 500. As a result, a context generated for a certain message in thread 001 is used in interpreting the subsequent messages. On the other hand, in thread 002, a context generated for thread 001 but not generated for thread 002 is not used in interpreting the messages in thread 001. For example, as described with reference to Fig. 8, the context "weather" in thread 001 is not used in interpreting the messages in thread 002.
[0069] In addition, the context database 500 stores the context used to interpret the message "Find a restaurant in Santa Clara" for the thread 002. When another message is input in the thread 002, the information processing server 300 transmits the above context to the conversation server 400 together with the other message. The conversation server 400 uses the context transmitted from the information processing server 300 to interpret the other message. That is, when a second message is input after a first message is input in the thread 001, the context used to interpret the first message is used to interpret the second message. Also, when a fourth message is input after a third message is input in the thread 002, the context used to interpret the third message is used to interpret the fourth message.
[0070] [5. Processing flow] 13 is a diagram showing the flow of processing in each of the information processing server 300 and the conversation server 400. Process P30 represents processing on the information processing server 300 side. In one implementation example, the CPU 301 executes a given program to perform processing on the information processing server 300 side. Process P40 represents processing on the conversation server 400 side. In one implementation example, the CPU 401 executes a given program to perform processing on the conversation server 400 side.
[0071] In step S300, the information processing server 300 judges whether or not a message addressed to the chatbot has been detected in the chat service. The information processing server 300 repeats the control of step S300 until a message is detected (NO in step S300), and when a message is detected (YES in step S300), the control proceeds to step S302.
[0072] In step S302, the information processing server 300 reads the detected message. In step S304, the information processing server 300 determines whether the detected message is the first message in the target thread. The target thread is the thread to which the detected message belongs. If the detected message is the first message in the target thread (YES in step S304), the information processing server 300 advances control to step S308, and if the detected message is not the first message in the target thread (NO in step S304), the information processing server 300 advances control to step S306.
[0073] In step S306, the information processing server 300 searches for a context associated with the target thread in the context database 500. At this time, all contexts associated with the target thread may be searched, or only the latest context may be searched. When each context is associated with an ID in the context database 500, "latest" may be determined based on the ID associated with each context.
[0074] In step S308, the information processing server 300 transfers the message read from the communication server 200 in step S302 to the conversation server 400. At this time, if the information processing server 300 has acquired the search results of the context in step S306, it further transmits the search results (context) to the conversation server 400.
[0075] In step S400, the conversation server 400 receives a message transmitted from the information processing server 300. At this time, if a context has been transmitted from the information processing server 300, the conversation server 400 also receives the context.
[0076] In step S402, the conversation server 400 interprets the message received in step S400. If a context was received in step S400, the conversation server 400 may use that context in the interpretation.
[0077] In step S404, conversation server 400 generates a response to the message received in step S400.
[0078] In step S406, the conversation server 400 transmits the response generated in step S404 together with the context to the information processing server 300. The context transmitted in step S406 includes the context of the message received in step S400. The context of the message may be a context newly identified in the interpretation of the message, or may be a context transmitted from the information processing server 300 together with the message.
[0079] In step S310, the information processing server 300 receives the response and the context from the conversation server 400.
[0080] In step S312, the information processing server 300 transfers the response received in step S310 to the communication server 200.
[0081] In step S314, the information processing server 300 associates the context received in step S310 with the target thread and stores it in the context database 500. The information processing server 300 may add a timestamp to the response in step S310, and in step S314 further associate the context with the timestamp and store it in the context database 500. Thereafter, the information processing server 300 returns control to step S300.
[0082] According to the flow of the process described above with reference to Fig. 13, the information processing server 300 transmits a message acquired in a certain thread in a chat service to the conversation server 400 together with a context associated with the thread. This allows the conversation server 400 to use a context previously identified in the thread to interpret the message acquired in the thread. Therefore, in a chat service, even if a certain message does not contain information representing an intention and / or target, if a past message in the same thread as the message contains information representing the intention and / or target, a response including content in line with the intention and / or target can be provided as a reply.
[0083] In the process flow described with reference to FIG. 13, the timestamp is used to identify the recency of each of the multiple contexts stored in association with each thread. Meanwhile, the IDs described in FIG. 8 to FIG. 12 define the order in which each context is stored in the context database 500, thereby defining the recency of each context. Therefore, each of the IDs in FIG. 8 to FIG. 12 and the timestamps in FIG. 13 are examples of elements that define the recency of each context. Note that the recency of a context may be synonymous with the recency of the message that is the source of the generation of the context. For example, if the context "weather" is generated in the interpretation of the message "how's the weather today?", the recency of the context "weather" may represent the recency of the message "how's the weather today?".
[0084] <Second embodiment> [1. Message Processing System Configuration] Fig. 14 is a diagram showing another example of the configuration of a message processing system. Compared to Fig. 1, Fig. 14 shows a user terminal 100A operated by a user 150A and a user terminal 100B operated by a user 150B, instead of the user terminal 100. Also, an order management server 410 is shown instead of the conversation server 400. The order management server 410 generates order information of the user by interpreting a message from the user. In other words, the order management server 410 is an example of an interpretation server.
[0085] The hardware configuration of each of the user terminals 100A and 100B may be similar to the hardware configuration of the user terminal 100. The hardware configuration of the order management server 410 may be similar to the hardware configuration of the conversation server 400.
[0086] 14, the communication server 200 accepts product orders as a chat service. In the chat service, the user terminal 100A and the user terminal 100B input messages to a single thread.
[0087] [2. First concrete example of generating order information] (Dialogue) FIG. 15 is a diagram showing an example of a dialogue in the message processing system 2. In the example of FIG. 15, users 150A and 150B input messages to a certain thread of a chat service. In the message processing system 2, the messages of users 150A and 150B are interpreted using a context common to the thread, and order information of each of users 150A and 150B is generated. The order information may be for an in-store order at a restaurant or a clothing store, or may be for an order for a delivery service. The generation of order information will be described in more detail below.
[0088] 15, as a message MS11, the chatbot (information processing server 300) outputs the message "Here is a 20% discount coupon." In one implementation example, this message is generated by the order management server 410 and transmitted to the communication server 200 via the information processing server 300. The communication server 200 outputs the message transmitted from the order management server 410 to the chat service as a message from the chatbot.
[0089] In response, user terminal 100A (user 150A) inputs the message "Place my order please" to the chat service, as shown as message MS21.
[0090] In response, the chatbot outputs the message "What would you like?", shown as message MS22.
[0091] In response, user terminal 100A inputs the message "One cheeseburger please" to the chat service, shown as message MS23.
[0092] In response, the chatbot outputs the order information generated based on message MS23 along with the message "Anything else?" as shown as message MS24. The order information includes "1 x Cheeseburger (20% discount applied)" as shown as screen OD21. This order information represents one cheeseburger and also represents that a 20% discount is applied to this one cheeseburger. The fact that a 20% discount is applied is based on the context of previous messages in this thread.
[0093] More specifically, in this thread, message MS11 includes "20% discount coupon available". As a result, the context of message MS11 includes "20% discount coupon applied". Message MS23 is then interpreted using the context "20% discount coupon applied". Then, order information is generated to indicate that a 20% discount is applied to one cheeseburger, based on "cheeseburger" and "one" contained in message MG23 and the context "service: 20% discount applied".
[0094] Meanwhile, user terminal 100B (user 150B) inputs the message "I would like to place an order, please" to the chat service, as shown as message MS31.
[0095] In response, the chatbot outputs the message "What would you like?", shown as message MS32.
[0096] In response, user terminal 100B enters the message "One french fries please" into the chat service, as shown as message MS33.
[0097] In response, the chatbot outputs the order information generated based on message MS33 along with the message "Anything else?" as shown as message MS34. The order information is "1 x fries (20% discount applied)" as shown as screen OD31. This order information represents one fries and also represents that a 20% discount is applied to this one fries. The fact that a 20% discount is applied is based on the context of previous messages in this thread, similar to what was described above for screen OD21.
[0098] (Information flow) 16 and 17 are diagrams that show a schematic flow of information in generating the order information shown in FIG.
[0099] Fig. 16 mainly shows the conversation between the chat service in Fig. 15 and a user 150A (hereinafter also referred to as "user A"). Referring to Fig. 16, the order management server 410 transmits a message "20% discount coupon here" and the context of this message to the information processing server 300. The information processing server 300 transmits the message from the order management server 410 to the communication server 200 as a message from a chatbot. The communication server 200 outputs this message in the chat service.
[0100] The information processing server 300 also stores the above context in a context database 500 .
[0101] 18 is a diagram showing an example of information stored in the context database 500. In the context database 500, a context is stored in association with a time. In the second embodiment, the time stored in association with each context is an example of an element that defines the newness of each context.
[0102] The order management server 410 generates "Service: 20% discount applied" as the context of the message "20% discount coupon here." FIG. 19 is a diagram showing another example of information stored in the context database 500. In the example of FIG. 19, the context "Service: 20% discount applied" is stored together with the time when the context was stored (12:05 on September 1, 2022).
[0103] Returning to Fig. 16, in response to the message from the chatbot, the user terminal 100A outputs a message "Please place your order" to the chat service. When the information processing server 300 receives this message, it searches the context database 500 for a context associated with the thread shown in Fig. 16. Then, the information processing server 300 transmits to the order management server 410 the message from the user terminal 100A, the context obtained as the search result, and information identifying the user of the user terminal 100A (user A).
[0104] The order management server 410 interprets the message sent from the information processing server 300 and generates a response to the message, "What would you like?". The context sent from the information processing server 300 may be used for the interpretation.
[0105] The order management server 410 transmits the generated response together with the message context to the information processing server 300. The message context includes the context transmitted from the information processing server 300 together with the message and / or the context generated in interpreting the message.
[0106] The information processing server 300 transmits the response from the order management server 410 to the communication server 200. The communication server 200 outputs the response transmitted from the information processing server 300 as a reply to the user 150A.
[0107] The information processing server 300 further stores the context transmitted from the order management server 410 in the context database 500 .
[0108] Fig. 20 is a diagram showing yet another example of information stored in the context database 500. In Fig. 19, only the context at 12:05 on Sep. 1, 2022 is stored, whereas in Fig. 20, the context at 12:06 on Sep. 1, 2022 is further stored.
[0109] Returning to FIG. 16, in response to the message from the chatbot, the message "One cheeseburger please" is output from the user terminal 100A to the chat service. When the information processing server 300 receives this message, it searches the context database 500 for a context associated with the thread shown in FIG. 16. If multiple contexts are associated with the thread, the information processing server 300 may search only for the latest context. Then, the information processing server 300 transmits the message from the user terminal 100A, the context obtained as the search result, and information identifying the user of the user terminal 100A (user A) to the order management server 410.
[0110] The order management server 410 interprets the message sent from the information processing server 300 and generates a response to the message, "Is there anything else?", and order information. The context sent from the information processing server 300 may be used for the interpretation. The order information is generated as a result of the interpretation of the message, and has, for example, the contents shown on the screen OD21 in FIG. 15.
[0111] The order management server 410 transmits to the information processing server 300 the generated response "Anything else?" and the order information, as well as the context of the message "One cheeseburger" received from the information processing server 300. The context of the message "One cheeseburger" includes the context transmitted from the information processing server 300 together with the message and / or the context generated in interpreting the message. If the context "Item: Cheeseburger" and "User: User A" are generated in interpreting the message "One cheeseburger," the context of the message may include "Special offer: 20% discount applied" and "Item: Cheeseburger" and "User: User A."
[0112] The information processing server 300 transmits the response and the order information transmitted from the order management server 410 to the communication server 200, and the communication server 200 outputs the response and the order information to the chat service. The information processing server 300 also stores the context transmitted from the order management server 410 in the context database 500.
[0113] FIG. 21 is a diagram showing yet another example of information stored in the context database 500. In FIG. 21, compared to FIG. 20, a context of “Service: 20% Discount Applied / Item: Cheeseburger / User: User A” at 12:07 on September 1, 2022 is further stored. This context further includes “Item: Cheeseburger” and “User: User A” compared to the context at 12:07 on September 1, 2022.
[0114] FIG. 17 is a continuation of the flow of FIG. 16, and shows a conversation between the chat service in FIG. 15 and user 150B (hereinafter also referred to as "user B").
[0115] 17, in response to the message from the chatbot, the user terminal 100B outputs a message "Please place your order." to the chat service. When the information processing server 300 receives this message, it searches the context database 500 for a context associated with the thread shown in FIG. 17. Then, the information processing server 300 transmits to the order management server 410 the message from the user terminal 100B, the context obtained as the search result, and information identifying the user of the user terminal 100B (user B).
[0116] The order management server 410 interprets the message sent from the information processing server 300 and generates a response to the message, "What would you like?". The context sent from the information processing server 300 may be used for the interpretation.
[0117] The order management server 410 transmits the generated response together with the message context to the information processing server 300. The message context includes the context transmitted from the information processing server 300 together with the message and / or the context generated in interpreting the message.
[0118] The information processing server 300 transmits the response from the order management server 410 to the communication server 200. The communication server 200 outputs the response transmitted from the information processing server 300 as a reply to the user 150B.
[0119] The information processing server 300 further stores the context transmitted from the order management server 410 in the context database 500 .
[0120] Fig. 22 is a diagram showing yet another example of information stored in the context database 500. In Fig. 22, compared to Fig. 21, a context for 12:08 on Sep. 1, 2022 is further stored.
[0121] Returning to FIG. 17, in response to the message from the chatbot, the message "One French Fries, please." is output from the user terminal 100B to the chat service. When the information processing server 300 receives this message, it searches the context database 500 for a context associated with the thread shown in FIG. 17. If multiple contexts are associated with the thread, the information processing server 300 may search only for the latest context. Then, the information processing server 300 transmits the message from the user terminal 100B, the context obtained as the search result, and information identifying the user of the user terminal 100B (user B) to the order management server 410.
[0122] The order management server 410 interprets the message sent from the information processing server 300 and generates a response to the message, "Is there anything else?", and order information. The context sent from the information processing server 300 may be used for the interpretation. The order information is generated as a result of the interpretation of the message, and has, for example, the contents shown on the screen OD31 in FIG. 15.
[0123] The order management server 410 transmits to the information processing server 300 the generated response "Anything else?" and the order information, as well as the context of the message "One French Fries" received from the information processing server 300. The context of the message "One French Fries" includes the context transmitted from the information processing server 300 together with the message and / or the context generated in interpreting the message. When the context "Item: French Fries" is generated in interpreting the message "One French Fries," the context of the message may include "Special offer: 20% discount applied," "Item: French Fries," and "User: User B."
[0124] The information processing server 300 transmits the response and the order information transmitted from the order management server 410 to the communication server 200, and the communication server 200 outputs the response and the order information to the chat service. The information processing server 300 also stores the context transmitted from the order management server 410 in the context database 500.
[0125] 23 is a diagram showing yet another example of information stored in the context database 500. In FIG. 23, compared to FIG. 22, a context for 12:09 on September 1, 2022 is further stored. This context, compared to the context for 12:08 on September 1, 2022, further includes "Service: 20% discount applied / Item: French fries / User: User B".
[0126] In the examples described above with reference to FIGS. 16 to 23, a thread is an example of an "entity." Each of user terminal 100A (user 150A) and user terminal 100B (user 150B) is an example of a "unit." More specifically, user 150A is an example of a first unit, and user 150B is an example of a second unit. In one implementation example, each of user 150A and user 150B is identified by using a different account name in the chat service.
[0127] In this example, not only the context of the message from the user but also the context of the message from the chatbot may be used to interpret a message in a thread. Also, in a thread, the order information of each of the multiple users is generated so as to be distinguished from each other, but the messages of each of the multiple users are interpreted using a common context in the thread. That is, the order management server 410 associates the order information generated based on the message received from the user 150A with the user 150A, and associates the order information generated based on the message received from the user 150B with the user 150B.
[0128] [3. Second concrete example of generating order information] (Dialogue) Fig. 24 is a diagram showing another example of a dialogue in the message processing system 2. In the example of Fig. 24, similarly to the example of Fig. 15, users 150A and 150B input messages to a thread in a chat service. In the message processing system 2, the messages of users 150A and 150B are interpreted by using a context common to the thread, and order information of users 150A and 150B is generated.
[0129] 24, the chatbot (information processing server 300) outputs the message "Today's Recommendation: Special Cheeseburger + Large Coke" as a message MS41. In one implementation example, this message is generated by the order management server 410 and transmitted to the communication server 200 via the information processing server 300. The communication server 200 outputs the message transmitted from the order management server 410 to the chat service as a message from the chatbot.
[0130] In response, user terminal 100A (user 150A) inputs the message "Please give me that," shown as message MS51, to the chat service.
[0131] In response, the chatbot outputs the message "I'd like to add a special cheeseburger and a large coke to your order. Anything else?", shown as message MS52.
[0132] The chatbot further outputs order information generated based on message MS51. The order information includes "1x Special Cheeseburger" and "1x Large Coke" as shown as screen OD51. The order information represents one item "Special Cheeseburger" and one item "Large Coke". These items are based on the context of previous messages in this thread.
[0133] More specifically, in this thread, message MS41 includes "special cheeseburger" and "large coke", each of which represents an item. As a result, the context of message MS41 includes "item: special cheeseburger" and "item: large coke". Message MS51 is interpreted using this context. As a result, the order management server 410 recognizes the pronoun "it" in message MS51 as the items "special cheeseburger" and "large coke" included in the above context.
[0134] Meanwhile, user terminal 100B (user 150B) inputs the message "And some french fries please" to the chat service, as shown as message MS61.
[0135] In response, the chatbot outputs the message "I'd like to add a special cheeseburger and a large coke to your order. Anything else?", shown as message MS62.
[0136] The chatbot further outputs order information generated based on message MS61. The order information includes "1x Special Cheeseburger", "1x Large Coke", and "1x French Fries" as shown as screen OD61. The order information represents one item "Special Cheeseburger" and one item "Large Coke". These items are based on the context of previous messages in this thread. The order information further represents one item "French Fries". This item is based on message MS61.
[0137] More specifically, the order management server 410 recognizes the pronoun "it" in message MS61 as the items "special cheeseburger" and "large coke" based on the context of message MS41, similar to the pronoun "it" in message MS51. The order management server 410 further recognizes the item "fries" based on "and french fries" included in message MS61.
[0138] (Information flow) FIG. 25 is a diagram showing a schematic flow of information in generating the order information shown in FIG.
[0139] 25, the order management server 410 transmits a message "Today's Recommendation: Special Cheeseburger + Large Coke" and the context of this message to the information processing server 300. The information processing server 300 transmits the message from the order management server 410 to the communication server 200 as a message from a chatbot. The communication server 200 outputs this message in the chat service.
[0140] The information processing server 300 also stores the above context in a context database 500 .
[0141] Fig. 26 is a diagram illustrating an example of information stored in the context database 500. In the example of Fig. 26, the context "Item: Special Cheeseburger / Item: Large Coke" is stored together with the time (12:15 on September 1, 2022).
[0142] Returning to Fig. 25, in response to the message from the chatbot, the user terminal 100A outputs a message "Please give me that." to the chat service. When the information processing server 300 receives this message, it searches the context database 500 for a context associated with the thread shown in Fig. 25. Then, the information processing server 300 transmits to the order management server 410 the message from the user terminal 100A, the context obtained as the search result, and information identifying the user of the user terminal 100A (user A).
[0143] The order management server 410 interprets the message sent from the information processing server 300 and generates a response to the message, such as "I'll add a special cheeseburger and a large coke to your order. Is there anything else?" and order information. The context sent from the information processing server 300 may be used for the interpretation.
[0144] The order management server 410 transmits the generated response and order information together with the message context to the information processing server 300. The message context includes the context transmitted from the information processing server 300 together with the message and / or the context generated in interpreting the message.
[0145] The information processing server 300 transmits the response and the order information from the order management server 410 to the communication server 200. The communication server 200 outputs the response and the order information transmitted from the information processing server 300 as a reply to the user 150A.
[0146] The information processing server 300 further stores the context transmitted from the order management server 410 in the context database 500 .
[0147] FIG. 27 is a diagram showing yet another example of information stored in the context database 500. In FIG. 27, a context for 12:17 on September 1, 2022 is further stored. This context further includes "user: user A" compared to the context for 12:15 on the same day. This context means that the order information of user A includes the items "special cheeseburger" and "large cola."
[0148] Returning to Fig. 25, in response to the message from the chatbot, the user terminal 100B outputs a message to the chat service, "And some french fries, please." When the information processing server 300 receives this message, it searches the context database 500 for a context associated with the thread shown in Fig. 25. Then, the information processing server 300 transmits the message from the user terminal 100B, the context obtained as the search result, and information identifying the user of the user terminal 100B (user B) to the order management server 410.
[0149] The order management server 410 interprets the message sent from the information processing server 300 and generates a response to the message, such as "I'd like to add a special cheeseburger, a large coke, and french fries to your order. Is there anything else?" and order information. The context sent from the information processing server 300 may be used for the interpretation.
[0150] The order management server 410 transmits the generated response together with the message context to the information processing server 300. The message context includes the context transmitted from the information processing server 300 together with the message and / or the context generated in interpreting the message.
[0151] The information processing server 300 transmits the response from the order management server 410 to the communication server 200. The communication server 200 outputs the response transmitted from the information processing server 300 as a reply to the user 150B.
[0152] The information processing server 300 further stores the context transmitted from the order management server 410 in the context database 500 .
[0153] FIG. 28 is a diagram showing yet another example of information stored in the context database 500. In FIG. 28, in comparison with FIG. 27, a context for 12:18 on September 1, 2022 is further stored. This context includes "Item: Special Cheeseburger / Item: Large Coke / Item: French Fries / User: User B" compared with the context for 12:17 on the same day. This context means that the order information of user A includes the items "Special Cheeseburger" and "Large Coke", and the order information of user B includes the items "Special Cheeseburger", "Large Coke", and "French Fries".
[0154] In the examples described above with reference to Figures 24 to 28, when the order management server 410 interprets a message from a user using a context including information identifying an item, it recognizes a pronoun in the message as an item included in the context.
[0155] [4. Processing flow] The processing flow performed by the information processing server 300 and the order management server 410 in the second embodiment may be similar to the processing flow performed by the information processing server 300 and the conversation server 400 described with reference to FIG. 13.
[0156] In the second embodiment, the information processing server 300 can store in the context database 500 not only the context of a message from a user, but also the context of a message from a chatbot.
[0157] In the second embodiment, the order management server 410 generates order information in addition to the response (or as a part of the response). The information processing server 300 transmits the response and the order information (or the response including the order information) transmitted from the order management server 410 to the communication server 200. As a result, the response and the order information (or the response including the order information) are provided to the user in the chat service.
[0158] <Modification> The contents of the services described in each of the first and second embodiments are merely examples of usage of the message processing system. The services to which the message processing method of the present disclosure is applied are not limited to those described above. The message processing method of the present disclosure may be applied to other types of systems, such as SNS (social networking service). A "thread" is an example of an entity that is a range in which a context is shared. As long as the context can be identified as a range in which a context is shared, other examples of the unit of an entity may be one chat room in an SNS or one user account in a virtual assistant service.
[0159] Each embodiment disclosed herein should be considered as illustrative in all respects and not restrictive. The scope of the present invention is indicated by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims. In addition, the inventions described in the embodiments and each modified example are intended to be implemented, as far as possible, either alone or in combination. [Explanation of symbols]
[0160] 1,2 message processing system, 100, 100A, 100B user terminal, 150, 150A, 150B user, 200 communication server, 300 information processing server, 400 conversation server, 410 order management server, 500 context database, MS11, 21-24, 31-34, 41, 51, 52, 61, 62 message, OD21, 31, 51, 61 screen.
Claims
1. An information processing device acquiring a first message from a first entity; storing, in a storage device, a context of the first message in association with the first entity; The information processing device acquires a second message from the first entity; and providing the second message together with a context of the first message to an interpretation server that interprets the message.
2. The message processing method according to claim 1 , further comprising the step of: said information processing device searching for a context associated with said first entity in said storage device in response to obtaining said second message.
3. providing the first message to the interpretation server by the information processing device; The message processing method according to claim 1 or 2, further comprising the step of: said information processing device acquiring a context of said first message from said interpretation server.
4. the context of the first message is stored in the storage device together with an element representing the freshness of the context of the first message; storing, in the storage device, a context of the second message and an element representing the newness of the context of the second message in association with the first entity; The information processing device acquires a third message from the first entity; The information processing device searches for an updated context associated with the first entity in the storage device in response to receiving the third message; The message processing method according to claim 1 or 2, further comprising the step of: the information processing device providing the third message together with the latest context to the interpretation server.
5. The information processing device acquires a third message from a second entity; storing, in the storage device, a context of the third message in association with the second entity; The information processing device acquires a fourth message from the second entity; The method of claim 1 or 2, further comprising the step of: the information processing device providing the fourth message together with a context of the third message to the interpretation server.
6. the first message is obtained from a first unit of the first entity; The method of claim 1 or 2, wherein the second message is obtained from a second unit of the first entity.
7. the interpretation server interprets the first message and associates a result of interpreting the first message with the first unit; The method of claim 6, wherein the interpretation server interprets the second message and associates a result of interpreting the second message with the second unit.
8. the context of the first message includes information identifying an item of interest; The method of claim 6 , wherein interpreting the second message includes recognizing a pronoun in the second message as the item of interest.
9. one or more processors; A memory storing a program executed by the one or more processors, The information processing device, wherein the program causes the one or more processors to carry out the message processing method according to claim 1 or 2 by being executed by the one or more processors.
10. A program that, when executed by one or more processors, causes the one or more processors to perform the message processing method according to claim 1 or 2.