system
The system addresses the challenge of user burden in conventional inquiry systems by analyzing user input, referencing profiles, and generating personalized responses, thereby improving user experience and system efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-04
- Publication Date
- 2026-03-16
AI Technical Summary
Conventional inquiry systems require users to configure specific prompts, leading to increased user burden and fail to provide individualized responses based on user preferences and usage patterns, resulting in a degraded user experience.
A system that receives user input via a terminal, analyzes the text using natural language processing to extract context and intent, references user profiles, obtains relevant data from external sources, and generates personalized responses without requiring users to be aware of the prompt structure.
Enables users to receive tailored responses that improve user experience by providing natural and interactive communication, reducing the need for manual prompt configuration and enhancing system efficiency.
Smart Images

Figure 2026047968000001_ABST
Abstract
Description
Technical Field
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a persona chatbot control method performed by at least one processor, including steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a chatbot character, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In a conventional inquiry system, the problem was that the user had to configure a specific prompt, which increased the burden on the user. Also, it was difficult to provide individualized responses based on the preferences and usage patterns of individual users, and only general answers could be obtained, resulting in a problem of degraded user experience. The purpose of this invention is to solve these problems and provide a system that can obtain appropriate answers tailored to an individual without the user being aware of configuring the prompt.
Means for Solving the Problems
[0005] The system of the present invention includes means for receiving text entered by a user through a terminal. It also includes means for analyzing the received text using natural language processing and extracting context and intent. Furthermore, it includes means for referring to a user profile and updating the profile based on the user's preferences. This enables optimal responses for each individual user. It also includes means for obtaining relevant data from external information sources and generating responses based on that data and the user profile. It also includes means for sending the generated responses to the terminal. In this way, the user can receive individually customized responses without being aware of the prompt's structure.
[0006] "User" refers to an individual or legal entity that uses the system.
[0007] A "terminal" refers to a device used by a user to input text and communicate with a system. Examples include smartphones and computers.
[0008] A "server" refers to a central data processing unit that receives, analyzes, and processes data transmitted from terminals.
[0009] A "natural language processing engine" refers to software or algorithms that analyze text and extract context and intent.
[0010] A "user profile" refers to a dataset containing individual attribute information such as a user's preferences, interests, and usage patterns.
[0011] "External information sources" refer to external databases or APIs that a system accesses to obtain necessary data. An example would be a weather information API.
[0012] A "response generation module" refers to software or functionality that generates appropriate responses based on analyzed text and user profiles.
[0013] "Feedback" refers to the opinions, evaluations, or requests that users provide regarding the system's responses.
[0014] "Tokenization" refers to the process of dividing input text into individual words.
[0015] A "keyword" refers to a word or phrase in the entered text that is considered particularly important. [Brief explanation of the drawing]
[0016] [Figure 1] This is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] This is a conceptual diagram showing an example of the essential functions of a data processing device and a smart device according to the first embodiment. [Figure 3] This is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] This is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] This is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] This is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] This is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8] This is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] This shows an emotion map where multiple emotions are mapped. [Figure 10] This shows an emotion map where multiple emotions are mapped. [Figure 11] This is a sequence diagram showing the processing flow of the data processing system in Example 1. [Figure 12]It is a sequence diagram showing the processing flow of the data processing system in Application Example 1. [Figure 13] It is a sequence diagram showing the processing flow of the data processing system in Embodiment 2 when combined with an emotion engine. [Figure 14] It is a sequence diagram showing the processing flow of the data processing system in Application Example 2 when combined with an emotion engine.
Mode for Carrying Out the Invention
[0017] Hereinafter, an example of an embodiment of a system according to the technology of the present disclosure will be described with reference to the accompanying drawings.
[0018] First, the terminology used in the following description will be explained.
[0019] In the following embodiments, the numbered processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Also, the processor may be a single type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), an APU (Accelerated Processing Unit), and the like.
[0020] In the following embodiments, the numbered RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a work memory by the processor.
[0021] In the following embodiments, the signed storage is one or more non-volatile storage devices that store various programs and various parameters. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), or magnetic tapes.
[0022] In the following embodiments, the signed communication interface (I / F) is an interface that includes a communication processor and an antenna, etc. The communication interface manages communication between multiple computers. Examples of communication standards applicable to the communication interface include wireless communication standards such as 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0023] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." That is, "A and / or B" means that it may be A alone, or B alone, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" applies when expressing three or more things linked by "and / or."
[0024] [First Embodiment]
[0025] Figure 1 shows an example of the configuration of the data processing system 10 according to the first embodiment.
[0026] As shown in Figure 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0027] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0028] The smart device 14 comprises a computer 36, a reception device 38, an output device 40, a camera 42, and a communication interface 44. The computer 36 comprises a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The reception device 38, output device 40, and camera 42 are also connected to the bus 52.
[0029] The reception device 38 is equipped with a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by detecting contact with an object (e.g., a pen or finger). The microphone 38B receives user input by detecting the user's voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the data indicating the user input.
[0030] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user 20 by outputting the data in a form perceptible to the user 20 (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0031] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0032] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0033] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0034] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0035] In the smart device 14, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The reception output program 60 is used in conjunction with a specific processing program 56 by the data processing system 10. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0036] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0037] This invention relates to a system that allows users to receive personalized responses without being aware of the prompt structure. This system primarily consists of the following main components:
[0038] 1. Means for receiving text entered by the user via a device.
[0039] 2. Means for analyzing text using a natural language processing engine
[0040] 3. Means for accessing and updating user profiles
[0041] 4. Means of obtaining relevant data from external sources
[0042] 5. Means for generating responses based on acquired data and user profiles
[0043] 6. Means of sending the response to the device
[0044] Program processing
[0045] User input reception
[0046] The user types "What's the weather like tomorrow?" through their device. This entered text is sent directly to the server.
[0047] Text reception and parsing
[0048] The server first receives the text from the terminal in order to analyze it. After receiving the text, it uses a natural language processing engine to analyze it and extract the intent, "tomorrow's weather." This analysis includes tokenization and keyword extraction.
[0049] User profile verification and update
[0050] The server references the user profile based on the analyzed intent. The user profile contains information such as past interactions and user preferences. For example, it records whether the user prefers a friendly tone or polite explanations. When the user profile is updated, this information is also updated accordingly.
[0051] Generating the answer
[0052] The server retrieves data from an external source (e.g., a weather API) to generate an appropriate response. Based on the retrieved weather data, information such as "It will be sunny tomorrow" is sent to the server.
[0053] The server's response generation module uses user profiles and weather data to generate a friendly response such as, "It's going to be sunny tomorrow, so it'll be a great day to go out!"
[0054] Submit and display of responses
[0055] The server sends the generated response to the terminal.
[0056] The device displays the received response to the user.
[0057] Specific example
[0058] Let's consider a scenario where a user enters "I want to know the weather for this week." In this case, the server parses the text using a similar process, verifies the user profile, and then retrieves the week's weather data from the weather API. For example, if the retrieved data is "This week, it will rain on Monday and Tuesday, and be sunny on the rest of the week," the server generates a response such as "This week's weather forecast is rain in the first half of the week and sunny in the second half" and sends it to the device.
[0059] In this way, users can receive individually customized information without having to be aware of the prompt's structure. This system aims to improve the user experience and enable natural, interactive communication.
[0060] The following describes the processing flow.
[0061] Step 1:
[0062] The user enters "What's the weather like tomorrow?" through their device.
[0063] Step 2:
[0064] The terminal sends the entered text to the server. At this time, the text data is sent as a data packet.
[0065] Step 3:
[0066] The server receives the text sent from the terminal. The received data is temporarily stored in memory.
[0067] Step 4:
[0068] The server's natural language processing engine activates and performs tokenization of the incoming text. It divides the text into words and extracts the keywords "tomorrow" and "weather".
[0069] Step 5:
[0070] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request."
[0071] Step 6:
[0072] The server consults the user profile database to determine the user's preferences. For example, if the user prefers a friendly tone, that information is retrieved.
[0073] Step 7:
[0074] The server adds or updates new data to the user profile as needed.
[0075] Step 8:
[0076] The server sends a request to an external weather API to obtain weather information.
[0077] Step 9:
[0078] The server analyzes weather data received from an external weather API. In this case, it obtains the information "It will be sunny tomorrow."
[0079] Step 10:
[0080] The server's response generation module generates appropriate responses based on the user profile and acquired weather data. For example, it might generate a friendly response such as, "It's going to be sunny tomorrow, so it'll be a great day to go out!"
[0081] Step 11:
[0082] The server sends the generated response to the terminal. The response data is sent as a data packet.
[0083] Step 12:
[0084] The device analyzes the received response data and displays it to the user. The screen displays "It will be sunny tomorrow, so it will be a good day to go out!"
[0085] Step 13:
[0086] Users provide feedback on the answers (for example, by clicking the "Helpful" button).
[0087] Step 14:
[0088] The device sends feedback data to the server. The feedback data is sent as a data packet.
[0089] Step 15:
[0090] The server receives feedback data and updates the user profile. The feedback reflects the user's satisfaction level and further preferences.
[0091] (Example 1)
[0092] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0093] Conventional information retrieval systems often struggle to provide appropriate and personalized responses to user prompts. Furthermore, they rarely offer sufficient customization based on users' past search history and preferences, resulting in a lack of responses that meet individual needs. This can limit the user experience and reduce the system's overall value.
[0094] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0095] In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing to extract context and intent, and means for referring to the user profile and updating the profile based on the user's preferences. This makes it possible to generate and appropriately display personalized responses to user input.
[0096] A "user" refers to an individual or group that uses a system and inputs information through a terminal.
[0097] A "terminal" refers to an electronic device used by a user to input data and communicate with a server. Examples include smartphones, personal computers, and tablets.
[0098] "Text" refers to string data entered by the user through their device.
[0099] A "server" refers to a computer system that receives, analyzes, retrieves data from text, and generates responses.
[0100] "Natural language processing" refers to techniques where a server analyzes text and extracts context and intent. Examples include tokenization, morphological analysis, and keyword extraction.
[0101] "Methods for extracting intent" refers to the process of identifying the purpose or request from the text entered by the user using natural language processing.
[0102] A "user profile" refers to a collection of information that includes a user's individual preferences and past data.
[0103] "External information sources" refer to external data providers that servers use to retrieve data. Examples include weather APIs and news APIs.
[0104] "Response generation" refers to the process by which the server generates information corresponding to user input based on the user profile and external data.
[0105] "Feedback" refers to the evaluations and reactions that users give to the generated answers.
[0106] "Tokenization" refers to a natural language processing technique that divides input text into words and phrases.
[0107] "Keyword extraction" refers to a natural language processing technique that identifies key words and phrases from input text.
[0108] This invention is a system that allows users to receive personalized responses without being aware of the prompt structure. This system primarily consists of a user, a terminal, and a server.
[0109] Specifically, text entered by the user through their device is sent to the server. The server analyzes the received text using a natural language processing engine (e.g., Google® NLP API or SpaCy) to extract context and intent. This analysis includes tokenization, morphological analysis, and keyword extraction. For example, in response to the input "What's the weather like tomorrow?", the keywords "tomorrow" and "weather" are extracted.
[0110] Next, the server refers to the user profile based on the analyzed intent. The user profile records past interactions and the user's preferences. For example, if it contains information that the user prefers a friendly tone, the profile may be updated accordingly.
[0111] The server retrieves relevant data from external sources (e.g., the OpenWeatherMap API) and generates responses based on the retrieved data and the user profile. For example, if it retrieves weather data and the information is "It will be sunny tomorrow," and the user prefers a friendly tone, it will generate a response such as "It will be sunny tomorrow, so it's a great day to go out!"
[0112] The generated response is sent from the server to the terminal, and the terminal displays the response to the user. The user can provide feedback on the response, and the server receives this feedback and updates the user profile.
[0113] As a concrete example, consider a case where a user inputs "I want to know the weather for this week." In this case, the text is sent to the server and parsed by a natural language processing engine. The server then retrieves the week's weather data from a weather API (for example, the OpenWeatherMap API) and obtains information such as "This week, it will rain on Monday and Tuesday, and be sunny for the rest of the week." Based on this data, it generates a response such as "This week's weather forecast is rain in the first half of the week and sunny in the second half," and sends it to the terminal.
[0114] Examples of prompt statements include:
[0115] 1. "If a user enters 'I want to know this week's weather,' how should we respond?"
[0116] 2. "How can I customize weather information based on the user's profile?"
[0117] Such a system improves the user experience because users receive individually customized information without having to be aware of the prompt configuration. It also features natural and interactive communication.
[0118] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0119] Step 1:
[0120] The user enters a question through their device. For example, they might type "What's the weather like tomorrow?". The entered text is then sent from the device to the server.
[0121] Input: User's input text "What will the weather be like tomorrow?"
[0122] Output: Text sent to the server
[0123] Specific operation: The terminal displays a text input box, and after the user completes the input, the text is sent to the server when the send button is pressed.
[0124] Step 2:
[0125] The server first receives the text from the terminal in order to analyze it. The received text is then analyzed using a natural language processing engine (e.g., Google NLP API or SpaCy). The analysis includes tokenization, morphological analysis, and keyword extraction.
[0126] Input: Text received from the terminal: "What's the weather like tomorrow?"
[0127] Output: Tokenized words and phrases, extracted keywords "tomorrow" and "weather"
[0128] Specific operation: The server receives text with a receiving module and starts a natural language processing engine to analyze the text. During the analysis process, a tokenizer first divides the text into words, then performs morphological analysis, and finally extracts important keywords.
[0129] Step 3:
[0130] The server references the user profile based on the analyzed intent. The user profile is stored in a database containing information such as past interactions and user preferences. The profile is updated as needed.
[0131] Input: Analyzed keywords "tomorrow" and "weather"
[0132] Output: Corresponding user profile information
[0133] Specific operation: The server searches the database based on the user ID and retrieves the profile data of the corresponding user. It also updates the profile if new user preferences or tendencies are discovered.
[0134] Step 4:
[0135] The server sends a request to retrieve relevant data from an external source (e.g., the OpenWeatherMap API). The retrieved data is then returned to the server.
[0136] Input: Keywords and user profile
[0137] Output: Data obtained from an external source (e.g., "It will be sunny tomorrow")
[0138] Specific operation: The server generates an API request and sends it to an external information source. It receives a response from the API and extracts the necessary information from it.
[0139] Step 5:
[0140] The server generates responses based on acquired weather data and user profiles. For example, it generates responses in a context that suits the user's preferences, such as, "It will be sunny tomorrow, so it's a great day to go out!"
[0141] Input: Acquired weather data, user profile
[0142] Output: Generated answer text
[0143] Specific operation: The server's response generation module uses weather data and profiles to execute a natural language generation algorithm and generate an appropriate response.
[0144] Step 6:
[0145] The server sends the generated response to the terminal. The terminal displays the received response to the user.
[0146] Input: Generated response text
[0147] Output: Answer displayed on the terminal
[0148] Specific operation: The server uses a messaging protocol to send the response to the terminal, and the terminal's display module displays the received response on the screen. If a text-to-speech function is available, the response may also be played back aloud.
[0149] (Application Example 1)
[0150] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart device 14 will be referred to as the "terminal."
[0151] In conventional systems, operating machinery and checking its status within a factory requires users to manually input various settings and commands, which is time-consuming and labor-intensive. Furthermore, it is prone to operational errors and miscommunication, leading to decreased work efficiency. There is a growing need for a system that allows users to operate intuitively without having to be aware of specific prompt configurations.
[0152] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0153] In this invention, the server includes means for receiving text entered by a user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to a user profile and updating the profile based on the user's preferences, means for obtaining relevant data from an external information source, means for generating a response based on the user profile and the obtained data, means for transmitting the generated response to the terminal, and means for processing instructions regarding the operation or status check of factory machinery. This enables the user to efficiently operate factory machinery and check its status without being aware of the prompt configuration.
[0154] A "user" refers to anyone or a group who uses the system, performing operations or giving instructions through a terminal.
[0155] A "device" is an electronic device used by a user for operation or input, and includes smartphones, tablets, and personal computers.
[0156] "Text" refers to a string of characters entered by a user through a device, and is a sentence written in natural language.
[0157] "Natural language processing" refers to the technology that enables computers to understand and analyze natural human language, and includes methods for extracting the context and intent of text.
[0158] "Context" refers to the situation or background in which words in a text are placed, or the meanings they carry.
[0159] "Intention" refers to the purpose or action expressed in the text entered by the user.
[0160] A "user profile" is data that records information such as a user's preferences and past interactions, and is used by the system to generate individually customized responses.
[0161] "External information sources" refer to data providers that exist outside the system, such as APIs and databases.
[0162] "Data" refers to information obtained from external sources, which are the raw materials that a system uses to generate responses.
[0163] "Machinery" refers to various pieces of equipment and devices used within a factory, and is a tool for performing specific tasks or processes.
[0164] "Operation" refers to instructions or control actions that a user performs on a machine, and includes actions that change the machine's operation or settings.
[0165] "Status check" is the act of checking the current status and operating condition of a machine, and is performed for maintenance and monitoring purposes.
[0166] An "instruction" is a specific command or request that a user gives to a system or machine, and is often expressed in text.
[0167] "Answer" refers to the response that a system generates based on user input, and includes information and instructions provided to the user.
[0168] A "server" refers to a computing resource necessary for a system to operate; it is the central device that receives data from users, processes it, and generates responses.
[0169] "Tokenization" is the process of dividing text into simpler constituent elements, and it is a technique used to extract keywords and phrases.
[0170] This invention relates to a system that allows users to efficiently operate and check the status of factory machinery without being aware of the prompt configuration. This system receives text entered by the user through a terminal, extracts context and intent using natural language processing, and provides the user with a response generated by referring to the user profile.
[0171] The system consists of the following main parts:
[0172] 1. User Input Reception: Users input text via their device (smartphone, tablet, etc.). When a user enters instructions such as "I want to check the robot's status," this text is sent to the server.
[0173] 2. Text Reception and Parsing: The server parses the text received from the terminal and extracts its context and intent. This parsing uses natural language processing with the Transformers library. Specifically, it performs tokenization and extracts keywords.
[0174] 3. User Profile Verification and Update: The server references user profiles based on the analyzed intent. User profiles record past interactions and user preferences, such as whether they prefer detailed reports. Profiles are updated as needed.
[0175] 4. Data acquisition from external sources: The server acquires information about the robot's status and the operation of factory machinery from external sources (APIs, databases, etc.). For example, it acquires the robot's current operating status.
[0176] 5. Generating Responses: Based on the acquired data and user profile, the server generates appropriate responses. If the user wants to know the status of the robots, a response such as "Robot A is currently operational, Robot B is on standby" will be generated. Natural language generation (NLG) technology is used for this generation.
[0177] 6. Sending and displaying responses: The server sends the generated response to the terminal. The terminal displays this response to the user.
[0178] Specific example
[0179] When a user types "I want to check the robot's status," the server parses the text in a similar manner, verifies the user profile, and then retrieves data about the robot's status from an external source. For example, if the retrieved data is "Robot A is running, Robot B is on standby," the server generates a response such as "Robot A is currently running, Robot B is on standby" and sends it to the terminal. Users can intuitively receive the necessary information without having to be aware of the prompt's structure.
[0180] This system significantly improves the efficiency of user operations and monitoring tasks within the factory, and reduces the occurrence of errors.
[0181] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0182] Step 1:
[0183] The user inputs text through a terminal. In this process, the user inputs text such as "I want to check the robot's status" on the terminal, and the terminal sends that text to the server. The input is "I want to check the robot's status," and the output is the transmitted text.
[0184] Step 2:
[0185] The server analyzes the input text received from the terminal. It uses a natural language processing engine (Transformers library) to analyze the received data (input text) and extract context and intent. Specifically, the server performs tokenization and extracts keywords. The input is the received text, and the output is the analysis result (intent and keywords).
[0186] Step 3:
[0187] The server references and updates the user profile based on the analysis results. The user profile records information such as past interactions and user preferences. The server uses this information to update the profile as needed. The input is the analysis results and the current user profile, and the output is the updated user profile.
[0188] Step 4:
[0189] The server retrieves relevant data from external sources. In this example, it sends a request to an external database, such as an API, to retrieve data about the status of robots in the factory. The input is the request information, and the output is the retrieved robot status data.
[0190] Step 5:
[0191] The server generates responses based on the user profile and acquired data. Using the acquired data and user profile, it employs a natural language generation engine to create appropriate responses for the user. For example, it might generate a response such as, "Robot A is currently operational, Robot B is on standby." The input is the updated user profile and acquired external data, and the output is the generated response text.
[0192] Step 6:
[0193] The server sends the generated response to the terminal. The terminal displays this received response to the user. The input is the generated response text, and the output is the displayed response.
[0194] In each processing step, the server analyzes, references, updates, retrieves, generates, and transmits data, and the output obtained in each step becomes the input for the next step. This creates a system that allows users to intuitively operate and check the status of factory machinery.
[0195] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0196] This invention combines an emotion engine with a system that provides personalized responses without requiring the user to configure prompts. This enables more appropriate and personalized responses that take the user's emotions into account. The system consists of the following main parts:
[0197] 1. Means for receiving text entered by the user via a device.
[0198] 2. Means for analyzing text using a natural language processing engine
[0199] 3. Means for accessing and updating user profiles
[0200] 4. Means of obtaining relevant data from external sources
[0201] 5. Means for generating responses based on acquired data and user profiles
[0202] 6. A means of recognizing the user's emotions using an emotion engine and adjusting the tone of the response.
[0203] 7. Means for sending the generated response to the terminal.
[0204] Program processing
[0205] User input reception
[0206] The user enters "What's the weather like tomorrow?" through their terminal. This user input becomes the starting point for the entire system's processing.
[0207] Text reception and parsing
[0208] The terminal sends the user's input text to the server.
[0209] The server receives text sent from the terminal, performs text tokenization using a natural language processing engine, and extracts keywords.
[0210] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request."
[0211] User profile verification and update
[0212] The server refers to the user profile database to check the user's preferences and past interactions. For example, whether they prefer a friendly tone or specific data.
[0213] The server adds or updates new data to the user profile as needed.
[0214] How the emotion engine works
[0215] The server uses an emotion engine to recognize emotions from the text entered by the user. For example, it determines whether the user's emotion is "expectation," "anxiety," "excitement," or "anger" based on the context and vocabulary of the text.
[0216] The recognized emotions are added to the user profile.
[0217] Generating the answer
[0218] The server sends a request to an external weather API to retrieve weather information.
[0219] The server analyzes the weather data received from the weather API and, for example, obtains weather data such as "It will be sunny tomorrow."
[0220] The server's response generation module generates appropriate responses based on the user profile, sentiment engine results, and acquired weather data. For example, it generates a friendly message that takes user expectations into account, such as, "It's going to be sunny tomorrow, so it's a great day to go out!"
[0221] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user is angry, a more polite and calm tone of response will be generated.
[0222] Submit and display of responses
[0223] The server sends the generated response to the terminal.
[0224] The device displays the received response to the user.
[0225] Specific example
[0226] For example, if a user types "I'm worried about tomorrow's weather," the server analyzes the text and uses an emotion engine to recognize the emotion "anxiety." Based on this information, the server generates a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out." This response is then sent to the device and displayed to the user.
[0227] In this way, the present invention aims to improve the user experience and provides a system that enables natural and effective interaction that is in line with the user's emotions.
[0228] The following describes the processing flow.
[0229] Step 1:
[0230] The user types "I'm worried about tomorrow's weather" through their device.
[0231] Step 2:
[0232] The terminal sends the entered text to the server. At this time, the text data is sent as a data packet.
[0233] Step 3:
[0234] The server receives the text sent from the terminal. The received data is temporarily stored in memory.
[0235] Step 4:
[0236] The server's natural language processing engine activates and performs tokenization of the incoming text. It divides the text into words and extracts keywords such as "tomorrow," "weather," and "worry."
[0237] Step 5:
[0238] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request." It also infers that the user's emotion is "anxiety" from the keyword "worry."
[0239] Step 6:
[0240] The server uses an emotion engine to recognize the emotions of the entire text. The emotion engine analyzes keywords, context, and expressions, and classifies the emotions embedded in the text entered by the user as "anxiety."
[0241] Step 7:
[0242] The server refers to the user profile database to check the user's preferences and past interactions. For example, it can find out whether the user prefers a friendly tone or specific data.
[0243] Step 8:
[0244] If necessary, the server will add or update new data to the user profile. In this case, the emotion "anxiety" will also be added to the user profile.
[0245] Step 9:
[0246] The server sends a request to an external weather API to retrieve weather information. This request includes the user's current location and date / time information.
[0247] Step 10:
[0248] The server analyzes weather data received from an external weather API. In this case, it retrieves weather data indicating "sunny tomorrow."
[0249] Step 11:
[0250] The server's response generation module generates appropriate responses based on the user profile, sentiment engine results, and acquired weather data. For example, it might generate a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out."
[0251] Step 12:
[0252] The server sends the generated response to the terminal. The response data is sent as a data packet.
[0253] Step 13:
[0254] The device analyzes the received response data and displays it to the user. The screen displays, "It will be sunny tomorrow, so there's nothing to worry about. It's perfect weather for going out."
[0255] Step 14:
[0256] Users provide feedback on the answers (for example, by clicking the "Helpful" button).
[0257] Step 15:
[0258] The device sends feedback data to the server. The feedback data is sent as a data packet.
[0259] Step 16:
[0260] The server receives feedback data and updates the user profile. The feedback reflects the user's satisfaction level and further preferences. The results of the sentiment engine are also saved in the profile and reflected in future responses.
[0261] (Example 2)
[0262] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart device 14 as the "terminal".
[0263] Traditional systems have difficulty providing personalized responses without users having to configure prompts, and furthermore, they have been inadequate in terms of emotionally sensitive responses. As a result, the user experience has not improved, and it is difficult to adequately meet user needs.
[0264] The identification processing performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means. In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to the user profile and updating the profile based on the user's preferences, means for obtaining relevant data from an external information source, means for generating an answer based on the user profile and the acquired data, means for recognizing the user's emotions using an emotion engine and adjusting the tone of the answer, and means for transmitting the generated answer to the terminal. This makes it possible to provide more personalized, appropriate, and emotionally sensitive answers based on the user's emotions and past interactions.
[0265] A "user" refers to an individual or entity that uses a system to input information and receives the outputted response.
[0266] A "terminal" refers to a device or equipment that a user uses to access a system and input or receive data.
[0267] "Text" refers to strings of characters entered by a user through a device, and is information expressed in the form of questions, instructions, etc.
[0268] "Natural language processing" refers to techniques for analyzing text and extracting context and intent from human language.
[0269] "Context" refers to the background information and situation necessary to understand the meaning of the text.
[0270] "Intent" refers to information that indicates what the user is looking for or intends based on the text they have entered.
[0271] A "user profile" refers to data that records information such as a user's preferences, past interactions, and emotional state, and is managed individually for each user.
[0272] "External information sources" refer to information providers such as APIs and databases that exist outside the system and are referenced to provide necessary data.
[0273] An "emotion engine" refers to a technology that analyzes and recognizes emotions from text entered by the user, and adjusts the tone of the response based on the results.
[0274] "Tone" refers to the wording and nuances of the generated response, meaning expressions that take the user's feelings into consideration.
[0275] "Answer" refers to the information or message that the system generates and provides in response to user input.
[0276] "Feedback" refers to the act of providing evaluation or comments on the answers generated by the user.
[0277] "Means for receiving" refers to the process or device for taking in the input data from the user into the server.
[0278] "Means for transmitting" refers to the process or device for sending the generated answer from the server to the user's terminal.
[0279] Modes for Carrying Out the Invention
[0280] This invention combines an emotion engine with a system that provides personalized answers without the user having to configure prompts, enabling more appropriate and personalized responses that take into account the user's emotions. This system consists of the following main parts.
[0281] Receiving User Input
[0282] The user inputs text through the terminal. For example, the user inputs "What's the weather like tomorrow?". The user's input serves as the starting point for the processing of the entire system.
[0283] The terminal receives the input text and temporarily stores it.
[0284] Receiving and Analyzing Text
[0285] The terminal sends the user's input text to the server as an HTTP request.
[0286] The server receives the text sent from the terminal. In the receiving process, an API endpoint (e.g., / receive - text) is used.
[0287] The server performs text tokenization using its natural language processing engine (e.g., SpaCy) to break down the input text into keywords.
[0288] The server's intent analysis module recognizes the user's intent (e.g., "request for weather forecast") from the extracted keywords.
[0289] User profile verification and update
[0290] The server uses the user ID to send queries to a profile database (e.g., MySQL®) to retrieve and update user preferences and past interaction data.
[0291] The server analyzes the acquired data to determine whether the user prefers a friendly tone and specific data.
[0292] Add or update new data to the user profile as needed.
[0293] How the emotion engine works
[0294] The server calls an emotion engine (e.g., IBM Watson® Tone Analyzer) using an API request and sends the text entered by the user.
[0295] The emotion engine analyzes the text and recognizes the user's emotions. The emotion recognition results are returned to the server in JSON format.
[0296] The server receives this recognition result and adds sentiment information (e.g., "expectation") to the user profile.
[0297] Generating the answer
[0298] The server sends a request to an external weather API (e.g., OpenWeatherMap API) to retrieve weather information. For example, it might execute a request like GET / weather?q=Tokyo&appid={API_KEY}.
[0299] The Weather API returns weather data in JSON format. For example, it includes data such as "Tomorrow will be sunny."
[0300] The server's response generation module combines the user profile, the results of the sentiment engine, and the acquired weather data to generate an appropriate response. For example, it generates a message such as "Tomorrow will be sunny, so it's a great day to go out!"
[0301] Based on the results of the sentiment engine, adjust the tone and content of the response. For example, when the user shows "uneasiness", generate a response with a calming tone like "Tomorrow will be sunny, so there's no need to worry."
[0302] Transmission and Display of the Response
[0303] The server sends the response generated to the terminal as an HTTP response.
[0304] The terminal displays the received response to the user. For example, it displays a message like "Tomorrow will be sunny, so it's a great day to go out!" on the app screen.
[0305] Specific Example
[0306] For example, when the user inputs "I'm worried about tomorrow's weather", the server analyzes the text and uses the sentiment engine to recognize the emotion of "uneasiness". Based on this information, the server generates a reassuring response like "Tomorrow will be sunny, so there's no need to worry. It's a great day to go out." Then, this response is sent to the terminal and displayed to the user.
[0307] Examples of Prompt Sentences
[0308] Prompt sentences like the following can be input into the generative AI model.
[0309] "Generate an appropriate response when a user types 'I'm worried about tomorrow's weather.' The response should include a message in a reassuring tone, such as 'It will be sunny tomorrow, so don't worry. It's perfect weather for going out.'"
[0310] In this way, the present invention realizes a system that provides natural and effective interaction that is in line with the user's emotions.
[0311] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0312] Step 1: User Input Reception
[0313] The user enters "What's the weather like tomorrow?" via their device. This input text is the starting point for processing.
[0314] The device receives the text entered by the user and stores it temporarily.
[0315] Input: User-entered text "What will the weather be like tomorrow?"
[0316] Output: Received text "What's the weather like tomorrow?"
[0317] Step 2: Receiving and Parsing Text
[0318] The terminal sends the user's input text to the server as an HTTP request.
[0319] The server receives text sent from the terminal and performs tokenization using a natural language processing engine (e.g., SpaCy).
[0320] The server's intent analysis module analyzes the keywords extracted through tokenization (e.g., "tomorrow," "weather") and recognizes the intent of a "weather forecast request."
[0321] Input: Received text message: "What's the weather like tomorrow?"
[0322] Output: "Weather forecast request" as the intended message.
[0323] Step 3: Verify and update user profile
[0324] The server sends a query to a profile database (e.g., MySQL) based on the user's ID to retrieve user preferences and past interaction data.
[0325] The server uses the retrieved data to determine the user's preferences (e.g., whether they prefer a friendly tone or specific data).
[0326] If necessary, the server queries the profile database to add or update new data to the user profile.
[0327] Input: Query based on User ID
[0328] Output: User preferences and past interaction data
[0329] Step 4: Operating the Emotion Engine
[0330] The server calls the API of an emotion engine (e.g., IBM Watson Tone Analyzer) and sends the text entered by the user.
[0331] The emotion engine analyzes the text and returns the user's emotions (e.g., "expectation," "anxiety") as a result to the server in JSON format.
[0332] Based on the emotion recognition results received by the server, emotion information is added to the user profile.
[0333] Input: User input text
[0334] Output: User's emotion (e.g., "anxiety")
[0335] Step 5: Generating the response content
[0336] The server sends a request to an external weather API (e.g., OpenWeatherMap API) to retrieve weather information. For example, it might execute a request like GET / weather?q=Tokyo&appid={API_KEY}.
[0337] The weather API returns weather data to the server in JSON format. For example, it might include data such as "Tomorrow will be sunny."
[0338] The server's response generation module generates an appropriate response based on the user profile, sentiment engine results, and acquired weather data. For example, it might create a message like, "It's going to be sunny tomorrow, so it's a great day to go out!"
[0339] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user indicates "anxiety," a calm response such as "It will be sunny tomorrow, so there's nothing to worry about" is generated.
[0340] Input: User profile, sentiment data, weather data
[0341] Output: Generated response: "It will be sunny tomorrow, so there's nothing to worry about."
[0342] Step 6: Submit and view your response
[0343] The server sends the generated response to the terminal as an HTTP response.
[0344] The device displays the received response to the user. For example, it might display a message on the app screen saying, "It will be sunny tomorrow, so don't worry. It's perfect weather for going out."
[0345] Input: Generated answer
[0346] Output: Message displayed on the device: "It will be sunny tomorrow, so there's nothing to worry about. It's perfect weather for going out."
[0347] (Application Example 2)
[0348] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as a "server" and the smart device 14 as a "terminal".
[0349] While modern content delivery services commonly recommend content based on users' personal preferences, emotion-based personalization is not sufficiently implemented. Providing content that is optimal for a user's temporary emotions and mood at that moment would further enhance the user experience and increase satisfaction. However, conventional systems lack sufficient emotion recognition capabilities, making emotion-based recommendations difficult.
[0350] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0351] In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to the user profile and updating the profile based on the user's preferences, means for obtaining relevant data from external sources, means for generating a response based on the user profile and the obtained data, means for recognizing the user's emotions and adjusting the tone of the response, and means for transmitting the generated response to the terminal. This enables personalized movie and drama recommendations that are tailored to the user's emotions.
[0352] "Means of receiving text entered by a user through a device" refers to the process by which a user enters text into an electronic device such as a smartphone or smart glasses, and the system receives that text data.
[0353] "Methods for analyzing text using natural language processing to extract context and intent" refers to the process of analyzing input text data using natural language processing techniques to understand the background and subject matter of that text.
[0354] "Means of referencing user profiles and updating profiles based on user preferences" refers to the process of checking user information stored within the system based on user behavior and input, and updating that information to the latest state.
[0355] "Means of obtaining relevant data from external sources" refers to the process of obtaining necessary information from the internet or external databases and using it within the system.
[0356] "Means for generating responses based on the user profile and acquired data" refers to a process that generates appropriate responses to provide to the user based on the user's profile information and acquired external data.
[0357] "Means of recognizing user emotions and adjusting the tone of responses" refers to the process of analyzing the emotions from the user's input text and adjusting the tone and expression of the response according to the results of that analysis.
[0358] "Means for sending the generated response to the terminal" refers to the process of sending the generated response to the user's electronic terminal for display.
[0359] "A means for users to provide feedback on generated responses" refers to the process by which users input their opinions and impressions on the provided responses and provide that information to the system.
[0360] "Means for receiving the aforementioned feedback and updating the user profile" refers to the process of receiving feedback from the user and updating the user profile to the latest state based on the content of that feedback.
[0361] "A method for generating content that recommends movies and dramas tailored to the user's emotions" refers to a process that selects and provides movies and dramas that are best suited to the user's mood at that time, based on the results of an emotional analysis.
[0362] "Natural language processing is a means of tokenizing and extracting keywords," which means that input text data is broken down into words and phrases, and important keywords are identified from among them.
[0363] System Overview
[0364] This invention is a personalized movie and TV show recommendation system that takes user emotions into consideration. The system primarily recognizes user emotions and recommends content based on those emotions. It also receives user feedback and updates the user profile to improve the accuracy of future recommendations.
[0365] Hardware and software to be used
[0366] Hardware:
[0367] smartphone
[0368] Smart Glasses
[0369] Servers (including cloud servers)
[0370] software:
[0371] Natural language processing engines (e.g., Hugging Face's "transformers" library)
[0372] Emotion recognition engine
[0373] External data APIs (e.g., movie recommendation API)
[0374] User Interface (UI) Components
[0375] Explanation of the processing procedure
[0376] User input reception
[0377] The user inputs text via their smartphone or smart glasses. For example, if they input "I'm feeling kind of depressed today," this input becomes the starting point for the entire system's processing.
[0378] Text reception and parsing
[0379] The user's input text is sent from the terminal to the server. The server receives the text and analyzes it using a natural language processing engine. This analysis first performs tokenization and extracts keywords. Next, an intent analysis module analyzes the user's sentiment from the extracted keywords.
[0380] User profile verification and update
[0381] The server refers to the user profile database to check past interactions and preferences. Based on this information, the profile is updated as needed. For example, the user's past preferred genres and viewing history are added or updated to the profile.
[0382] How the emotion engine works
[0383] The emotion engine recognizes emotions from the user's input text. At this stage, emotions such as "melancholy" are determined from the context and vocabulary of the text. The recognized emotions are added to the user profile.
[0384] Generating the answer
[0385] Based on the results of the emotion engine and user profile information, the server retrieves relevant data from external sources (e.g., a movie recommendation API). For example, if the user is feeling "depressed," comedy movies or dramas to cheer them up will be recommended. The server's response generation module takes the results of the emotion engine into consideration and generates a message to display in the user interface in an appropriate tone.
[0386] Submit and display of responses
[0387] The server sends the generated response to the device. For example, a message like, "How about this comedy movie to brighten your mood today?" is sent. This message is displayed on the device screen and recommended to the user.
[0388] User feedback and profile updates
[0389] When a user provides feedback on the content presented, the system receives that feedback and updates the user profile. This process improves the accuracy of recommendations in the future.
[0390] Specific example
[0391] For example, if a user types "I'm feeling kind of depressed today," the server analyzes the text and uses an emotion engine to recognize the emotion "depressed." Based on this emotion, the server retrieves a comedy movie from an external movie recommendation API and generates a suggestion such as, "How about this comedy movie to brighten your mood today?" It then sends this suggestion to the device and displays it to the user.
[0392] Example of a prompt:
[0393] User input: "I'm feeling kind of gloomy today."
[0394] AI model prompt: "Recognize the emotion from the following text: Today, I feel somewhat depressed."
[0395] Content recommendation prompt: "Generate movie recommendations for a person who feels sad and prefers comedies."
[0396] As a result, it becomes possible to recommend personalized movies and TV shows that respond to the user's emotions.
[0397] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0398] Step 1: User Input Reception
[0399] The user inputs text through a device such as a smartphone or smart glasses. For example, they might type, "I'm feeling kind of depressed today." This input is received by the device and sent to the server.
[0400] (Input): User text input
[0401] (Output): Send text data to the server
[0402] Step 2: Receiving and Parsing Text
[0403] The server receives text data sent from the terminal and analyzes it using a natural language processing engine (e.g., the "transformers" library). The analysis first performs tokenization to extract keywords. Then, intent analysis is performed based on these keywords.
[0404] (Input): User's text data
[0405] (Output): Keyword and intent extraction results
[0406] (Specific actions): Tokenization and intent analysis using a natural language processing engine.
[0407] Step 3: Verify and update user profile
[0408] The server accesses the user profile database to check user preferences and past interaction data. Based on this information, the profile is updated to the latest state. For example, new sentiment data or viewing history may be added or updated to the profile.
[0409] (Input): Extracted keywords and intent
[0410] (Output): Updated user profile
[0411] (Specific actions): Accessing and updating the user profile database.
[0412] Step 4: Operating the Emotion Engine
[0413] The server uses an emotion engine to recognize emotions from the user's input text. The emotion engine analyzes the context and vocabulary of the text to determine emotions such as "depressed." The recognized emotion data is added to the user profile.
[0414] (Input): User input text
[0415] (Output): Analyzed user sentiment data
[0416] (Specific actions): Text analysis and sentiment recognition
[0417] Step 5: Generating the response content
[0418] The server sends a request to an external information source (e.g., a movie recommendation API) based on the results from the emotion engine and user profile information. It then analyzes the data received from the external API and generates an appropriate response based on that analysis. For example, it might generate a suggestion such as, "How about this comedy movie to brighten your mood today?"
[0419] (Input): Sentiment data and user profile
[0420] (Output): List of recommended movies and TV shows
[0421] (Specific actions): Requests to external information sources and analysis of received data.
[0422] Step 6: Submit and view your response
[0423] The server generates a response and sends it to the device. This response is displayed on the device's screen for the user to see. For example, a message like, "How about this comedy movie to brighten your mood today?" might be displayed.
[0424] (Input): Generated response data
[0425] (Output): Message displayed on the user terminal
[0426] (Specific actions): Sending response data and displaying it on the device.
[0427] Step 7: User Feedback and Profile Updates
[0428] When a user provides feedback on the content presented, that feedback is sent from the device to the server. The server receives this feedback and updates the user profile. This process improves the accuracy of recommendations in the future.
[0429] (Input): User feedback
[0430] (Output): Updated user profile
[0431] (Specific actions): Receiving feedback and updating the profile
[0432] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0433] Data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0434] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart device 14.
[0435] [Second Embodiment]
[0436] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0437] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0438] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0439] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0440] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0441] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0442] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0443] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0444] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0445] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0446] In the smart glasses 214, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0447] Next, the identification processing performed by the identification processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0448] This invention relates to a system that allows users to receive personalized responses without being aware of the prompt structure. This system primarily consists of the following main components:
[0449] 1. Means for receiving text entered by the user via a device.
[0450] 2. Means for analyzing text using a natural language processing engine
[0451] 3. Means for accessing and updating user profiles
[0452] 4. Means of obtaining relevant data from external sources
[0453] 5. Means for generating responses based on acquired data and user profiles
[0454] 6. Means of sending the response to the device
[0455] Program processing
[0456] User input reception
[0457] The user types "What's the weather like tomorrow?" through their device. This entered text is sent directly to the server.
[0458] Text reception and parsing
[0459] The server first receives the text from the terminal in order to analyze it. After receiving the text, it uses a natural language processing engine to analyze it and extract the intent, "tomorrow's weather." This analysis includes tokenization and keyword extraction.
[0460] User profile verification and update
[0461] The server references the user profile based on the analyzed intent. The user profile contains information such as past interactions and user preferences. For example, it records whether the user prefers a friendly tone or polite explanations. When the user profile is updated, this information is also updated accordingly.
[0462] Generating the answer
[0463] The server retrieves data from an external source (e.g., a weather API) to generate an appropriate response. Based on the retrieved weather data, information such as "It will be sunny tomorrow" is sent to the server.
[0464] The server's response generation module uses user profiles and weather data to generate a friendly response such as, "It's going to be sunny tomorrow, so it'll be a great day to go out!"
[0465] Submit and display of responses
[0466] The server sends the generated response to the terminal.
[0467] The device displays the received response to the user.
[0468] Specific example
[0469] Let's consider a scenario where a user enters "I want to know the weather for this week." In this case, the server parses the text using a similar process, verifies the user profile, and then retrieves the week's weather data from the weather API. For example, if the retrieved data is "This week, it will rain on Monday and Tuesday, and be sunny on the rest of the week," the server generates a response such as "This week's weather forecast is rain in the first half of the week and sunny in the second half" and sends it to the device.
[0470] In this way, users can receive individually customized information without having to be aware of the prompt's structure. This system aims to improve the user experience and enable natural, interactive communication.
[0471] The following describes the processing flow.
[0472] Step 1:
[0473] The user enters "What's the weather like tomorrow?" through their device.
[0474] Step 2:
[0475] The terminal sends the entered text to the server. At this time, the text data is sent as a data packet.
[0476] Step 3:
[0477] The server receives the text sent from the terminal. The received data is temporarily stored in memory.
[0478] Step 4:
[0479] The server's natural language processing engine activates and performs tokenization of the incoming text. It divides the text into words and extracts the keywords "tomorrow" and "weather".
[0480] Step 5:
[0481] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request."
[0482] Step 6:
[0483] The server consults the user profile database to determine the user's preferences. For example, if the user prefers a friendly tone, that information is retrieved.
[0484] Step 7:
[0485] The server adds or updates new data to the user profile as needed.
[0486] Step 8:
[0487] The server sends a request to an external weather API to obtain weather information.
[0488] Step 9:
[0489] The server analyzes weather data received from an external weather API. In this case, it obtains the information "It will be sunny tomorrow."
[0490] Step 10:
[0491] The server's response generation module generates appropriate responses based on the user profile and acquired weather data. For example, it might generate a friendly response such as, "It's going to be sunny tomorrow, so it'll be a great day to go out!"
[0492] Step 11:
[0493] The server sends the generated response to the terminal. The response data is sent as a data packet.
[0494] Step 12:
[0495] The device analyzes the received response data and displays it to the user. The screen displays "It will be sunny tomorrow, so it will be a good day to go out!"
[0496] Step 13:
[0497] Users provide feedback on the answers (for example, by clicking the "Helpful" button).
[0498] Step 14:
[0499] The device sends feedback data to the server. The feedback data is sent as a data packet.
[0500] Step 15:
[0501] The server receives feedback data and updates the user profile. The feedback reflects the user's satisfaction level and further preferences.
[0502] (Example 1)
[0503] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0504] Conventional information retrieval systems often struggle to provide appropriate and personalized responses to user prompts. Furthermore, they rarely offer sufficient customization based on users' past search history and preferences, resulting in a lack of responses that meet individual needs. This can limit the user experience and reduce the system's overall value.
[0505] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0506] In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing to extract context and intent, and means for referring to the user profile and updating the profile based on the user's preferences. This makes it possible to generate and appropriately display personalized responses to user input.
[0507] A "user" refers to an individual or group that uses a system and inputs information through a terminal.
[0508] A "terminal" refers to an electronic device used by a user to input data and communicate with a server. Examples include smartphones, personal computers, and tablets.
[0509] "Text" refers to string data entered by the user through their device.
[0510] A "server" refers to a computer system that receives, analyzes, retrieves data from text, and generates responses.
[0511] "Natural language processing" refers to techniques where a server analyzes text and extracts context and intent. Examples include tokenization, morphological analysis, and keyword extraction.
[0512] "Methods for extracting intent" refers to the process of identifying the purpose or request from the text entered by the user using natural language processing.
[0513] A "user profile" refers to a collection of information that includes a user's individual preferences and past data.
[0514] "External information sources" refer to external data providers that servers use to retrieve data. Examples include weather APIs and news APIs.
[0515] "Response generation" refers to the process by which the server generates information corresponding to user input based on the user profile and external data.
[0516] "Feedback" refers to the evaluations and reactions that users give to the generated answers.
[0517] "Tokenization" refers to a natural language processing technique that divides input text into words and phrases.
[0518] "Keyword extraction" refers to a natural language processing technique that identifies key words and phrases from input text.
[0519] This invention is a system that allows users to receive personalized responses without being aware of the prompt structure. This system primarily consists of a user, a terminal, and a server.
[0520] Specifically, text entered by the user through their device is sent to the server. The server analyzes the received text using a natural language processing engine (e.g., Google NLP API or SpaCy) to extract context and intent. This analysis includes tokenization, morphological analysis, and keyword extraction. For example, in response to the input "What's the weather like tomorrow?", the keywords "tomorrow" and "weather" are extracted.
[0521] Next, the server refers to the user profile based on the analyzed intent. The user profile records past interactions and the user's preferences. For example, if it contains information that the user prefers a friendly tone, the profile may be updated accordingly.
[0522] The server retrieves relevant data from external sources (e.g., the OpenWeatherMap API) and generates responses based on the retrieved data and the user profile. For example, if it retrieves weather data and the information is "It will be sunny tomorrow," and the user prefers a friendly tone, it will generate a response such as "It will be sunny tomorrow, so it's a great day to go out!"
[0523] The generated response is sent from the server to the terminal, and the terminal displays the response to the user. The user can provide feedback on the response, and the server receives this feedback and updates the user profile.
[0524] As a concrete example, consider a case where a user inputs "I want to know the weather for this week." In this case, the text is sent to the server and parsed by a natural language processing engine. The server then retrieves the week's weather data from a weather API (for example, the OpenWeatherMap API) and obtains information such as "This week, it will rain on Monday and Tuesday, and be sunny for the rest of the week." Based on this data, it generates a response such as "This week's weather forecast is rain in the first half of the week and sunny in the second half," and sends it to the terminal.
[0525] Examples of prompt statements include:
[0526] 1. "If a user enters 'I want to know this week's weather,' how should we respond?"
[0527] 2. "How can I customize weather information based on the user's profile?"
[0528] Such a system improves the user experience because users receive individually customized information without having to be aware of the prompt configuration. It also features natural and interactive communication.
[0529] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0530] Step 1:
[0531] The user enters a question through their device. For example, they might type "What's the weather like tomorrow?". The entered text is then sent from the device to the server.
[0532] Input: User's input text "What will the weather be like tomorrow?"
[0533] Output: Text sent to the server
[0534] Specific operation: The terminal displays a text input box, and after the user completes the input, the text is sent to the server when the send button is pressed.
[0535] Step 2:
[0536] The server first receives the text from the terminal in order to analyze it. The received text is then analyzed using a natural language processing engine (e.g., Google NLP API or SpaCy). The analysis includes tokenization, morphological analysis, and keyword extraction.
[0537] Input: Text received from the terminal: "What's the weather like tomorrow?"
[0538] Output: Tokenized words and phrases, extracted keywords "tomorrow" and "weather"
[0539] Specific operation: The server receives text with a receiving module and starts a natural language processing engine to analyze the text. During the analysis process, a tokenizer first divides the text into words, then performs morphological analysis, and finally extracts important keywords.
[0540] Step 3:
[0541] The server references the user profile based on the analyzed intent. The user profile is stored in a database containing information such as past interactions and user preferences. The profile is updated as needed.
[0542] Input: Analyzed keywords "tomorrow" and "weather"
[0543] Output: Corresponding user profile information
[0544] Specific operation: The server searches the database based on the user ID and retrieves the profile data of the corresponding user. It also updates the profile if new user preferences or tendencies are discovered.
[0545] Step 4:
[0546] The server sends a request to retrieve relevant data from an external source (e.g., the OpenWeatherMap API). The retrieved data is then returned to the server.
[0547] Input: Keywords and user profile
[0548] Output: Data obtained from an external source (e.g., "It will be sunny tomorrow")
[0549] Specific operation: The server generates an API request and sends it to an external information source. It receives a response from the API and extracts the necessary information from it.
[0550] Step 5:
[0551] The server generates responses based on acquired weather data and user profiles. For example, it generates responses in a context that suits the user's preferences, such as, "It will be sunny tomorrow, so it's a great day to go out!"
[0552] Input: Acquired weather data, user profile
[0553] Output: Generated answer text
[0554] Specific operation: The server's response generation module uses weather data and profiles to execute a natural language generation algorithm and generate an appropriate response.
[0555] Step 6:
[0556] The server sends the generated response to the terminal. The terminal displays the received response to the user.
[0557] Input: Generated response text
[0558] Output: Answer displayed on the terminal
[0559] Specific operation: The server uses a messaging protocol to send the response to the terminal, and the terminal's display module displays the received response on the screen. If a text-to-speech function is available, the response may also be played back aloud.
[0560] (Application Example 1)
[0561] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0562] In conventional systems, operating machinery and checking its status within a factory requires users to manually input various settings and commands, which is time-consuming and labor-intensive. Furthermore, it is prone to operational errors and miscommunication, leading to decreased work efficiency. There is a growing need for a system that allows users to operate intuitively without having to be aware of specific prompt configurations.
[0563] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0564] In this invention, the server includes means for receiving text entered by a user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to a user profile and updating the profile based on the user's preferences, means for obtaining relevant data from an external information source, means for generating a response based on the user profile and the obtained data, means for transmitting the generated response to the terminal, and means for processing instructions regarding the operation or status check of factory machinery. This enables the user to efficiently operate factory machinery and check its status without being aware of the prompt configuration.
[0565] A "user" refers to anyone or a group who uses the system, performing operations or giving instructions through a terminal.
[0566] A "device" is an electronic device used by a user for operation or input, and includes smartphones, tablets, and personal computers.
[0567] "Text" refers to a string of characters entered by a user through a device, and is a sentence written in natural language.
[0568] "Natural language processing" refers to the technology that enables computers to understand and analyze natural human language, and includes methods for extracting the context and intent of text.
[0569] "Context" refers to the situation or background in which words in a text are placed, or the meanings they carry.
[0570] "Intention" refers to the purpose or action expressed in the text entered by the user.
[0571] A "user profile" is data that records information such as a user's preferences and past interactions, and is used by the system to generate individually customized responses.
[0572] "External information sources" refer to data providers that exist outside the system, such as APIs and databases.
[0573] "Data" refers to information obtained from external sources, which are the raw materials that a system uses to generate responses.
[0574] "Machinery" refers to various pieces of equipment and devices used within a factory, and is a tool for performing specific tasks or processes.
[0575] "Operation" refers to instructions or control actions that a user performs on a machine, and includes actions that change the machine's operation or settings.
[0576] "Status check" is the act of checking the current status and operating condition of a machine, and is performed for maintenance and monitoring purposes.
[0577] An "instruction" is a specific command or request that a user gives to a system or machine, and is often expressed in text.
[0578] "Answer" refers to the response that a system generates based on user input, and includes information and instructions provided to the user.
[0579] A "server" refers to a computing resource necessary for a system to operate; it is the central device that receives data from users, processes it, and generates responses.
[0580] "Tokenization" is the process of dividing text into simpler constituent elements, and it is a technique used to extract keywords and phrases.
[0581] This invention relates to a system that allows users to efficiently operate and check the status of factory machinery without being aware of the prompt configuration. This system receives text entered by the user through a terminal, extracts context and intent using natural language processing, and provides the user with a response generated by referring to the user profile.
[0582] The system consists of the following main parts:
[0583] 1. User Input Reception: Users input text via their device (smartphone, tablet, etc.). When a user enters instructions such as "I want to check the robot's status," this text is sent to the server.
[0584] 2. Text Reception and Parsing: The server parses the text received from the terminal and extracts its context and intent. This parsing uses natural language processing with the Transformers library. Specifically, it performs tokenization and extracts keywords.
[0585] 3. User Profile Verification and Update: The server references user profiles based on the analyzed intent. User profiles record past interactions and user preferences, such as whether they prefer detailed reports. Profiles are updated as needed.
[0586] 4. Data acquisition from external sources: The server acquires information about the robot's status and the operation of factory machinery from external sources (APIs, databases, etc.). For example, it acquires the robot's current operating status.
[0587] 5. Generating Responses: Based on the acquired data and user profile, the server generates appropriate responses. If the user wants to know the status of the robots, a response such as "Robot A is currently operational, Robot B is on standby" will be generated. Natural language generation (NLG) technology is used for this generation.
[0588] 6. Sending and displaying responses: The server sends the generated response to the terminal. The terminal displays this response to the user.
[0589] Specific example
[0590] When a user types "I want to check the robot's status," the server parses the text in a similar manner, verifies the user profile, and then retrieves data about the robot's status from an external source. For example, if the retrieved data is "Robot A is running, Robot B is on standby," the server generates a response such as "Robot A is currently running, Robot B is on standby" and sends it to the terminal. Users can intuitively receive the necessary information without having to be aware of the prompt's structure.
[0591] This system significantly improves the efficiency of user operations and monitoring tasks within the factory, and reduces the occurrence of errors.
[0592] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[0593] Step 1:
[0594] The user inputs text through a terminal. In this process, the user inputs text such as "I want to check the robot's status" on the terminal, and the terminal sends that text to the server. The input is "I want to check the robot's status," and the output is the transmitted text.
[0595] Step 2:
[0596] The server analyzes the input text received from the terminal. It uses a natural language processing engine (Transformers library) to analyze the received data (input text) and extract context and intent. Specifically, the server performs tokenization and extracts keywords. The input is the received text, and the output is the analysis result (intent and keywords).
[0597] Step 3:
[0598] The server references and updates the user profile based on the analysis results. The user profile records information such as past interactions and user preferences. The server uses this information to update the profile as needed. The input is the analysis results and the current user profile, and the output is the updated user profile.
[0599] Step 4:
[0600] The server retrieves relevant data from external sources. In this example, it sends a request to an external database, such as an API, to retrieve data about the status of robots in the factory. The input is the request information, and the output is the retrieved robot status data.
[0601] Step 5:
[0602] The server generates responses based on the user profile and acquired data. Using the acquired data and user profile, it employs a natural language generation engine to create appropriate responses for the user. For example, it might generate a response such as, "Robot A is currently operational, Robot B is on standby." The input is the updated user profile and acquired external data, and the output is the generated response text.
[0603] Step 6:
[0604] The server sends the generated response to the terminal. The terminal displays this received response to the user. The input is the generated response text, and the output is the displayed response.
[0605] In each processing step, the server analyzes, references, updates, retrieves, generates, and transmits data, and the output obtained in each step becomes the input for the next step. This creates a system that allows users to intuitively operate and check the status of factory machinery.
[0606] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[0607] This invention combines an emotion engine with a system that provides personalized responses without requiring the user to configure prompts. This enables more appropriate and personalized responses that take the user's emotions into account. The system consists of the following main parts:
[0608] 1. Means for receiving text entered by the user via a device.
[0609] 2. Means for analyzing text using a natural language processing engine
[0610] 3. Means for accessing and updating user profiles
[0611] 4. Means of obtaining relevant data from external sources
[0612] 5. Means for generating responses based on acquired data and user profiles
[0613] 6. A means of recognizing the user's emotions using an emotion engine and adjusting the tone of the response.
[0614] 7. Means for sending the generated response to the terminal.
[0615] Program processing
[0616] User input reception
[0617] The user enters "What's the weather like tomorrow?" through their terminal. This user input becomes the starting point for the entire system's processing.
[0618] Text reception and parsing
[0619] The terminal sends the user's input text to the server.
[0620] The server receives text sent from the terminal, performs text tokenization using a natural language processing engine, and extracts keywords.
[0621] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request."
[0622] User profile verification and update
[0623] The server refers to the user profile database to check the user's preferences and past interactions. For example, whether they prefer a friendly tone or specific data.
[0624] The server adds or updates new data to the user profile as needed.
[0625] How the emotion engine works
[0626] The server uses an emotion engine to recognize emotions from the text entered by the user. For example, it determines whether the user's emotion is "expectation," "anxiety," "excitement," or "anger" based on the context and vocabulary of the text.
[0627] The recognized emotions are added to the user profile.
[0628] Generating the answer
[0629] The server sends a request to an external weather API to retrieve weather information.
[0630] The server analyzes the weather data received from the weather API and, for example, obtains weather data such as "It will be sunny tomorrow."
[0631] The server's response generation module generates appropriate responses based on the user profile, sentiment engine results, and acquired weather data. For example, it generates a friendly message that takes user expectations into account, such as, "It's going to be sunny tomorrow, so it's a great day to go out!"
[0632] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user is angry, a more polite and calm tone of response will be generated.
[0633] Submit and display of responses
[0634] The server sends the generated response to the terminal.
[0635] The device displays the received response to the user.
[0636] Specific example
[0637] For example, if a user types "I'm worried about tomorrow's weather," the server analyzes the text and uses an emotion engine to recognize the emotion "anxiety." Based on this information, the server generates a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out." This response is then sent to the device and displayed to the user.
[0638] In this way, the present invention aims to improve the user experience and provides a system that enables natural and effective interaction that is in line with the user's emotions.
[0639] The following describes the processing flow.
[0640] Step 1:
[0641] The user types "I'm worried about tomorrow's weather" through their device.
[0642] Step 2:
[0643] The terminal sends the entered text to the server. At this time, the text data is sent as a data packet.
[0644] Step 3:
[0645] The server receives the text sent from the terminal. The received data is temporarily stored in memory.
[0646] Step 4:
[0647] The server's natural language processing engine activates and performs tokenization of the incoming text. It divides the text into words and extracts keywords such as "tomorrow," "weather," and "worry."
[0648] Step 5:
[0649] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request." It also infers that the user's emotion is "anxiety" from the keyword "worry."
[0650] Step 6:
[0651] The server uses an emotion engine to recognize the emotions of the entire text. The emotion engine analyzes keywords, context, and expressions, and classifies the emotions embedded in the text entered by the user as "anxiety."
[0652] Step 7:
[0653] The server refers to the user profile database to check the user's preferences and past interactions. For example, it can find out whether the user prefers a friendly tone or specific data.
[0654] Step 8:
[0655] If necessary, the server will add or update new data to the user profile. In this case, the emotion "anxiety" will also be added to the user profile.
[0656] Step 9:
[0657] The server sends a request to an external weather API to retrieve weather information. This request includes the user's current location and date / time information.
[0658] Step 10:
[0659] The server analyzes weather data received from an external weather API. In this case, it retrieves weather data indicating "sunny tomorrow."
[0660] Step 11:
[0661] The server's response generation module generates appropriate responses based on the user profile, sentiment engine results, and acquired weather data. For example, it might generate a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out."
[0662] Step 12:
[0663] The server sends the generated response to the terminal. The response data is sent as a data packet.
[0664] Step 13:
[0665] The device analyzes the received response data and displays it to the user. The screen displays, "It will be sunny tomorrow, so there's nothing to worry about. It's perfect weather for going out."
[0666] Step 14:
[0667] Users provide feedback on the answers (for example, by clicking the "Helpful" button).
[0668] Step 15:
[0669] The device sends feedback data to the server. The feedback data is sent as a data packet.
[0670] Step 16:
[0671] The server receives feedback data and updates the user profile. The feedback reflects the user's satisfaction level and further preferences. The results of the sentiment engine are also saved in the profile and reflected in future responses.
[0672] (Example 2)
[0673] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the smart glasses 214 will be referred to as the "terminal".
[0674] Traditional systems have difficulty providing personalized responses without users having to configure prompts, and furthermore, they have been inadequate in terms of emotionally sensitive responses. As a result, the user experience has not improved, and it is difficult to adequately meet user needs.
[0675] The identification processing performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means. In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to the user profile and updating the profile based on the user's preferences, means for obtaining relevant data from an external information source, means for generating an answer based on the user profile and the acquired data, means for recognizing the user's emotions using an emotion engine and adjusting the tone of the answer, and means for transmitting the generated answer to the terminal. This makes it possible to provide more personalized, appropriate, and emotionally sensitive answers based on the user's emotions and past interactions.
[0676] A "user" refers to an individual or entity that uses a system to input information and receives the outputted response.
[0677] A "terminal" refers to a device or equipment that a user uses to access a system and input or receive data.
[0678] "Text" refers to strings of characters entered by a user through a device, and is information expressed in the form of questions, instructions, etc.
[0679] "Natural language processing" refers to techniques for analyzing text and extracting context and intent from human language.
[0680] "Context" refers to the background information and situation necessary to understand the meaning of the text.
[0681] "Intent" refers to information that indicates what the user is looking for or intends based on the text they have entered.
[0682] A "user profile" refers to data that records information such as a user's preferences, past interactions, and emotional state, and is managed individually for each user.
[0683] "External information sources" refer to information providers such as APIs and databases that exist outside the system and are referenced to provide necessary data.
[0684] An "emotion engine" refers to a technology that analyzes and recognizes emotions from text entered by the user, and adjusts the tone of the response based on the results.
[0685] "Tone" refers to the wording and nuances of the generated response, meaning expressions that take the user's feelings into consideration.
[0686] "Answer" refers to the information or message that the system generates and provides in response to user input.
[0687] "Feedback" refers to the act of users providing evaluations or comments on the generated answers.
[0688] "Means of receiving data" refers to the processes and devices used to import user input data into the server.
[0689] "Means of transmission" refers to the process or device used to send the generated response from the server to the user's terminal.
[0690] Modes for carrying out the invention
[0691] This invention combines an emotion engine with a system that provides personalized responses without requiring the user to configure prompts, enabling more appropriate and personalized responses that take the user's emotions into account. The system consists of the following main components:
[0692] User input reception
[0693] The user enters text through the terminal. For example, they might type, "What's the weather like tomorrow?" The user's input becomes the starting point for the entire system's processing.
[0694] The terminal receives the entered text and temporarily stores it.
[0695] Text reception and parsing
[0696] The terminal sends the user's input text to the server as an HTTP request.
[0697] The server receives text sent from the terminal. The receiving process uses an API endpoint (e.g., / receive-text).
[0698] The server's natural language processing engine (e.g., SpaCy) is used to tokenize the text, breaking down the input text into keywords.
[0699] The server's intent analysis module recognizes the user's intent (e.g., "request for weather forecast") from the extracted keywords.
[0700] User profile verification and update
[0701] The server uses the user ID to send queries to a profile database (e.g., MySQL) to retrieve and update the user's preferences and past interaction data.
[0702] The server analyzes the acquired data to determine whether the user prefers a friendly tone and specific data.
[0703] Add or update new data to the user profile as needed.
[0704] How the emotion engine works
[0705] The server calls a sentiment engine (e.g., IBM Watson Tone Analyzer) using an API request and sends the text entered by the user.
[0706] The emotion engine analyzes the text and recognizes the user's emotions. The emotion recognition results are returned to the server in JSON format.
[0707] The server receives this recognition result and adds sentiment information (e.g., "expectation") to the user profile.
[0708] Generating the answer
[0709] The server sends a request to an external weather API (e.g., OpenWeatherMap API) to retrieve weather information. For example, it might execute a request like GET / weather?q=Tokyo&appid={API_KEY}.
[0710] The weather API returns weather data in JSON format. For example, it might include data such as "Tomorrow will be sunny."
[0711] The server's response generation module combines the user profile, sentiment engine results, and acquired weather data to generate an appropriate response. For example, it might generate a message like, "It's going to be sunny tomorrow, so it's a great day to go out!"
[0712] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user indicates "anxiety," a calm response such as "It will be sunny tomorrow, so there's nothing to worry about" is generated.
[0713] Submit and display of responses
[0714] The server sends the generated response to the terminal as an HTTP response.
[0715] The device displays the received response to the user. For example, it might display a message on the app screen saying, "It will be sunny tomorrow, so it's a great day to go out!"
[0716] Specific example
[0717] For example, if a user types "I'm worried about tomorrow's weather," the server analyzes the text and uses an emotion engine to recognize the emotion "anxiety." Based on this information, the server generates a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out." This response is then sent to the device and displayed to the user.
[0718] Example of a prompt
[0719] The following prompt messages can be input to the generating AI model.
[0720] "Generate an appropriate response when a user types 'I'm worried about tomorrow's weather.' The response should include a message in a reassuring tone, such as 'It will be sunny tomorrow, so don't worry. It's perfect weather for going out.'"
[0721] In this way, the present invention realizes a system that provides natural and effective interaction that is in line with the user's emotions.
[0722] The flow of the specific processing in Example 2 will be explained using Figure 13.
[0723] Step 1: User Input Reception
[0724] The user enters "What's the weather like tomorrow?" via their device. This input text is the starting point for processing.
[0725] The device receives the text entered by the user and stores it temporarily.
[0726] Input: User-entered text "What will the weather be like tomorrow?"
[0727] Output: Received text "What's the weather like tomorrow?"
[0728] Step 2: Receiving and Parsing Text
[0729] The terminal sends the user's input text to the server as an HTTP request.
[0730] The server receives text sent from the terminal and performs tokenization using a natural language processing engine (e.g., SpaCy).
[0731] The server's intent analysis module analyzes the keywords extracted through tokenization (e.g., "tomorrow," "weather") and recognizes the intent of a "weather forecast request."
[0732] Input: Received text message: "What's the weather like tomorrow?"
[0733] Output: "Weather forecast request" as the intended message.
[0734] Step 3: Verify and update user profile
[0735] The server sends a query to a profile database (e.g., MySQL) based on the user's ID to retrieve user preferences and past interaction data.
[0736] The server uses the retrieved data to determine the user's preferences (e.g., whether they prefer a friendly tone or specific data).
[0737] If necessary, the server queries the profile database to add or update new data to the user profile.
[0738] Input: Query based on User ID
[0739] Output: User preferences and past interaction data
[0740] Step 4: Operating the Emotion Engine
[0741] The server calls the API of an emotion engine (e.g., IBM Watson Tone Analyzer) and sends the text entered by the user.
[0742] The emotion engine analyzes the text and returns the user's emotions (e.g., "expectation," "anxiety") as a result to the server in JSON format.
[0743] Based on the emotion recognition results received by the server, emotion information is added to the user profile.
[0744] Input: User input text
[0745] Output: User's emotion (e.g., "anxiety")
[0746] Step 5: Generating the response content
[0747] The server sends a request to an external weather API (e.g., OpenWeatherMap API) to retrieve weather information. For example, it might execute a request like GET / weather?q=Tokyo&appid={API_KEY}.
[0748] The weather API returns weather data to the server in JSON format. For example, it might include data such as "Tomorrow will be sunny."
[0749] The server's response generation module generates an appropriate response based on the user profile, sentiment engine results, and acquired weather data. For example, it might create a message like, "It's going to be sunny tomorrow, so it's a great day to go out!"
[0750] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user indicates "anxiety," a calm response such as "It will be sunny tomorrow, so there's nothing to worry about" is generated.
[0751] Input: User profile, sentiment data, weather data
[0752] Output: Generated response: "It will be sunny tomorrow, so there's nothing to worry about."
[0753] Step 6: Submit and view your response
[0754] The server sends the generated response to the terminal as an HTTP response.
[0755] The device displays the received response to the user. For example, it might display a message on the app screen saying, "It will be sunny tomorrow, so don't worry. It's perfect weather for going out."
[0756] Input: Generated answer
[0757] Output: Message displayed on the device: "It will be sunny tomorrow, so there's nothing to worry about. It's perfect weather for going out."
[0758] (Application Example 2)
[0759] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the smart glasses 214 will be referred to as the "terminal."
[0760] While modern content delivery services commonly recommend content based on users' personal preferences, emotion-based personalization is not sufficiently implemented. Providing content that is optimal for a user's temporary emotions and mood at that moment would further enhance the user experience and increase satisfaction. However, conventional systems lack sufficient emotion recognition capabilities, making emotion-based recommendations difficult.
[0761] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[0762] In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to the user profile and updating the profile based on the user's preferences, means for obtaining relevant data from external sources, means for generating a response based on the user profile and the obtained data, means for recognizing the user's emotions and adjusting the tone of the response, and means for transmitting the generated response to the terminal. This enables personalized movie and drama recommendations that are tailored to the user's emotions.
[0763] "Means of receiving text entered by a user through a device" refers to the process by which a user enters text into an electronic device such as a smartphone or smart glasses, and the system receives that text data.
[0764] "Methods for analyzing text using natural language processing to extract context and intent" refers to the process of analyzing input text data using natural language processing techniques to understand the background and subject matter of that text.
[0765] "Means of referencing user profiles and updating profiles based on user preferences" refers to the process of checking user information stored within the system based on user behavior and input, and updating that information to the latest state.
[0766] "Means of obtaining relevant data from external sources" refers to the process of obtaining necessary information from the internet or external databases and using it within the system.
[0767] "Means for generating responses based on the user profile and acquired data" refers to a process that generates appropriate responses to provide to the user based on the user's profile information and acquired external data.
[0768] "Means of recognizing user emotions and adjusting the tone of responses" refers to the process of analyzing the emotions from the user's input text and adjusting the tone and expression of the response according to the results of that analysis.
[0769] "Means for sending the generated response to the terminal" refers to the process of sending the generated response to the user's electronic terminal for display.
[0770] "A means for users to provide feedback on generated responses" refers to the process by which users input their opinions and impressions on the provided responses and provide that information to the system.
[0771] "Means for receiving the aforementioned feedback and updating the user profile" refers to the process of receiving feedback from the user and updating the user profile to the latest state based on the content of that feedback.
[0772] "A method for generating content that recommends movies and dramas tailored to the user's emotions" refers to a process that selects and provides movies and dramas that are best suited to the user's mood at that time, based on the results of an emotional analysis.
[0773] "Natural language processing is a means of tokenizing and extracting keywords," which means that input text data is broken down into words and phrases, and important keywords are identified from among them.
[0774] System Overview
[0775] This invention is a personalized movie and TV show recommendation system that takes user emotions into consideration. The system primarily recognizes user emotions and recommends content based on those emotions. It also receives user feedback and updates the user profile to improve the accuracy of future recommendations.
[0776] Hardware and software to be used
[0777] Hardware:
[0778] smartphone
[0779] Smart Glasses
[0780] Servers (including cloud servers)
[0781] software:
[0782] Natural language processing engines (e.g., Hugging Face's "transformers" library)
[0783] Emotion recognition engine
[0784] External data APIs (e.g., movie recommendation API)
[0785] User Interface (UI) Components
[0786] Explanation of the processing procedure
[0787] User input reception
[0788] The user inputs text via their smartphone or smart glasses. For example, if they input "I'm feeling kind of depressed today," this input becomes the starting point for the entire system's processing.
[0789] Text reception and parsing
[0790] The user's input text is sent from the terminal to the server. The server receives the text and analyzes it using a natural language processing engine. This analysis first performs tokenization and extracts keywords. Next, an intent analysis module analyzes the user's sentiment from the extracted keywords.
[0791] User profile verification and update
[0792] The server refers to the user profile database to check past interactions and preferences. Based on this information, the profile is updated as needed. For example, the user's past preferred genres and viewing history are added or updated to the profile.
[0793] How the emotion engine works
[0794] The emotion engine recognizes emotions from the user's input text. At this stage, emotions such as "melancholy" are determined from the context and vocabulary of the text. The recognized emotions are added to the user profile.
[0795] Generating the answer
[0796] Based on the results of the emotion engine and user profile information, the server retrieves relevant data from external sources (e.g., a movie recommendation API). For example, if the user is feeling "depressed," comedy movies or dramas to cheer them up will be recommended. The server's response generation module takes the results of the emotion engine into consideration and generates a message to display in the user interface in an appropriate tone.
[0797] Submit and display of responses
[0798] The server sends the generated response to the device. For example, a message like, "How about this comedy movie to brighten your mood today?" is sent. This message is displayed on the device screen and recommended to the user.
[0799] User feedback and profile updates
[0800] When a user provides feedback on the content presented, the system receives that feedback and updates the user profile. This process improves the accuracy of recommendations in the future.
[0801] Specific example
[0802] For example, if a user types "I'm feeling kind of depressed today," the server analyzes the text and uses an emotion engine to recognize the emotion "depressed." Based on this emotion, the server retrieves a comedy movie from an external movie recommendation API and generates a suggestion such as, "How about this comedy movie to brighten your mood today?" It then sends this suggestion to the device and displays it to the user.
[0803] Example of a prompt:
[0804] User input: "I'm feeling kind of gloomy today."
[0805] AI model prompt: "Recognize the emotion from the following text: Today, I feel somewhat depressed."
[0806] Content recommendation prompt: "Generate movie recommendations for a person who feels sad and prefers comedies."
[0807] As a result, it becomes possible to recommend personalized movies and TV shows that respond to the user's emotions.
[0808] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[0809] Step 1: User Input Reception
[0810] The user inputs text through a device such as a smartphone or smart glasses. For example, they might type, "I'm feeling kind of depressed today." This input is received by the device and sent to the server.
[0811] (Input): User text input
[0812] (Output): Send text data to the server
[0813] Step 2: Receiving and Parsing Text
[0814] The server receives text data sent from the terminal and analyzes it using a natural language processing engine (e.g., the "transformers" library). The analysis first performs tokenization to extract keywords. Then, intent analysis is performed based on these keywords.
[0815] (Input): User's text data
[0816] (Output): Keyword and intent extraction results
[0817] (Specific actions): Tokenization and intent analysis using a natural language processing engine.
[0818] Step 3: Verify and update user profile
[0819] The server accesses the user profile database to check user preferences and past interaction data. Based on this information, the profile is updated to the latest state. For example, new sentiment data or viewing history may be added or updated to the profile.
[0820] (Input): Extracted keywords and intent
[0821] (Output): Updated user profile
[0822] (Specific actions): Accessing and updating the user profile database.
[0823] Step 4: Operating the Emotion Engine
[0824] The server uses an emotion engine to recognize emotions from the user's input text. The emotion engine analyzes the context and vocabulary of the text to determine emotions such as "depressed." The recognized emotion data is added to the user profile.
[0825] (Input): User input text
[0826] (Output): Analyzed user sentiment data
[0827] (Specific actions): Text analysis and sentiment recognition
[0828] Step 5: Generating the response content
[0829] The server sends a request to an external information source (e.g., a movie recommendation API) based on the results from the emotion engine and user profile information. It then analyzes the data received from the external API and generates an appropriate response based on that analysis. For example, it might generate a suggestion such as, "How about this comedy movie to brighten your mood today?"
[0830] (Input): Sentiment data and user profile
[0831] (Output): List of recommended movies and TV shows
[0832] (Specific actions): Requests to external information sources and analysis of received data.
[0833] Step 6: Submit and view your response
[0834] The server generates a response and sends it to the device. This response is displayed on the device's screen for the user to see. For example, a message like, "How about this comedy movie to brighten your mood today?" might be displayed.
[0835] (Input): Generated response data
[0836] (Output): Message displayed on the user terminal
[0837] (Specific actions): Sending response data and displaying it on the device.
[0838] Step 7: User Feedback and Profile Updates
[0839] When a user provides feedback on the content presented, that feedback is sent from the device to the server. The server receives this feedback and updates the user profile. This process improves the accuracy of recommendations in the future.
[0840] (Input): User feedback
[0841] (Output): Updated user profile
[0842] (Specific actions): Receiving feedback and updating the profile
[0843] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0844] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[0845] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the smart glasses 214.
[0846] [Third Embodiment]
[0847] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0848] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0849] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0850] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0851] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0852] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[0853] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0854] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0855] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[0856] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[0857] In the headset terminal 314, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[0858] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the headset terminal 314 will be referred to as the "terminal".
[0859] This invention relates to a system that allows users to receive personalized responses without being aware of the prompt structure. This system primarily consists of the following main components:
[0860] 1. Means for receiving text entered by the user via a device.
[0861] 2. Means for analyzing text using a natural language processing engine
[0862] 3. Means for accessing and updating user profiles
[0863] 4. Means of obtaining relevant data from external sources
[0864] 5. Means for generating responses based on acquired data and user profiles
[0865] 6. Means of sending the response to the device
[0866] Program processing
[0867] User input reception
[0868] The user types "What's the weather like tomorrow?" through their device. This entered text is sent directly to the server.
[0869] Text reception and parsing
[0870] The server first receives the text from the terminal in order to analyze it. After receiving the text, it uses a natural language processing engine to analyze it and extract the intent, "tomorrow's weather." This analysis includes tokenization and keyword extraction.
[0871] User profile verification and update
[0872] The server references the user profile based on the analyzed intent. The user profile contains information such as past interactions and user preferences. For example, it records whether the user prefers a friendly tone or polite explanations. When the user profile is updated, this information is also updated accordingly.
[0873] Generating the answer
[0874] The server retrieves data from an external source (e.g., a weather API) to generate an appropriate response. Based on the retrieved weather data, information such as "It will be sunny tomorrow" is sent to the server.
[0875] The server's response generation module uses user profiles and weather data to generate a friendly response such as, "It's going to be sunny tomorrow, so it'll be a great day to go out!"
[0876] Submit and display of responses
[0877] The server sends the generated response to the terminal.
[0878] The device displays the received response to the user.
[0879] Specific example
[0880] Let's consider a scenario where a user enters "I want to know the weather for this week." In this case, the server parses the text using a similar process, verifies the user profile, and then retrieves the week's weather data from the weather API. For example, if the retrieved data is "This week, it will rain on Monday and Tuesday, and be sunny on the rest of the week," the server generates a response such as "This week's weather forecast is rain in the first half of the week and sunny in the second half" and sends it to the device.
[0881] In this way, users can receive individually customized information without having to be aware of the prompt's structure. This system aims to improve the user experience and enable natural, interactive communication.
[0882] The following describes the processing flow.
[0883] Step 1:
[0884] The user enters "What's the weather like tomorrow?" through their device.
[0885] Step 2:
[0886] The terminal sends the entered text to the server. At this time, the text data is sent as a data packet.
[0887] Step 3:
[0888] The server receives the text sent from the terminal. The received data is temporarily stored in memory.
[0889] Step 4:
[0890] The server's natural language processing engine activates and performs tokenization of the incoming text. It divides the text into words and extracts the keywords "tomorrow" and "weather".
[0891] Step 5:
[0892] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request."
[0893] Step 6:
[0894] The server consults the user profile database to determine the user's preferences. For example, if the user prefers a friendly tone, that information is retrieved.
[0895] Step 7:
[0896] The server adds or updates new data to the user profile as needed.
[0897] Step 8:
[0898] The server sends a request to an external weather API to obtain weather information.
[0899] Step 9:
[0900] The server analyzes weather data received from an external weather API. In this case, it obtains the information "It will be sunny tomorrow."
[0901] Step 10:
[0902] The server's response generation module generates appropriate responses based on the user profile and acquired weather data. For example, it might generate a friendly response such as, "It's going to be sunny tomorrow, so it'll be a great day to go out!"
[0903] Step 11:
[0904] The server sends the generated response to the terminal. The response data is sent as a data packet.
[0905] Step 12:
[0906] The device analyzes the received response data and displays it to the user. The screen displays "It will be sunny tomorrow, so it will be a good day to go out!"
[0907] Step 13:
[0908] Users provide feedback on the answers (for example, by clicking the "Helpful" button).
[0909] Step 14:
[0910] The device sends feedback data to the server. The feedback data is sent as a data packet.
[0911] Step 15:
[0912] The server receives feedback data and updates the user profile. The feedback reflects the user's satisfaction level and further preferences.
[0913] (Example 1)
[0914] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0915] Conventional information retrieval systems often struggle to provide appropriate and personalized responses to user prompts. Furthermore, they rarely offer sufficient customization based on users' past search history and preferences, resulting in a lack of responses that meet individual needs. This can limit the user experience and reduce the system's overall value.
[0916] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[0917] In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing to extract context and intent, and means for referring to the user profile and updating the profile based on the user's preferences. This makes it possible to generate and appropriately display personalized responses to user input.
[0918] A "user" refers to an individual or group that uses a system and inputs information through a terminal.
[0919] A "terminal" refers to an electronic device used by a user to input data and communicate with a server. Examples include smartphones, personal computers, and tablets.
[0920] "Text" refers to string data entered by the user through their device.
[0921] A "server" refers to a computer system that receives, analyzes, retrieves data from text, and generates responses.
[0922] "Natural language processing" refers to techniques where a server analyzes text and extracts context and intent. Examples include tokenization, morphological analysis, and keyword extraction.
[0923] "Methods for extracting intent" refers to the process of identifying the purpose or request from the text entered by the user using natural language processing.
[0924] A "user profile" refers to a collection of information that includes a user's individual preferences and past data.
[0925] "External information sources" refer to external data providers that servers use to retrieve data. Examples include weather APIs and news APIs.
[0926] "Response generation" refers to the process by which the server generates information corresponding to user input based on the user profile and external data.
[0927] "Feedback" refers to the evaluations and reactions that users give to the generated answers.
[0928] "Tokenization" refers to a natural language processing technique that divides input text into words and phrases.
[0929] "Keyword extraction" refers to a natural language processing technique that identifies key words and phrases from input text.
[0930] This invention is a system that allows users to receive personalized responses without being aware of the prompt structure. This system primarily consists of a user, a terminal, and a server.
[0931] Specifically, text entered by the user through their device is sent to the server. The server analyzes the received text using a natural language processing engine (e.g., Google NLP API or SpaCy) to extract context and intent. This analysis includes tokenization, morphological analysis, and keyword extraction. For example, in response to the input "What's the weather like tomorrow?", the keywords "tomorrow" and "weather" are extracted.
[0932] Next, the server refers to the user profile based on the analyzed intent. The user profile records past interactions and the user's preferences. For example, if it contains information that the user prefers a friendly tone, the profile may be updated accordingly.
[0933] The server retrieves relevant data from external sources (e.g., the OpenWeatherMap API) and generates responses based on the retrieved data and the user profile. For example, if it retrieves weather data and the information is "It will be sunny tomorrow," and the user prefers a friendly tone, it will generate a response such as "It will be sunny tomorrow, so it's a great day to go out!"
[0934] The generated response is sent from the server to the terminal, and the terminal displays the response to the user. The user can provide feedback on the response, and the server receives this feedback and updates the user profile.
[0935] As a concrete example, consider a case where a user inputs "I want to know the weather for this week." In this case, the text is sent to the server and parsed by a natural language processing engine. The server then retrieves the week's weather data from a weather API (for example, the OpenWeatherMap API) and obtains information such as "This week, it will rain on Monday and Tuesday, and be sunny for the rest of the week." Based on this data, it generates a response such as "This week's weather forecast is rain in the first half of the week and sunny in the second half," and sends it to the terminal.
[0936] Examples of prompt statements include:
[0937] 1. "If a user enters 'I want to know this week's weather,' how should we respond?"
[0938] 2. "How can I customize weather information based on the user's profile?"
[0939] Such a system improves the user experience because users receive individually customized information without having to be aware of the prompt configuration. It also features natural and interactive communication.
[0940] The flow of the specific processing in Example 1 will be explained using Figure 11.
[0941] Step 1:
[0942] The user enters a question through their device. For example, they might type "What's the weather like tomorrow?". The entered text is then sent from the device to the server.
[0943] Input: User's input text "What will the weather be like tomorrow?"
[0944] Output: Text sent to the server
[0945] Specific operation: The terminal displays a text input box, and after the user completes the input, the text is sent to the server when the send button is pressed.
[0946] Step 2:
[0947] The server first receives the text from the terminal in order to analyze it. The received text is then analyzed using a natural language processing engine (e.g., Google NLP API or SpaCy). The analysis includes tokenization, morphological analysis, and keyword extraction.
[0948] Input: Text received from the terminal: "What's the weather like tomorrow?"
[0949] Output: Tokenized words and phrases, extracted keywords "tomorrow" and "weather"
[0950] Specific operation: The server receives text with a receiving module and starts a natural language processing engine to analyze the text. During the analysis process, a tokenizer first divides the text into words, then performs morphological analysis, and finally extracts important keywords.
[0951] Step 3:
[0952] The server references the user profile based on the analyzed intent. The user profile is stored in a database containing information such as past interactions and user preferences. The profile is updated as needed.
[0953] Input: Analyzed keywords "tomorrow" and "weather"
[0954] Output: Corresponding user profile information
[0955] Specific operation: The server searches the database based on the user ID and retrieves the profile data of the corresponding user. It also updates the profile if new user preferences or tendencies are discovered.
[0956] Step 4:
[0957] The server sends a request to retrieve relevant data from an external source (e.g., the OpenWeatherMap API). The retrieved data is then returned to the server.
[0958] Input: Keywords and user profile
[0959] Output: Data obtained from an external source (e.g., "It will be sunny tomorrow")
[0960] Specific operation: The server generates an API request and sends it to an external information source. It receives a response from the API and extracts the necessary information from it.
[0961] Step 5:
[0962] The server generates responses based on acquired weather data and user profiles. For example, it generates responses in a context that suits the user's preferences, such as, "It will be sunny tomorrow, so it's a great day to go out!"
[0963] Input: Acquired weather data, user profile
[0964] Output: Generated answer text
[0965] Specific operation: The server's response generation module uses weather data and profiles to execute a natural language generation algorithm and generate an appropriate response.
[0966] Step 6:
[0967] The server sends the generated response to the terminal. The terminal displays the received response to the user.
[0968] Input: Generated response text
[0969] Output: Answer displayed on the terminal
[0970] Specific operation: The server uses a messaging protocol to send the response to the terminal, and the terminal's display module displays the received response on the screen. If a text-to-speech function is available, the response may also be played back aloud.
[0971] (Application Example 1)
[0972] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[0973] In conventional systems, operating machinery and checking its status within a factory requires users to manually input various settings and commands, which is time-consuming and labor-intensive. Furthermore, it is prone to operational errors and miscommunication, leading to decreased work efficiency. There is a growing need for a system that allows users to operate intuitively without having to be aware of specific prompt configurations.
[0974] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[0975] In this invention, the server includes means for receiving text entered by a user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to a user profile and updating the profile based on the user's preferences, means for obtaining relevant data from an external information source, means for generating a response based on the user profile and the obtained data, means for transmitting the generated response to the terminal, and means for processing instructions regarding the operation or status check of factory machinery. This enables the user to efficiently operate factory machinery and check its status without being aware of the prompt configuration.
[0976] A "user" refers to anyone or a group who uses the system, performing operations or giving instructions through a terminal.
[0977] A "device" is an electronic device used by a user for operation or input, and includes smartphones, tablets, and personal computers.
[0978] "Text" refers to a string of characters entered by a user through a device, and is a sentence written in natural language.
[0979] "Natural language processing" refers to the technology that enables computers to understand and analyze natural human language, and includes methods for extracting the context and intent of text.
[0980] "Context" refers to the situation or background in which words in a text are placed, or the meanings they carry.
[0981] "Intention" refers to the purpose or action expressed in the text entered by the user.
[0982] A "user profile" is data that records information such as a user's preferences and past interactions, and is used by the system to generate individually customized responses.
[0983] "External information sources" refer to data providers that exist outside the system, such as APIs and databases.
[0984] "Data" refers to information obtained from external sources, which are the raw materials that a system uses to generate responses.
[0985] "Machinery" refers to various pieces of equipment and devices used within a factory, and is a tool for performing specific tasks or processes.
[0986] "Operation" refers to instructions or control actions that a user performs on a machine, and includes actions that change the machine's operation or settings.
[0987] "Status check" is the act of checking the current status and operating condition of a machine, and is performed for maintenance and monitoring purposes.
[0988] An "instruction" is a specific command or request that a user gives to a system or machine, and is often expressed in text.
[0989] "Answer" refers to the response that a system generates based on user input, and includes information and instructions provided to the user.
[0990] A "server" refers to a computing resource necessary for a system to operate; it is the central device that receives data from users, processes it, and generates responses.
[0991] "Tokenization" is the process of dividing text into simpler constituent elements, and it is a technique used to extract keywords and phrases.
[0992] This invention relates to a system that allows users to efficiently operate and check the status of factory machinery without being aware of the prompt configuration. This system receives text entered by the user through a terminal, extracts context and intent using natural language processing, and provides the user with a response generated by referring to the user profile.
[0993] The system consists of the following main parts:
[0994] 1. User Input Reception: Users input text via their device (smartphone, tablet, etc.). When a user enters instructions such as "I want to check the robot's status," this text is sent to the server.
[0995] 2. Text Reception and Parsing: The server parses the text received from the terminal and extracts its context and intent. This parsing uses natural language processing with the Transformers library. Specifically, it performs tokenization and extracts keywords.
[0996] 3. User Profile Verification and Update: The server references user profiles based on the analyzed intent. User profiles record past interactions and user preferences, such as whether they prefer detailed reports. Profiles are updated as needed.
[0997] 4. Data acquisition from external sources: The server acquires information about the robot's status and the operation of factory machinery from external sources (APIs, databases, etc.). For example, it acquires the robot's current operating status.
[0998] 5. Generating Responses: Based on the acquired data and user profile, the server generates appropriate responses. If the user wants to know the status of the robots, a response such as "Robot A is currently operational, Robot B is on standby" will be generated. Natural language generation (NLG) technology is used for this generation.
[0999] 6. Sending and displaying responses: The server sends the generated response to the terminal. The terminal displays this response to the user.
[1000] Specific example
[1001] When a user types "I want to check the robot's status," the server parses the text in a similar manner, verifies the user profile, and then retrieves data about the robot's status from an external source. For example, if the retrieved data is "Robot A is running, Robot B is on standby," the server generates a response such as "Robot A is currently running, Robot B is on standby" and sends it to the terminal. Users can intuitively receive the necessary information without having to be aware of the prompt's structure.
[1002] This system significantly improves the efficiency of user operations and monitoring tasks within the factory, and reduces the occurrence of errors.
[1003] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[1004] Step 1:
[1005] The user inputs text through a terminal. In this process, the user inputs text such as "I want to check the robot's status" on the terminal, and the terminal sends that text to the server. The input is "I want to check the robot's status," and the output is the transmitted text.
[1006] Step 2:
[1007] The server analyzes the input text received from the terminal. It uses a natural language processing engine (Transformers library) to analyze the received data (input text) and extract context and intent. Specifically, the server performs tokenization and extracts keywords. The input is the received text, and the output is the analysis result (intent and keywords).
[1008] Step 3:
[1009] The server references and updates the user profile based on the analysis results. The user profile records information such as past interactions and user preferences. The server uses this information to update the profile as needed. The input is the analysis results and the current user profile, and the output is the updated user profile.
[1010] Step 4:
[1011] The server retrieves relevant data from external sources. In this example, it sends a request to an external database, such as an API, to retrieve data about the status of robots in the factory. The input is the request information, and the output is the retrieved robot status data.
[1012] Step 5:
[1013] The server generates responses based on the user profile and acquired data. Using the acquired data and user profile, it employs a natural language generation engine to create appropriate responses for the user. For example, it might generate a response such as, "Robot A is currently operational, Robot B is on standby." The input is the updated user profile and acquired external data, and the output is the generated response text.
[1014] Step 6:
[1015] The server sends the generated response to the terminal. The terminal displays this received response to the user. The input is the generated response text, and the output is the displayed response.
[1016] In each processing step, the server analyzes, references, updates, retrieves, generates, and transmits data, and the output obtained in each step becomes the input for the next step. This creates a system that allows users to intuitively operate and check the status of factory machinery.
[1017] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[1018] This invention combines an emotion engine with a system that provides personalized responses without requiring the user to configure prompts. This enables more appropriate and personalized responses that take the user's emotions into account. The system consists of the following main parts:
[1019] 1. Means for receiving text entered by the user via a device.
[1020] 2. Means for analyzing text using a natural language processing engine
[1021] 3. Means for accessing and updating user profiles
[1022] 4. Means of obtaining relevant data from external sources
[1023] 5. Means for generating responses based on acquired data and user profiles
[1024] 6. A means of recognizing the user's emotions using an emotion engine and adjusting the tone of the response.
[1025] 7. Means for sending the generated response to the terminal.
[1026] Program processing
[1027] User input reception
[1028] The user enters "What's the weather like tomorrow?" through their terminal. This user input becomes the starting point for the entire system's processing.
[1029] Text reception and parsing
[1030] The terminal sends the user's input text to the server.
[1031] The server receives text sent from the terminal, performs text tokenization using a natural language processing engine, and extracts keywords.
[1032] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request."
[1033] User profile verification and update
[1034] The server refers to the user profile database to check the user's preferences and past interactions. For example, whether they prefer a friendly tone or specific data.
[1035] The server adds or updates new data to the user profile as needed.
[1036] How the emotion engine works
[1037] The server uses an emotion engine to recognize emotions from the text entered by the user. For example, it determines whether the user's emotion is "expectation," "anxiety," "excitement," or "anger" based on the context and vocabulary of the text.
[1038] The recognized emotions are added to the user profile.
[1039] Generating the answer
[1040] The server sends a request to an external weather API to retrieve weather information.
[1041] The server analyzes the weather data received from the weather API and, for example, obtains weather data such as "It will be sunny tomorrow."
[1042] The server's response generation module generates appropriate responses based on the user profile, sentiment engine results, and acquired weather data. For example, it generates a friendly message that takes user expectations into account, such as, "It's going to be sunny tomorrow, so it's a great day to go out!"
[1043] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user is angry, a more polite and calm tone of response will be generated.
[1044] Submit and display of responses
[1045] The server sends the generated response to the terminal.
[1046] The device displays the received response to the user.
[1047] Specific example
[1048] For example, if a user types "I'm worried about tomorrow's weather," the server analyzes the text and uses an emotion engine to recognize the emotion "anxiety." Based on this information, the server generates a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out." This response is then sent to the device and displayed to the user.
[1049] In this way, the present invention aims to improve the user experience and provides a system that enables natural and effective interaction that is in line with the user's emotions.
[1050] The following describes the processing flow.
[1051] Step 1:
[1052] The user types "I'm worried about tomorrow's weather" through their device.
[1053] Step 2:
[1054] The terminal sends the entered text to the server. At this time, the text data is sent as a data packet.
[1055] Step 3:
[1056] The server receives the text sent from the terminal. The received data is temporarily stored in memory.
[1057] Step 4:
[1058] The server's natural language processing engine activates and performs tokenization of the incoming text. It divides the text into words and extracts keywords such as "tomorrow," "weather," and "worry."
[1059] Step 5:
[1060] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request." It also infers that the user's emotion is "anxiety" from the keyword "worry."
[1061] Step 6:
[1062] The server uses an emotion engine to recognize the emotions of the entire text. The emotion engine analyzes keywords, context, and expressions, and classifies the emotions embedded in the text entered by the user as "anxiety."
[1063] Step 7:
[1064] The server refers to the user profile database to check the user's preferences and past interactions. For example, it can find out whether the user prefers a friendly tone or specific data.
[1065] Step 8:
[1066] If necessary, the server will add or update new data to the user profile. In this case, the emotion "anxiety" will also be added to the user profile.
[1067] Step 9:
[1068] The server sends a request to an external weather API to retrieve weather information. This request includes the user's current location and date / time information.
[1069] Step 10:
[1070] The server analyzes weather data received from an external weather API. In this case, it retrieves weather data indicating "sunny tomorrow."
[1071] Step 11:
[1072] The server's response generation module generates appropriate responses based on the user profile, sentiment engine results, and acquired weather data. For example, it might generate a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out."
[1073] Step 12:
[1074] The server sends the generated response to the terminal. The response data is sent as a data packet.
[1075] Step 13:
[1076] The device analyzes the received response data and displays it to the user. The screen displays, "It will be sunny tomorrow, so there's nothing to worry about. It's perfect weather for going out."
[1077] Step 14:
[1078] Users provide feedback on the answers (for example, by clicking the "Helpful" button).
[1079] Step 15:
[1080] The device sends feedback data to the server. The feedback data is sent as a data packet.
[1081] Step 16:
[1082] The server receives feedback data and updates the user profile. The feedback reflects the user's satisfaction level and further preferences. The results of the sentiment engine are also saved in the profile and reflected in future responses.
[1083] (Example 2)
[1084] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1085] Traditional systems have difficulty providing personalized responses without users having to configure prompts, and furthermore, they have been inadequate in terms of emotionally sensitive responses. As a result, the user experience has not improved, and it is difficult to adequately meet user needs.
[1086] The identification processing performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means. In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to the user profile and updating the profile based on the user's preferences, means for obtaining relevant data from an external information source, means for generating an answer based on the user profile and the acquired data, means for recognizing the user's emotions using an emotion engine and adjusting the tone of the answer, and means for transmitting the generated answer to the terminal. This makes it possible to provide more personalized, appropriate, and emotionally sensitive answers based on the user's emotions and past interactions.
[1087] A "user" refers to an individual or entity that uses a system to input information and receives the outputted response.
[1088] A "terminal" refers to a device or equipment that a user uses to access a system and input or receive data.
[1089] "Text" refers to strings of characters entered by a user through a device, and is information expressed in the form of questions, instructions, etc.
[1090] "Natural language processing" refers to techniques for analyzing text and extracting context and intent from human language.
[1091] "Context" refers to the background information and situation necessary to understand the meaning of the text.
[1092] "Intent" refers to information that indicates what the user is looking for or intends based on the text they have entered.
[1093] A "user profile" refers to data that records information such as a user's preferences, past interactions, and emotional state, and is managed individually for each user.
[1094] "External information sources" refer to information providers such as APIs and databases that exist outside the system and are referenced to provide necessary data.
[1095] An "emotion engine" refers to a technology that analyzes and recognizes emotions from text entered by the user, and adjusts the tone of the response based on the results.
[1096] "Tone" refers to the wording and nuances of the generated response, meaning expressions that take the user's feelings into consideration.
[1097] "Answer" refers to the information or message that the system generates and provides in response to user input.
[1098] "Feedback" refers to the act of users providing evaluations or comments on the generated answers.
[1099] "Means of receiving data" refers to the processes and devices used to import user input data into the server.
[1100] "Means of transmission" refers to the process or device used to send the generated response from the server to the user's terminal.
[1101] Modes for carrying out the invention
[1102] This invention combines an emotion engine with a system that provides personalized responses without requiring the user to configure prompts, enabling more appropriate and personalized responses that take the user's emotions into account. The system consists of the following main components:
[1103] User input reception
[1104] The user enters text through the terminal. For example, they might type, "What's the weather like tomorrow?" The user's input becomes the starting point for the entire system's processing.
[1105] The terminal receives the entered text and temporarily stores it.
[1106] Text reception and parsing
[1107] The terminal sends the user's input text to the server as an HTTP request.
[1108] The server receives text sent from the terminal. The receiving process uses an API endpoint (e.g., / receive-text).
[1109] The server's natural language processing engine (e.g., SpaCy) is used to tokenize the text, breaking down the input text into keywords.
[1110] The server's intent analysis module recognizes the user's intent (e.g., "request for weather forecast") from the extracted keywords.
[1111] User profile verification and update
[1112] The server uses the user ID to send queries to a profile database (e.g., MySQL) to retrieve and update the user's preferences and past interaction data.
[1113] The server analyzes the acquired data to determine whether the user prefers a friendly tone and specific data.
[1114] Add or update new data to the user profile as needed.
[1115] How the emotion engine works
[1116] The server calls a sentiment engine (e.g., IBM Watson Tone Analyzer) using an API request and sends the text entered by the user.
[1117] The emotion engine analyzes the text and recognizes the user's emotions. The emotion recognition results are returned to the server in JSON format.
[1118] The server receives this recognition result and adds sentiment information (e.g., "expectation") to the user profile.
[1119] Generating the answer
[1120] The server sends a request to an external weather API (e.g., OpenWeatherMap API) to retrieve weather information. For example, it might execute a request like GET / weather?q=Tokyo&appid={API_KEY}.
[1121] The weather API returns weather data in JSON format. For example, it might include data such as "Tomorrow will be sunny."
[1122] The server's response generation module combines the user profile, sentiment engine results, and acquired weather data to generate an appropriate response. For example, it might generate a message like, "It's going to be sunny tomorrow, so it's a great day to go out!"
[1123] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user indicates "anxiety," a calm response such as "It will be sunny tomorrow, so there's nothing to worry about" is generated.
[1124] Submit and display of responses
[1125] The server sends the generated response to the terminal as an HTTP response.
[1126] The device displays the received response to the user. For example, it might display a message on the app screen saying, "It will be sunny tomorrow, so it's a great day to go out!"
[1127] Specific example
[1128] For example, if a user types "I'm worried about tomorrow's weather," the server analyzes the text and uses an emotion engine to recognize the emotion "anxiety." Based on this information, the server generates a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out." This response is then sent to the device and displayed to the user.
[1129] Example of a prompt
[1130] The following prompt messages can be input to the generating AI model.
[1131] "Generate an appropriate response when a user types 'I'm worried about tomorrow's weather.' The response should include a message in a reassuring tone, such as 'It will be sunny tomorrow, so don't worry. It's perfect weather for going out.'"
[1132] In this way, the present invention realizes a system that provides natural and effective interaction that is in line with the user's emotions.
[1133] The flow of the specific processing in Example 2 will be explained using Figure 13.
[1134] Step 1: User Input Reception
[1135] The user enters "What's the weather like tomorrow?" via their device. This input text is the starting point for processing.
[1136] The device receives the text entered by the user and stores it temporarily.
[1137] Input: User-entered text "What will the weather be like tomorrow?"
[1138] Output: Received text "What's the weather like tomorrow?"
[1139] Step 2: Receiving and Parsing Text
[1140] The terminal sends the user's input text to the server as an HTTP request.
[1141] The server receives text sent from the terminal and performs tokenization using a natural language processing engine (e.g., SpaCy).
[1142] The server's intent analysis module analyzes the keywords extracted through tokenization (e.g., "tomorrow," "weather") and recognizes the intent of a "weather forecast request."
[1143] Input: Received text message: "What's the weather like tomorrow?"
[1144] Output: "Weather forecast request" as the intended message.
[1145] Step 3: Verify and update user profile
[1146] The server sends a query to a profile database (e.g., MySQL) based on the user's ID to retrieve user preferences and past interaction data.
[1147] The server uses the retrieved data to determine the user's preferences (e.g., whether they prefer a friendly tone or specific data).
[1148] If necessary, the server queries the profile database to add or update new data to the user profile.
[1149] Input: Query based on User ID
[1150] Output: User preferences and past interaction data
[1151] Step 4: Operating the Emotion Engine
[1152] The server calls the API of an emotion engine (e.g., IBM Watson Tone Analyzer) and sends the text entered by the user.
[1153] The emotion engine analyzes the text and returns the user's emotions (e.g., "expectation," "anxiety") as a result to the server in JSON format.
[1154] Based on the emotion recognition results received by the server, emotion information is added to the user profile.
[1155] Input: User input text
[1156] Output: User's emotion (e.g., "anxiety")
[1157] Step 5: Generating the response content
[1158] The server sends a request to an external weather API (e.g., OpenWeatherMap API) to retrieve weather information. For example, it might execute a request like GET / weather?q=Tokyo&appid={API_KEY}.
[1159] The weather API returns weather data to the server in JSON format. For example, it might include data such as "Tomorrow will be sunny."
[1160] The server's response generation module generates an appropriate response based on the user profile, sentiment engine results, and acquired weather data. For example, it might create a message like, "It's going to be sunny tomorrow, so it's a great day to go out!"
[1161] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user indicates "anxiety," a calm response such as "It will be sunny tomorrow, so there's nothing to worry about" is generated.
[1162] Input: User profile, sentiment data, weather data
[1163] Output: Generated response: "It will be sunny tomorrow, so there's nothing to worry about."
[1164] Step 6: Submit and view your response
[1165] The server sends the generated response to the terminal as an HTTP response.
[1166] The device displays the received response to the user. For example, it might display a message on the app screen saying, "It will be sunny tomorrow, so don't worry. It's perfect weather for going out."
[1167] Input: Generated answer
[1168] Output: Message displayed on the device: "It will be sunny tomorrow, so there's nothing to worry about. It's perfect weather for going out."
[1169] (Application Example 2)
[1170] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server," and the headset-type terminal 314 will be referred to as the "terminal."
[1171] While modern content delivery services commonly recommend content based on users' personal preferences, emotion-based personalization is not sufficiently implemented. Providing content that is optimal for a user's temporary emotions and mood at that moment would further enhance the user experience and increase satisfaction. However, conventional systems lack sufficient emotion recognition capabilities, making emotion-based recommendations difficult.
[1172] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[1173] In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to the user profile and updating the profile based on the user's preferences, means for obtaining relevant data from external sources, means for generating a response based on the user profile and the obtained data, means for recognizing the user's emotions and adjusting the tone of the response, and means for transmitting the generated response to the terminal. This enables personalized movie and drama recommendations that are tailored to the user's emotions.
[1174] "Means of receiving text entered by a user through a device" refers to the process by which a user enters text into an electronic device such as a smartphone or smart glasses, and the system receives that text data.
[1175] "Methods for analyzing text using natural language processing to extract context and intent" refers to the process of analyzing input text data using natural language processing techniques to understand the background and subject matter of that text.
[1176] "Means of referencing user profiles and updating profiles based on user preferences" refers to the process of checking user information stored within the system based on user behavior and input, and updating that information to the latest state.
[1177] "Means of obtaining relevant data from external sources" refers to the process of obtaining necessary information from the internet or external databases and using it within the system.
[1178] "Means for generating responses based on the user profile and acquired data" refers to a process that generates appropriate responses to provide to the user based on the user's profile information and acquired external data.
[1179] "Means of recognizing user emotions and adjusting the tone of responses" refers to the process of analyzing the emotions from the user's input text and adjusting the tone and expression of the response according to the results of that analysis.
[1180] "Means for sending the generated response to the terminal" refers to the process of sending the generated response to the user's electronic terminal for display.
[1181] "A means for users to provide feedback on generated responses" refers to the process by which users input their opinions and impressions on the provided responses and provide that information to the system.
[1182] "Means for receiving the aforementioned feedback and updating the user profile" refers to the process of receiving feedback from the user and updating the user profile to the latest state based on the content of that feedback.
[1183] "A method for generating content that recommends movies and dramas tailored to the user's emotions" refers to a process that selects and provides movies and dramas that are best suited to the user's mood at that time, based on the results of an emotional analysis.
[1184] "Natural language processing is a means of tokenizing and extracting keywords," which means that input text data is broken down into words and phrases, and important keywords are identified from among them.
[1185] System Overview
[1186] This invention is a personalized movie and TV show recommendation system that takes user emotions into consideration. The system primarily recognizes user emotions and recommends content based on those emotions. It also receives user feedback and updates the user profile to improve the accuracy of future recommendations.
[1187] Hardware and software to be used
[1188] Hardware:
[1189] smartphone
[1190] Smart Glasses
[1191] Servers (including cloud servers)
[1192] software:
[1193] Natural language processing engines (e.g., Hugging Face's "transformers" library)
[1194] Emotion recognition engine
[1195] External data APIs (e.g., movie recommendation API)
[1196] User Interface (UI) Components
[1197] Explanation of the processing procedure
[1198] User input reception
[1199] The user inputs text via their smartphone or smart glasses. For example, if they input "I'm feeling kind of depressed today," this input becomes the starting point for the entire system's processing.
[1200] Text reception and parsing
[1201] The user's input text is sent from the terminal to the server. The server receives the text and analyzes it using a natural language processing engine. This analysis first performs tokenization and extracts keywords. Next, an intent analysis module analyzes the user's sentiment from the extracted keywords.
[1202] User profile verification and update
[1203] The server refers to the user profile database to check past interactions and preferences. Based on this information, the profile is updated as needed. For example, the user's past preferred genres and viewing history are added or updated to the profile.
[1204] How the emotion engine works
[1205] The emotion engine recognizes emotions from the user's input text. At this stage, emotions such as "melancholy" are determined from the context and vocabulary of the text. The recognized emotions are added to the user profile.
[1206] Generating the answer
[1207] Based on the results of the emotion engine and user profile information, the server retrieves relevant data from external sources (e.g., a movie recommendation API). For example, if the user is feeling "depressed," comedy movies or dramas to cheer them up will be recommended. The server's response generation module takes the results of the emotion engine into consideration and generates a message to display in the user interface in an appropriate tone.
[1208] Submit and display of responses
[1209] The server sends the generated response to the device. For example, a message like, "How about this comedy movie to brighten your mood today?" is sent. This message is displayed on the device screen and recommended to the user.
[1210] User feedback and profile updates
[1211] When a user provides feedback on the content presented, the system receives that feedback and updates the user profile. This process improves the accuracy of recommendations in the future.
[1212] Specific example
[1213] For example, if a user types "I'm feeling kind of depressed today," the server analyzes the text and uses an emotion engine to recognize the emotion "depressed." Based on this emotion, the server retrieves a comedy movie from an external movie recommendation API and generates a suggestion such as, "How about this comedy movie to brighten your mood today?" It then sends this suggestion to the device and displays it to the user.
[1214] Example of a prompt:
[1215] User input: "I'm feeling kind of gloomy today."
[1216] AI model prompt: "Recognize the emotion from the following text: Today, I feel somewhat depressed."
[1217] Content recommendation prompt: "Generate movie recommendations for a person who feels sad and prefers comedies."
[1218] As a result, it becomes possible to recommend personalized movies and TV shows that respond to the user's emotions.
[1219] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[1220] Step 1: User Input Reception
[1221] The user inputs text through a device such as a smartphone or smart glasses. For example, they might type, "I'm feeling kind of depressed today." This input is received by the device and sent to the server.
[1222] (Input): User text input
[1223] (Output): Send text data to the server
[1224] Step 2: Receiving and Parsing Text
[1225] The server receives text data sent from the terminal and analyzes it using a natural language processing engine (e.g., the "transformers" library). The analysis first performs tokenization to extract keywords. Then, intent analysis is performed based on these keywords.
[1226] (Input): User's text data
[1227] (Output): Keyword and intent extraction results
[1228] (Specific actions): Tokenization and intent analysis using a natural language processing engine.
[1229] Step 3: Verify and update user profile
[1230] The server accesses the user profile database to check user preferences and past interaction data. Based on this information, the profile is updated to the latest state. For example, new sentiment data or viewing history may be added or updated to the profile.
[1231] (Input): Extracted keywords and intent
[1232] (Output): Updated user profile
[1233] (Specific actions): Accessing and updating the user profile database.
[1234] Step 4: Operating the Emotion Engine
[1235] The server uses an emotion engine to recognize emotions from the user's input text. The emotion engine analyzes the context and vocabulary of the text to determine emotions such as "depressed." The recognized emotion data is added to the user profile.
[1236] (Input): User input text
[1237] (Output): Analyzed user sentiment data
[1238] (Specific actions): Text analysis and sentiment recognition
[1239] Step 5: Generating the response content
[1240] The server sends a request to an external information source (e.g., a movie recommendation API) based on the results from the emotion engine and user profile information. It then analyzes the data received from the external API and generates an appropriate response based on that analysis. For example, it might generate a suggestion such as, "How about this comedy movie to brighten your mood today?"
[1241] (Input): Sentiment data and user profile
[1242] (Output): List of recommended movies and TV shows
[1243] (Specific actions): Requests to external information sources and analysis of received data.
[1244] Step 6: Submit and view your response
[1245] The server generates a response and sends it to the device. This response is displayed on the device's screen for the user to see. For example, a message like, "How about this comedy movie to brighten your mood today?" might be displayed.
[1246] (Input): Generated response data
[1247] (Output): Message displayed on the user terminal
[1248] (Specific actions): Sending response data and displaying it on the device.
[1249] Step 7: User Feedback and Profile Updates
[1250] When a user provides feedback on the content presented, that feedback is sent from the device to the server. The server receives this feedback and updates the user profile. This process improves the accuracy of recommendations in the future.
[1251] (Input): User feedback
[1252] (Output): Updated user profile
[1253] (Specific actions): Receiving feedback and updating the profile
[1254] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[1255] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1256] In the above embodiment, an example was given in which specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and specific processing may also be performed by the headset terminal 314.
[1257] [Fourth Embodiment]
[1258] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[1259] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[1260] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 is an example of a "computer" related to the technology of this disclosure. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[1261] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[1262] The microphone 238 receives voice signals from the user 20 and receives instructions from the user 20. The microphone 238 captures the voice signals from the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[1263] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the area around the user 20 (for example, an imaging range defined by a field of view equivalent to the width of a typical healthy person's field of vision).
[1264] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[1265] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. Furthermore, the robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[1266] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[1267] The specific processing program 56 is an example of a "program" relating to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 in accordance with the specific processing program 56 executed on the RAM 30.
[1268] The storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.
[1269] In robot 414, the processor 46 performs the reception output processing. The storage 50 stores the reception output program 60. The processor 46 reads the reception output program 60 from the storage 50 and executes the read reception output program 60 on the RAM 48. The reception output processing is realized by the processor 46 operating as a control unit 46A according to the reception output program 60 executed on the RAM 48.
[1270] Next, the specific processing performed by the specific processing unit 290 of the data processing device 12 will be described. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1271] This invention relates to a system that allows users to receive personalized responses without being aware of the prompt structure. This system primarily consists of the following main components:
[1272] 1. Means for receiving text entered by the user via a device.
[1273] 2. Means for analyzing text using a natural language processing engine
[1274] 3. Means for accessing and updating user profiles
[1275] 4. Means of obtaining relevant data from external sources
[1276] 5. Means for generating responses based on acquired data and user profiles
[1277] 6. Means of sending the response to the device
[1278] Program processing
[1279] User input reception
[1280] The user types "What's the weather like tomorrow?" through their device. This entered text is sent directly to the server.
[1281] Text reception and parsing
[1282] The server first receives the text from the terminal in order to analyze it. After receiving the text, it uses a natural language processing engine to analyze it and extract the intent, "tomorrow's weather." This analysis includes tokenization and keyword extraction.
[1283] User profile verification and update
[1284] The server references the user profile based on the analyzed intent. The user profile contains information such as past interactions and user preferences. For example, it records whether the user prefers a friendly tone or polite explanations. When the user profile is updated, this information is also updated accordingly.
[1285] Generating the answer
[1286] The server retrieves data from an external source (e.g., a weather API) to generate an appropriate response. Based on the retrieved weather data, information such as "It will be sunny tomorrow" is sent to the server.
[1287] The server's response generation module uses user profiles and weather data to generate a friendly response such as, "It's going to be sunny tomorrow, so it'll be a great day to go out!"
[1288] Submit and display of responses
[1289] The server sends the generated response to the terminal.
[1290] The device displays the received response to the user.
[1291] Specific example
[1292] Let's consider a scenario where a user enters "I want to know the weather for this week." In this case, the server parses the text using a similar process, verifies the user profile, and then retrieves the week's weather data from the weather API. For example, if the retrieved data is "This week, it will rain on Monday and Tuesday, and be sunny on the rest of the week," the server generates a response such as "This week's weather forecast is rain in the first half of the week and sunny in the second half" and sends it to the device.
[1293] In this way, users can receive individually customized information without having to be aware of the prompt's structure. This system aims to improve the user experience and enable natural, interactive communication.
[1294] The following describes the processing flow.
[1295] Step 1:
[1296] The user enters "What's the weather like tomorrow?" through their device.
[1297] Step 2:
[1298] The terminal sends the entered text to the server. At this time, the text data is sent as a data packet.
[1299] Step 3:
[1300] The server receives the text sent from the terminal. The received data is temporarily stored in memory.
[1301] Step 4:
[1302] The server's natural language processing engine activates and performs tokenization of the incoming text. It divides the text into words and extracts the keywords "tomorrow" and "weather".
[1303] Step 5:
[1304] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request."
[1305] Step 6:
[1306] The server consults the user profile database to determine the user's preferences. For example, if the user prefers a friendly tone, that information is retrieved.
[1307] Step 7:
[1308] The server adds or updates new data to the user profile as needed.
[1309] Step 8:
[1310] The server sends a request to an external weather API to obtain weather information.
[1311] Step 9:
[1312] The server analyzes weather data received from an external weather API. In this case, it obtains the information "It will be sunny tomorrow."
[1313] Step 10:
[1314] The server's response generation module generates appropriate responses based on the user profile and acquired weather data. For example, it might generate a friendly response such as, "It's going to be sunny tomorrow, so it'll be a great day to go out!"
[1315] Step 11:
[1316] The server sends the generated response to the terminal. The response data is sent as a data packet.
[1317] Step 12:
[1318] The device analyzes the received response data and displays it to the user. The screen displays "It will be sunny tomorrow, so it will be a good day to go out!"
[1319] Step 13:
[1320] Users provide feedback on the answers (for example, by clicking the "Helpful" button).
[1321] Step 14:
[1322] The device sends feedback data to the server. The feedback data is sent as a data packet.
[1323] Step 15:
[1324] The server receives feedback data and updates the user profile. The feedback reflects the user's satisfaction level and further preferences.
[1325] (Example 1)
[1326] Next, we will describe Example 1. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1327] Conventional information retrieval systems often struggle to provide appropriate and personalized responses to user prompts. Furthermore, they rarely offer sufficient customization based on users' past search history and preferences, resulting in a lack of responses that meet individual needs. This can limit the user experience and reduce the system's overall value.
[1328] The identification process performed by the identification processing unit 290 of the data processing device 12 in Example 1 is realized by the following means.
[1329] In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing to extract context and intent, and means for referring to the user profile and updating the profile based on the user's preferences. This makes it possible to generate and appropriately display personalized responses to user input.
[1330] A "user" refers to an individual or group that uses a system and inputs information through a terminal.
[1331] A "terminal" refers to an electronic device used by a user to input data and communicate with a server. Examples include smartphones, personal computers, and tablets.
[1332] "Text" refers to string data entered by the user through their device.
[1333] A "server" refers to a computer system that receives, analyzes, retrieves data from text, and generates responses.
[1334] "Natural language processing" refers to techniques where a server analyzes text and extracts context and intent. Examples include tokenization, morphological analysis, and keyword extraction.
[1335] "Methods for extracting intent" refers to the process of identifying the purpose or request from the text entered by the user using natural language processing.
[1336] A "user profile" refers to a collection of information that includes a user's individual preferences and past data.
[1337] "External information sources" refer to external data providers that servers use to retrieve data. Examples include weather APIs and news APIs.
[1338] "Response generation" refers to the process by which the server generates information corresponding to user input based on the user profile and external data.
[1339] "Feedback" refers to the evaluations and reactions that users give to the generated answers.
[1340] "Tokenization" refers to a natural language processing technique that divides input text into words and phrases.
[1341] "Keyword extraction" refers to a natural language processing technique that identifies key words and phrases from input text.
[1342] This invention is a system that allows users to receive personalized responses without being aware of the prompt structure. This system primarily consists of a user, a terminal, and a server.
[1343] Specifically, text entered by the user through their device is sent to the server. The server analyzes the received text using a natural language processing engine (e.g., Google NLP API or SpaCy) to extract context and intent. This analysis includes tokenization, morphological analysis, and keyword extraction. For example, in response to the input "What's the weather like tomorrow?", the keywords "tomorrow" and "weather" are extracted.
[1344] Next, the server refers to the user profile based on the analyzed intent. The user profile records past interactions and the user's preferences. For example, if it contains information that the user prefers a friendly tone, the profile may be updated accordingly.
[1345] The server retrieves relevant data from external sources (e.g., the OpenWeatherMap API) and generates responses based on the retrieved data and the user profile. For example, if it retrieves weather data and the information is "It will be sunny tomorrow," and the user prefers a friendly tone, it will generate a response such as "It will be sunny tomorrow, so it's a great day to go out!"
[1346] The generated response is sent from the server to the terminal, and the terminal displays the response to the user. The user can provide feedback on the response, and the server receives this feedback and updates the user profile.
[1347] As a concrete example, consider a case where a user inputs "I want to know the weather for this week." In this case, the text is sent to the server and parsed by a natural language processing engine. The server then retrieves the week's weather data from a weather API (for example, the OpenWeatherMap API) and obtains information such as "This week, it will rain on Monday and Tuesday, and be sunny for the rest of the week." Based on this data, it generates a response such as "This week's weather forecast is rain in the first half of the week and sunny in the second half," and sends it to the terminal.
[1348] Examples of prompt statements include:
[1349] 1. "If a user enters 'I want to know this week's weather,' how should we respond?"
[1350] 2. "How can I customize weather information based on the user's profile?"
[1351] Such a system improves the user experience because users receive individually customized information without having to be aware of the prompt configuration. It also features natural and interactive communication.
[1352] The flow of the specific processing in Example 1 will be explained using Figure 11.
[1353] Step 1:
[1354] The user enters a question through their device. For example, they might type "What's the weather like tomorrow?". The entered text is then sent from the device to the server.
[1355] Input: User's input text "What will the weather be like tomorrow?"
[1356] Output: Text sent to the server
[1357] Specific operation: The terminal displays a text input box, and after the user completes the input, the text is sent to the server when the send button is pressed.
[1358] Step 2:
[1359] The server first receives the text from the terminal in order to analyze it. The received text is then analyzed using a natural language processing engine (e.g., Google NLP API or SpaCy). The analysis includes tokenization, morphological analysis, and keyword extraction.
[1360] Input: Text received from the terminal: "What's the weather like tomorrow?"
[1361] Output: Tokenized words and phrases, extracted keywords "tomorrow" and "weather"
[1362] Specific operation: The server receives text with a receiving module and starts a natural language processing engine to analyze the text. During the analysis process, a tokenizer first divides the text into words, then performs morphological analysis, and finally extracts important keywords.
[1363] Step 3:
[1364] The server references the user profile based on the analyzed intent. The user profile is stored in a database containing information such as past interactions and user preferences. The profile is updated as needed.
[1365] Input: Analyzed keywords "tomorrow" and "weather"
[1366] Output: Corresponding user profile information
[1367] Specific operation: The server searches the database based on the user ID and retrieves the profile data of the corresponding user. It also updates the profile if new user preferences or tendencies are discovered.
[1368] Step 4:
[1369] The server sends a request to retrieve relevant data from an external source (e.g., the OpenWeatherMap API). The retrieved data is then returned to the server.
[1370] Input: Keywords and user profile
[1371] Output: Data obtained from an external source (e.g., "It will be sunny tomorrow")
[1372] Specific operation: The server generates an API request and sends it to an external information source. It receives a response from the API and extracts the necessary information from it.
[1373] Step 5:
[1374] The server generates responses based on acquired weather data and user profiles. For example, it generates responses in a context that suits the user's preferences, such as, "It will be sunny tomorrow, so it's a great day to go out!"
[1375] Input: Acquired weather data, user profile
[1376] Output: Generated answer text
[1377] Specific operation: The server's response generation module uses weather data and profiles to execute a natural language generation algorithm and generate an appropriate response.
[1378] Step 6:
[1379] The server sends the generated response to the terminal. The terminal displays the received response to the user.
[1380] Input: Generated response text
[1381] Output: Answer displayed on the terminal
[1382] Specific operation: The server uses a messaging protocol to send the response to the terminal, and the terminal's display module displays the received response on the screen. If a text-to-speech function is available, the response may also be played back aloud.
[1383] (Application Example 1)
[1384] Next, we will explain Application Example 1. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1385] In conventional systems, operating machinery and checking its status within a factory requires users to manually input various settings and commands, which is time-consuming and labor-intensive. Furthermore, it is prone to operational errors and miscommunication, leading to decreased work efficiency. There is a growing need for a system that allows users to operate intuitively without having to be aware of specific prompt configurations.
[1386] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 1 is realized by the following means.
[1387] In this invention, the server includes means for receiving text entered by a user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to a user profile and updating the profile based on the user's preferences, means for obtaining relevant data from an external information source, means for generating a response based on the user profile and the obtained data, means for transmitting the generated response to the terminal, and means for processing instructions regarding the operation or status check of factory machinery. This enables the user to efficiently operate factory machinery and check its status without being aware of the prompt configuration.
[1388] A "user" refers to anyone or a group who uses the system, performing operations or giving instructions through a terminal.
[1389] A "device" is an electronic device used by a user for operation or input, and includes smartphones, tablets, and personal computers.
[1390] "Text" refers to a string of characters entered by a user through a device, and is a sentence written in natural language.
[1391] "Natural language processing" refers to the technology that enables computers to understand and analyze natural human language, and includes methods for extracting the context and intent of text.
[1392] "Context" refers to the situation or background in which words in a text are placed, or the meanings they carry.
[1393] "Intention" refers to the purpose or action expressed in the text entered by the user.
[1394] A "user profile" is data that records information such as a user's preferences and past interactions, and is used by the system to generate individually customized responses.
[1395] "External information sources" refer to data providers that exist outside the system, such as APIs and databases.
[1396] "Data" refers to information obtained from external sources, which are the raw materials that a system uses to generate responses.
[1397] "Machinery" refers to various pieces of equipment and devices used within a factory, and is a tool for performing specific tasks or processes.
[1398] "Operation" refers to instructions or control actions that a user performs on a machine, and includes actions that change the machine's operation or settings.
[1399] "Status check" is the act of checking the current status and operating condition of a machine, and is performed for maintenance and monitoring purposes.
[1400] An "instruction" is a specific command or request that a user gives to a system or machine, and is often expressed in text.
[1401] "Answer" refers to the response that a system generates based on user input, and includes information and instructions provided to the user.
[1402] A "server" refers to a computing resource necessary for a system to operate; it is the central device that receives data from users, processes it, and generates responses.
[1403] "Tokenization" is the process of dividing text into simpler constituent elements, and it is a technique used to extract keywords and phrases.
[1404] This invention relates to a system that allows users to efficiently operate and check the status of factory machinery without being aware of the prompt configuration. This system receives text entered by the user through a terminal, extracts context and intent using natural language processing, and provides the user with a response generated by referring to the user profile.
[1405] The system consists of the following main parts:
[1406] 1. User Input Reception: Users input text via their device (smartphone, tablet, etc.). When a user enters instructions such as "I want to check the robot's status," this text is sent to the server.
[1407] 2. Text Reception and Parsing: The server parses the text received from the terminal and extracts its context and intent. This parsing uses natural language processing with the Transformers library. Specifically, it performs tokenization and extracts keywords.
[1408] 3. User Profile Verification and Update: The server references user profiles based on the analyzed intent. User profiles record past interactions and user preferences, such as whether they prefer detailed reports. Profiles are updated as needed.
[1409] 4. Data acquisition from external sources: The server acquires information about the robot's status and the operation of factory machinery from external sources (APIs, databases, etc.). For example, it acquires the robot's current operating status.
[1410] 5. Generating Responses: Based on the acquired data and user profile, the server generates appropriate responses. If the user wants to know the status of the robots, a response such as "Robot A is currently operational, Robot B is on standby" will be generated. Natural language generation (NLG) technology is used for this generation.
[1411] 6. Sending and displaying responses: The server sends the generated response to the terminal. The terminal displays this response to the user.
[1412] Specific example
[1413] When a user types "I want to check the robot's status," the server parses the text in a similar manner, verifies the user profile, and then retrieves data about the robot's status from an external source. For example, if the retrieved data is "Robot A is running, Robot B is on standby," the server generates a response such as "Robot A is currently running, Robot B is on standby" and sends it to the terminal. Users can intuitively receive the necessary information without having to be aware of the prompt's structure.
[1414] This system significantly improves the efficiency of user operations and monitoring tasks within the factory, and reduces the occurrence of errors.
[1415] The flow of a specific process in Application Example 1 will be explained using Figure 12.
[1416] Step 1:
[1417] The user inputs text through a terminal. In this process, the user inputs text such as "I want to check the robot's status" on the terminal, and the terminal sends that text to the server. The input is "I want to check the robot's status," and the output is the transmitted text.
[1418] Step 2:
[1419] The server analyzes the input text received from the terminal. It uses a natural language processing engine (Transformers library) to analyze the received data (input text) and extract context and intent. Specifically, the server performs tokenization and extracts keywords. The input is the received text, and the output is the analysis result (intent and keywords).
[1420] Step 3:
[1421] The server references and updates the user profile based on the analysis results. The user profile records information such as past interactions and user preferences. The server uses this information to update the profile as needed. The input is the analysis results and the current user profile, and the output is the updated user profile.
[1422] Step 4:
[1423] The server retrieves relevant data from external sources. In this example, it sends a request to an external database, such as an API, to retrieve data about the status of robots in the factory. The input is the request information, and the output is the retrieved robot status data.
[1424] Step 5:
[1425] The server generates responses based on the user profile and acquired data. Using the acquired data and user profile, it employs a natural language generation engine to create appropriate responses for the user. For example, it might generate a response such as, "Robot A is currently operational, Robot B is on standby." The input is the updated user profile and acquired external data, and the output is the generated response text.
[1426] Step 6:
[1427] The server sends the generated response to the terminal. The terminal displays this received response to the user. The input is the generated response text, and the output is the displayed response.
[1428] In each processing step, the server analyzes, references, updates, retrieves, generates, and transmits data, and the output obtained in each step becomes the input for the next step. This creates a system that allows users to intuitively operate and check the status of factory machinery.
[1429] Furthermore, an emotion engine that estimates the user's emotions may be incorporated. That is, the identification processing unit 290 may use the emotion identification model 59 to estimate the user's emotions and perform identification processing using the user's emotions.
[1430] This invention combines an emotion engine with a system that provides personalized responses without requiring the user to configure prompts. This enables more appropriate and personalized responses that take the user's emotions into account. The system consists of the following main parts:
[1431] 1. Means for receiving text entered by the user via a device.
[1432] 2. Means for analyzing text using a natural language processing engine
[1433] 3. Means for accessing and updating user profiles
[1434] 4. Means of obtaining relevant data from external sources
[1435] 5. Means for generating responses based on acquired data and user profiles
[1436] 6. A means of recognizing the user's emotions using an emotion engine and adjusting the tone of the response.
[1437] 7. Means for sending the generated response to the terminal.
[1438] Program processing
[1439] User input reception
[1440] The user enters "What's the weather like tomorrow?" through their terminal. This user input becomes the starting point for the entire system's processing.
[1441] Text reception and parsing
[1442] The terminal sends the user's input text to the server.
[1443] The server receives text sent from the terminal, performs text tokenization using a natural language processing engine, and extracts keywords.
[1444] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request."
[1445] User profile verification and update
[1446] The server refers to the user profile database to check the user's preferences and past interactions. For example, whether they prefer a friendly tone or specific data.
[1447] The server adds or updates new data to the user profile as needed.
[1448] How the emotion engine works
[1449] The server uses an emotion engine to recognize emotions from the text entered by the user. For example, it determines whether the user's emotion is "expectation," "anxiety," "excitement," or "anger" based on the context and vocabulary of the text.
[1450] The recognized emotions are added to the user profile.
[1451] Generating the answer
[1452] The server sends a request to an external weather API to retrieve weather information.
[1453] The server analyzes the weather data received from the weather API and, for example, obtains weather data such as "It will be sunny tomorrow."
[1454] The server's response generation module generates appropriate responses based on the user profile, sentiment engine results, and acquired weather data. For example, it generates a friendly message that takes user expectations into account, such as, "It's going to be sunny tomorrow, so it's a great day to go out!"
[1455] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user is angry, a more polite and calm tone of response will be generated.
[1456] Submit and display of responses
[1457] The server sends the generated response to the terminal.
[1458] The device displays the received response to the user.
[1459] Specific example
[1460] For example, if a user types "I'm worried about tomorrow's weather," the server analyzes the text and uses an emotion engine to recognize the emotion "anxiety." Based on this information, the server generates a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out." This response is then sent to the device and displayed to the user.
[1461] In this way, the present invention aims to improve the user experience and provides a system that enables natural and effective interaction that is in line with the user's emotions.
[1462] The following describes the processing flow.
[1463] Step 1:
[1464] The user types "I'm worried about tomorrow's weather" through their device.
[1465] Step 2:
[1466] The terminal sends the entered text to the server. At this time, the text data is sent as a data packet.
[1467] Step 3:
[1468] The server receives the text sent from the terminal. The received data is temporarily stored in memory.
[1469] Step 4:
[1470] The server's natural language processing engine activates and performs tokenization of the incoming text. It divides the text into words and extracts keywords such as "tomorrow," "weather," and "worry."
[1471] Step 5:
[1472] The server's intent analysis module recognizes from the extracted keywords that it is a "weather forecast request." It also infers that the user's emotion is "anxiety" from the keyword "worry."
[1473] Step 6:
[1474] The server uses an emotion engine to recognize the emotions of the entire text. The emotion engine analyzes keywords, context, and expressions, and classifies the emotions embedded in the text entered by the user as "anxiety."
[1475] Step 7:
[1476] The server refers to the user profile database to check the user's preferences and past interactions. For example, it can find out whether the user prefers a friendly tone or specific data.
[1477] Step 8:
[1478] If necessary, the server will add or update new data to the user profile. In this case, the emotion "anxiety" will also be added to the user profile.
[1479] Step 9:
[1480] The server sends a request to an external weather API to retrieve weather information. This request includes the user's current location and date / time information.
[1481] Step 10:
[1482] The server analyzes weather data received from an external weather API. In this case, it retrieves weather data indicating "sunny tomorrow."
[1483] Step 11:
[1484] The server's response generation module generates appropriate responses based on the user profile, sentiment engine results, and acquired weather data. For example, it might generate a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out."
[1485] Step 12:
[1486] The server sends the generated response to the terminal. The response data is sent as a data packet.
[1487] Step 13:
[1488] The device analyzes the received response data and displays it to the user. The screen displays, "It will be sunny tomorrow, so there's nothing to worry about. It's perfect weather for going out."
[1489] Step 14:
[1490] Users provide feedback on the answers (for example, by clicking the "Helpful" button).
[1491] Step 15:
[1492] The device sends feedback data to the server. The feedback data is sent as a data packet.
[1493] Step 16:
[1494] The server receives feedback data and updates the user profile. The feedback reflects the user's satisfaction level and further preferences. The results of the sentiment engine are also saved in the profile and reflected in future responses.
[1495] (Example 2)
[1496] Next, we will describe Example 2. In the following description, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1497] Traditional systems have difficulty providing personalized responses without users having to configure prompts, and furthermore, they have been inadequate in terms of emotionally sensitive responses. As a result, the user experience has not improved, and it is difficult to adequately meet user needs.
[1498] The identification processing performed by the identification processing unit 290 of the data processing device 12 in Example 2 is realized by the following means. In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to the user profile and updating the profile based on the user's preferences, means for obtaining relevant data from an external information source, means for generating an answer based on the user profile and the acquired data, means for recognizing the user's emotions using an emotion engine and adjusting the tone of the answer, and means for transmitting the generated answer to the terminal. This makes it possible to provide more personalized, appropriate, and emotionally sensitive answers based on the user's emotions and past interactions.
[1499] A "user" refers to an individual or entity that uses a system to input information and receives the outputted response.
[1500] A "terminal" refers to a device or equipment that a user uses to access a system and input or receive data.
[1501] "Text" refers to strings of characters entered by a user through a device, and is information expressed in the form of questions, instructions, etc.
[1502] "Natural language processing" refers to techniques for analyzing text and extracting context and intent from human language.
[1503] "Context" refers to the background information and situation necessary to understand the meaning of the text.
[1504] "Intent" refers to information that indicates what the user is looking for or intends based on the text they have entered.
[1505] A "user profile" refers to data that records information such as a user's preferences, past interactions, and emotional state, and is managed individually for each user.
[1506] "External information sources" refer to information providers such as APIs and databases that exist outside the system and are referenced to provide necessary data.
[1507] An "emotion engine" refers to a technology that analyzes and recognizes emotions from text entered by the user, and adjusts the tone of the response based on the results.
[1508] "Tone" refers to the wording and nuances of the generated response, meaning expressions that take the user's feelings into consideration.
[1509] "Answer" refers to the information or message that the system generates and provides in response to user input.
[1510] "Feedback" refers to the act of users providing evaluations or comments on the generated answers.
[1511] "Means of receiving data" refers to the processes and devices used to import user input data into the server.
[1512] "Means of transmission" refers to the process or device used to send the generated response from the server to the user's terminal.
[1513] Modes for carrying out the invention
[1514] This invention combines an emotion engine with a system that provides personalized responses without requiring the user to configure prompts, enabling more appropriate and personalized responses that take the user's emotions into account. The system consists of the following main components:
[1515] User input reception
[1516] The user enters text through the terminal. For example, they might type, "What's the weather like tomorrow?" The user's input becomes the starting point for the entire system's processing.
[1517] The terminal receives the entered text and temporarily stores it.
[1518] Text reception and parsing
[1519] The terminal sends the user's input text to the server as an HTTP request.
[1520] The server receives text sent from the terminal. The receiving process uses an API endpoint (e.g., / receive-text).
[1521] The server's natural language processing engine (e.g., SpaCy) is used to tokenize the text, breaking down the input text into keywords.
[1522] The server's intent analysis module recognizes the user's intent (e.g., "request for weather forecast") from the extracted keywords.
[1523] User profile verification and update
[1524] The server uses the user ID to send queries to a profile database (e.g., MySQL) to retrieve and update the user's preferences and past interaction data.
[1525] The server analyzes the acquired data to determine whether the user prefers a friendly tone and specific data.
[1526] Add or update new data to the user profile as needed.
[1527] How the emotion engine works
[1528] The server calls a sentiment engine (e.g., IBM Watson Tone Analyzer) using an API request and sends the text entered by the user.
[1529] The emotion engine analyzes the text and recognizes the user's emotions. The emotion recognition results are returned to the server in JSON format.
[1530] The server receives this recognition result and adds sentiment information (e.g., "expectation") to the user profile.
[1531] Generating the answer
[1532] The server sends a request to an external weather API (e.g., OpenWeatherMap API) to retrieve weather information. For example, it might execute a request like GET / weather?q=Tokyo&appid={API_KEY}.
[1533] The weather API returns weather data in JSON format. For example, it might include data such as "Tomorrow will be sunny."
[1534] The server's response generation module combines the user profile, sentiment engine results, and acquired weather data to generate an appropriate response. For example, it might generate a message like, "It's going to be sunny tomorrow, so it's a great day to go out!"
[1535] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user indicates "anxiety," a calm response such as "It will be sunny tomorrow, so there's nothing to worry about" is generated.
[1536] Submit and display of responses
[1537] The server sends the generated response to the terminal as an HTTP response.
[1538] The device displays the received response to the user. For example, it might display a message on the app screen saying, "It will be sunny tomorrow, so it's a great day to go out!"
[1539] Specific example
[1540] For example, if a user types "I'm worried about tomorrow's weather," the server analyzes the text and uses an emotion engine to recognize the emotion "anxiety." Based on this information, the server generates a reassuring response such as, "It will be sunny tomorrow, so don't worry. It's a perfect day to go out." This response is then sent to the device and displayed to the user.
[1541] Example of a prompt
[1542] The following prompt messages can be input to the generating AI model.
[1543] "Generate an appropriate response when a user types 'I'm worried about tomorrow's weather.' The response should include a message in a reassuring tone, such as 'It will be sunny tomorrow, so don't worry. It's perfect weather for going out.'"
[1544] In this way, the present invention realizes a system that provides natural and effective interaction that is in line with the user's emotions.
[1545] The flow of the specific processing in Example 2 will be explained using Figure 13.
[1546] Step 1: User Input Reception
[1547] The user enters "What's the weather like tomorrow?" via their device. This input text is the starting point for processing.
[1548] The device receives the text entered by the user and stores it temporarily.
[1549] Input: User-entered text "What will the weather be like tomorrow?"
[1550] Output: Received text "What's the weather like tomorrow?"
[1551] Step 2: Receiving and Parsing Text
[1552] The terminal sends the user's input text to the server as an HTTP request.
[1553] The server receives text sent from the terminal and performs tokenization using a natural language processing engine (e.g., SpaCy).
[1554] The server's intent analysis module analyzes the keywords extracted through tokenization (e.g., "tomorrow," "weather") and recognizes the intent of a "weather forecast request."
[1555] Input: Received text message: "What's the weather like tomorrow?"
[1556] Output: "Weather forecast request" as the intended message.
[1557] Step 3: Verify and update user profile
[1558] The server sends a query to a profile database (e.g., MySQL) based on the user's ID to retrieve user preferences and past interaction data.
[1559] The server uses the retrieved data to determine the user's preferences (e.g., whether they prefer a friendly tone or specific data).
[1560] If necessary, the server queries the profile database to add or update new data to the user profile.
[1561] Input: Query based on User ID
[1562] Output: User preferences and past interaction data
[1563] Step 4: Operating the Emotion Engine
[1564] The server calls the API of an emotion engine (e.g., IBM Watson Tone Analyzer) and sends the text entered by the user.
[1565] The emotion engine analyzes the text and returns the user's emotions (e.g., "expectation," "anxiety") as a result to the server in JSON format.
[1566] Based on the emotion recognition results received by the server, emotion information is added to the user profile.
[1567] Input: User input text
[1568] Output: User's emotion (e.g., "anxiety")
[1569] Step 5: Generating the response content
[1570] The server sends a request to an external weather API (e.g., OpenWeatherMap API) to retrieve weather information. For example, it might execute a request like GET / weather?q=Tokyo&appid={API_KEY}.
[1571] The weather API returns weather data to the server in JSON format. For example, it might include data such as "Tomorrow will be sunny."
[1572] The server's response generation module generates an appropriate response based on the user profile, sentiment engine results, and acquired weather data. For example, it might create a message like, "It's going to be sunny tomorrow, so it's a great day to go out!"
[1573] Based on the results of the emotion engine, the tone and content of the response are adjusted. For example, if the user indicates "anxiety," a calm response such as "It will be sunny tomorrow, so there's nothing to worry about" is generated.
[1574] Input: User profile, sentiment data, weather data
[1575] Output: Generated response: "It will be sunny tomorrow, so there's nothing to worry about."
[1576] Step 6: Submit and view your response
[1577] The server sends the generated response to the terminal as an HTTP response.
[1578] The device displays the received response to the user. For example, it might display a message on the app screen saying, "It will be sunny tomorrow, so don't worry. It's perfect weather for going out."
[1579] Input: Generated answer
[1580] Output: Message displayed on the device: "It will be sunny tomorrow, so there's nothing to worry about. It's perfect weather for going out."
[1581] (Application Example 2)
[1582] Next, we will explain application example 2. In the following explanation, the data processing device 12 will be referred to as the "server" and the robot 414 as the "terminal".
[1583] While modern content delivery services commonly recommend content based on users' personal preferences, emotion-based personalization is not sufficiently implemented. Providing content that is optimal for a user's temporary emotions and mood at that moment would further enhance the user experience and increase satisfaction. However, conventional systems lack sufficient emotion recognition capabilities, making emotion-based recommendations difficult.
[1584] The specific processing performed by the specific processing unit 290 of the data processing device 12 in Application Example 2 is realized by the following means.
[1585] In this invention, the server includes means for receiving text entered by the user through a terminal, means for analyzing the text using natural language processing and extracting context and intent, means for referring to the user profile and updating the profile based on the user's preferences, means for obtaining relevant data from external sources, means for generating a response based on the user profile and the obtained data, means for recognizing the user's emotions and adjusting the tone of the response, and means for transmitting the generated response to the terminal. This enables personalized movie and drama recommendations that are tailored to the user's emotions.
[1586] "Means of receiving text entered by a user through a device" refers to the process by which a user enters text into an electronic device such as a smartphone or smart glasses, and the system receives that text data.
[1587] "Methods for analyzing text using natural language processing to extract context and intent" refers to the process of analyzing input text data using natural language processing techniques to understand the background and subject matter of that text.
[1588] "Means of referencing user profiles and updating profiles based on user preferences" refers to the process of checking user information stored within the system based on user behavior and input, and updating that information to the latest state.
[1589] "Means of obtaining relevant data from external sources" refers to the process of obtaining necessary information from the internet or external databases and using it within the system.
[1590] "Means for generating responses based on the user profile and acquired data" refers to a process that generates appropriate responses to provide to the user based on the user's profile information and acquired external data.
[1591] "Means of recognizing user emotions and adjusting the tone of responses" refers to the process of analyzing the emotions from the user's input text and adjusting the tone and expression of the response according to the results of that analysis.
[1592] "Means for sending the generated response to the terminal" refers to the process of sending the generated response to the user's electronic terminal for display.
[1593] "A means for users to provide feedback on generated responses" refers to the process by which users input their opinions and impressions on the provided responses and provide that information to the system.
[1594] "Means for receiving the aforementioned feedback and updating the user profile" refers to the process of receiving feedback from the user and updating the user profile to the latest state based on the content of that feedback.
[1595] "A method for generating content that recommends movies and dramas tailored to the user's emotions" refers to a process that selects and provides movies and dramas that are best suited to the user's mood at that time, based on the results of an emotional analysis.
[1596] "Natural language processing is a means of tokenizing and extracting keywords," which means that input text data is broken down into words and phrases, and important keywords are identified from among them.
[1597] System Overview
[1598] This invention is a personalized movie and TV show recommendation system that takes user emotions into consideration. The system primarily recognizes user emotions and recommends content based on those emotions. It also receives user feedback and updates the user profile to improve the accuracy of future recommendations.
[1599] Hardware and software to be used
[1600] Hardware:
[1601] smartphone
[1602] Smart Glasses
[1603] Servers (including cloud servers)
[1604] software:
[1605] Natural language processing engines (e.g., Hugging Face's "transformers" library)
[1606] Emotion recognition engine
[1607] External data APIs (e.g., movie recommendation API)
[1608] User Interface (UI) Components
[1609] Explanation of the processing procedure
[1610] User input reception
[1611] The user inputs text via their smartphone or smart glasses. For example, if they input "I'm feeling kind of depressed today," this input becomes the starting point for the entire system's processing.
[1612] Text reception and parsing
[1613] The user's input text is sent from the terminal to the server. The server receives the text and analyzes it using a natural language processing engine. This analysis first performs tokenization and extracts keywords. Next, an intent analysis module analyzes the user's sentiment from the extracted keywords.
[1614] User profile verification and update
[1615] The server refers to the user profile database to check past interactions and preferences. Based on this information, the profile is updated as needed. For example, the user's past preferred genres and viewing history are added or updated to the profile.
[1616] How the emotion engine works
[1617] The emotion engine recognizes emotions from the user's input text. At this stage, emotions such as "melancholy" are determined from the context and vocabulary of the text. The recognized emotions are added to the user profile.
[1618] Generating the answer
[1619] Based on the results of the emotion engine and user profile information, the server retrieves relevant data from external sources (e.g., a movie recommendation API). For example, if the user is feeling "depressed," comedy movies or dramas to cheer them up will be recommended. The server's response generation module takes the results of the emotion engine into consideration and generates a message to display in the user interface in an appropriate tone.
[1620] Submit and display of responses
[1621] The server sends the generated response to the device. For example, a message like, "How about this comedy movie to brighten your mood today?" is sent. This message is displayed on the device screen and recommended to the user.
[1622] User feedback and profile updates
[1623] When a user provides feedback on the content presented, the system receives that feedback and updates the user profile. This process improves the accuracy of recommendations in the future.
[1624] Specific example
[1625] For example, if a user types "I'm feeling kind of depressed today," the server analyzes the text and uses an emotion engine to recognize the emotion "depressed." Based on this emotion, the server retrieves a comedy movie from an external movie recommendation API and generates a suggestion such as, "How about this comedy movie to brighten your mood today?" It then sends this suggestion to the device and displays it to the user.
[1626] Example of a prompt:
[1627] User input: "I'm feeling kind of gloomy today."
[1628] AI model prompt: "Recognize the emotion from the following text: Today, I feel somewhat depressed."
[1629] Content recommendation prompt: "Generate movie recommendations for a person who feels sad and prefers comedies."
[1630] As a result, it becomes possible to recommend personalized movies and TV shows that respond to the user's emotions.
[1631] The flow of a specific process in Application Example 2 will be explained using Figure 14.
[1632] Step 1: User Input Reception
[1633] The user inputs text through a device such as a smartphone or smart glasses. For example, they might type, "I'm feeling kind of depressed today." This input is received by the device and sent to the server.
[1634] (Input): User text input
[1635] (Output): Send text data to the server
[1636] Step 2: Receiving and Parsing Text
[1637] The server receives text data sent from the terminal and analyzes it using a natural language processing engine (e.g., the "transformers" library). The analysis first performs tokenization to extract keywords. Then, intent analysis is performed based on these keywords.
[1638] (Input): User's text data
[1639] (Output): Keyword and intent extraction results
[1640] (Specific actions): Tokenization and intent analysis using a natural language processing engine.
[1641] Step 3: Verify and update user profile
[1642] The server accesses the user profile database to check user preferences and past interaction data. Based on this information, the profile is updated to the latest state. For example, new sentiment data or viewing history may be added or updated to the profile.
[1643] (Input): Extracted keywords and intent
[1644] (Output): Updated user profile
[1645] (Specific actions): Accessing and updating the user profile database.
[1646] Step 4: Operating the Emotion Engine
[1647] The server uses an emotion engine to recognize emotions from the user's input text. The emotion engine analyzes the context and vocabulary of the text to determine emotions such as "depressed." The recognized emotion data is added to the user profile.
[1648] (Input): User input text
[1649] (Output): Analyzed user sentiment data
[1650] (Specific actions): Text analysis and sentiment recognition
[1651] Step 5: Generating the response content
[1652] The server sends a request to an external information source (e.g., a movie recommendation API) based on the results from the emotion engine and user profile information. It then analyzes the data received from the external API and generates an appropriate response based on that analysis. For example, it might generate a suggestion such as, "How about this comedy movie to brighten your mood today?"
[1653] (Input): Sentiment data and user profile
[1654] (Output): List of recommended movies and TV shows
[1655] (Specific actions): Requests to external information sources and analysis of received data.
[1656] Step 6: Submit and view your response
[1657] The server generates a response and sends it to the device. This response is displayed on the device's screen for the user to see. For example, a message like, "How about this comedy movie to brighten your mood today?" might be displayed.
[1658] (Input): Generated response data
[1659] (Output): Message displayed on the user terminal
[1660] (Specific actions): Sending response data and displaying it on the device.
[1661] Step 7: User Feedback and Profile Updates
[1662] When a user provides feedback on the content presented, that feedback is sent from the device to the server. The server receives this feedback and updates the user profile. This process improves the accuracy of recommendations in the future.
[1663] (Input): User feedback
[1664] (Output): Updated user profile
[1665] (Specific actions): Receiving feedback and updating the profile
[1666] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[1667] Data generation model 58 is a type of so-called generative AI (Artificial Intelligence). One example of data generation model 58 is ChatGPT (Internet search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search) <url: https: gemini.google.com ?hl="ja">Examples of generative AI include the following. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images. The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference results in data formats such as audio data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.
[1668] In the above embodiment, an example was given in which the specific processing is performed by the data processing device 12, but the technology of this disclosure is not limited thereto, and the specific processing may also be performed by the robot 414.
[1669] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[1670] Figure 9 shows an emotion map 400 in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[1671] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[1672] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[1673] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, motorcycles, etc., emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[1674] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[1675] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[1676] The above description primarily focuses on the functions of the data processing device 12 in relation to this disclosure. However, the system related to this disclosure is not necessarily implemented on a server. The system related to this disclosure may be implemented as a general information processing system. This disclosure may be implemented, for example, as a software program that runs on a personal computer or as an application that runs on a smartphone. The method related to this disclosure may be provided to users in SaaS (Software as a Service) format.
[1677] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing of the specific process may be performed by multiple computers, including computer 22. For example, a data generation model 58 may be provided in an external device of the data processing device 12, and the external device may generate data according to the input data.
[1678] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[1679] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[1680] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[1681] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[1682] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[1683] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[1684] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[1685] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and the like that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[1686] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[1687] The following is further disclosed regarding the embodiments described above.
[1688] (Claim 1)
[1689] A means of receiving text entered by a user through a device,
[1690] A means for analyzing the aforementioned text using natural language processing and extracting context and intent,
[1691] A means of referencing the user profile and updating the profile based on the user's preferences,
[1692] Means for obtaining relevant data from external sources,
[1693] Means for generating a response based on the user profile and acquired data,
[1694] A system including means for transmitting the generated response to a terminal.
[1695] (Claim 2)
[1696] A means for users to provide feedback on the generated answers,
[1697] The system according to claim 1, further comprising means for receiving the aforementioned feedback and updating the user profile.
[1698] (Claim 3)
[1699] The natural language processing system according to claim 1 includes means for performing tokenization and extracting keywords.
[1700] "Example 1"
[1701] (Claim 1)
[1702] A means of receiving text entered by a user through a device,
[1703] A means for analyzing the aforementioned text using natural language processing and extracting context and intent,
[1704] A means of referencing the user profile and updating the profile based on the user's preferences,
[1705] Means for obtaining relevant data from external sources,
[1706] Means for generating a response based on the user profile and acquired data,
[1707] A means for sending the generated response to the terminal,
[1708] A system including means for displaying the generated response at the terminal.
[1709] (Claim 2)
[1710] A means for users to provide feedback on the generated answers,
[1711] The system according to claim 1, further comprising means for receiving the aforementioned feedback and updating the user profile.
[1712] (Claim 3)
[1713] The natural language processing system according to claim 1 includes means for performing tokenization and extracting keywords.
[1714] "Application Example 1"
[1715] (Claim 1)
[1716] A means of receiving text entered by a user through a device,
[1717] A means for analyzing the aforementioned text using natural language processing and extracting context and intent,
[1718] A means of referencing the user profile and updating the profile based on the user's preferences,
[1719] Means for obtaining relevant data from external sources,
[1720] Means for generating a response based on the user profile and acquired data,
[1721] A means for sending the generated response to the terminal,
[1722] A system including means for processing instructions related to the operation or status check of factory machinery.
[1723] (Claim 2)
[1724] A means of providing feedback on the generated answers,
[1725] The system according to claim 1, further comprising means for receiving the aforementioned feedback and updating the user profile.
[1726] (Claim 3)
[1727] The natural language processing system according to claim 1 includes means for performing tokenization and extracting keywords.
[1728] "Example 2 of combining an emotion engine"
[1729] (Claim 1)
[1730] A means of receiving text entered by a user through a device,
[1731] A means for analyzing the aforementioned text using natural language processing and extracting context and intent,
[1732] A means of referencing the user profile and updating the profile based on the user's preferences,
[1733] Means for obtaining relevant data from external sources,
[1734] Means for generating a response based on the user profile and acquired data,
[1735] A means of recognizing the user's emotions using an emotion engine and adjusting the tone of the response,
[1736] A system including means for transmitting the generated response to a terminal.
[1737] (Claim 2)
[1738] A means for users to provide feedback on the generated answers,
[1739] The system according to claim 1, further comprising means for receiving the aforementioned feedback and updating the user profile.
[1740] (Claim 3)
[1741] The natural language processing system according to claim 1 includes means for performing tokenization and extracting keywords.
[1742] "Application example 2 when combining with an emotional engine"
[1743] (Claim 1)
[1744] A means of receiving text entered by a user through a device,
[1745] A means for analyzing the aforementioned text using natural language processing and extracting context and intent,
[1746] A means of referencing the user profile and updating the profile based on the user's preferences,
[1747] Means for obtaining relevant data from external sources,
[1748] Means for generating a response based on the user profile and acquired data,
[1749] A means of recognizing the user's emotions and adjusting the tone of the response,
[1750] A system including means for transmitting the generated response to a terminal.
[1751] (Claim 2)
[1752] A means for users to provide feedback on the generated answers,
[1753] A means for receiving the aforementioned feedback and updating the user profile,
[1754] The system according to claim 1, further comprising means for generating content that recommends movies and dramas tailored to the user based on their emotions.
[1755] (Claim 3)
[1756] The natural language processing system according to claim 1 includes means for performing tokenization and extracting keywords. [Explanation of symbols]
[1757] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots< / url:> < / url:> < / url:> < / url:>
Claims
1. A means of receiving text entered by a user through a device, A means for analyzing the aforementioned text using natural language processing and extracting context and intent, A means of referencing the user profile and updating the profile based on the user's preferences, Means for obtaining relevant data from external sources, Means for generating a response based on the user profile and acquired data, A system including means for transmitting the generated response to a terminal.
2. A means for users to provide feedback on the generated answers, The system according to claim 1, further comprising means for receiving the aforementioned feedback and updating the user profile.
3. The natural language processing system according to claim 1 includes means for performing tokenization and extracting keywords.
Citation Information
Patent Citations
Persona chatbot control method and system
JP2022180282A