Data analysis system and information processing apparatus
The data analysis system allows users to interact in natural language to obtain analysis results, addressing the need for specialized knowledge by converting inputs and outputs into machine-readable language, thereby facilitating effective sales promotion measurement and demand forecasting.
Patent Information
- Application Number
- JP2024093859
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-10
- Publication Date
- 2025-12-22
AI Technical Summary
Existing data analysis systems require specialized knowledge and experience to obtain appropriate analysis results, making it difficult for users without such expertise to effectively measure sales promotion effectiveness and forecast demand.
A data analysis system that includes a reception unit to receive natural language inputs, a processing unit to convert the inputs into machine-readable language, and a response unit to return analysis results in natural language, enabling users to interact with the system without specialized knowledge.
Enables users to obtain accurate analysis results through natural language interactions, eliminating the need for specialized knowledge and skills in data analysis.
Smart Images

Figure 2025185550000001_ABST
Abstract
Description
[Technical Field]
[0001] FIELD Embodiments of the present invention relate to a data analysis system and an information processing device. [Background technology]
[0002] Conventionally, the effectiveness of sales promotion activities has been measured, sales promotion instructions have been issued, and demand forecasts have been made through analysis using accumulated sales data, etc. Although tools for performing such analysis have existed, it is difficult to obtain appropriate analysis results unless the user of the tool has a certain level of specialized knowledge and experience. Therefore, analysis is difficult if there is no operator with the above-mentioned knowledge and experience.
[0003] However, in recent years, there has been a growing trend toward requiring immediacy in measuring the effectiveness of sales promotion activities, issuing sales promotion instructions, forecasting demand, etc. Therefore, there is a demand for systems and information processing devices that can obtain appropriate analysis results even without the above-mentioned knowledge or experience. Summary of the Invention [Problem to be solved by the invention]
[0004] The problem to be solved by the present invention is to enable appropriate data analysis without specialized knowledge or experience. [Means for solving the problem]
[0005] The data analysis system of the embodiment includes a reception unit that receives input in natural language from a terminal device used by a user of a request to perform analysis of data stored in a specified memory unit, a processing unit that converts the natural language related to the request received by the reception unit into machine-readable language, performs processing according to the request based on the converted machine-readable language, and obtains a response to the request, and a response unit that converts the response into natural language and returns it to the terminal device. [Brief explanation of the drawings]
[0006] [Figure 1]FIG. 1 is a diagram illustrating an example of a system configuration according to an embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of a server. [Figure 3] FIG. 3 is a block diagram illustrating an example of a hardware configuration of a user terminal. [Figure 4] FIG. 4 is a block diagram showing an example of functional units included in the system and information exchange between the functional units. [Figure 5] FIG. 5 is a flowchart showing an example of the flow of processing performed by the control unit of the server. [Figure 6] FIG. 6 is a diagram illustrating an example of a dialogue between the interface unit and a user. [Figure 7] FIG. 7 is a diagram for explaining an example of a dialogue between the interface unit and the user. [Figure 8] FIG. 8 is a diagram illustrating an example of a dialogue between the interface unit and the user. [Figure 9] FIG. 9 is a diagram for explaining an example of a dialogue between the interface unit and the user. [Figure 10] FIG. 10 is a diagram for explaining an example of a dialogue between the interface unit and the user. [Figure 11] FIG. 11 is a diagram for explaining an example of a dialogue between the interface unit and a user. DETAILED DESCRIPTION OF THE INVENTION
[0007] (First embodiment) An embodiment will be described with reference to the drawings. FIG. 1 is a diagram showing an example of a system configuration in this embodiment. The system of this embodiment includes a cloud service 1, a server 3, a user terminal 5, and networks 2 and 4. The network 2 connects the server 3 and the cloud service 1 so that they can communicate with each other. This allows the server 3 to use various services provided as the cloud service 1. Furthermore, the network 4 connects the server 3 and the user terminal 5 so that they can communicate with each other.
[0008] The networks 2 and 4 may be the Internet, a virtual private network (VPN), a local area network (LAN), a public communication network, a mobile communication network, or the like, either alone or in appropriate combination. As an example, the networks 2 and 4 may be a combination of the Internet and a mobile communication network. Note that the number of devices included in the system is not limited to the example shown in the figure.
[0009] The server 3 is an information processing device installed, for example, in the back yard of a store, and stores various information related to the store, such as information on products handled in the store and information on store sales. Note that the server 3 may also be installed, for example, in a headquarters that manages the chain to which the store belongs, and store information on multiple stores in the same chain. In addition, in this embodiment, the type of store is assumed to be a retail store, but this is not a limitation in implementation.
[0010] In this embodiment, the server 3 is shown as a single device, but in practice, the server 3 may be realized by the cooperation of multiple devices, or the server 3 may be a cloud server (or cloud system) realized by devices connected to a network.
[0011] The user terminal 5 is an information processing device intended for users such as store clerks, employees, and managers. A store clerk is a person (employee) who works at a store. An employee is a person who works at the head office. The user terminal 5 is, for example, a terminal device such as a PC (Personal Computer), tablet terminal, or smartphone installed in a store. The user terminal 5 may also be a POS terminal with a product registration function and a payment function, a product registration terminal with a product registration function, a payment terminal with a payment function, a printer or copier installed in a store, etc.
[0012] Here, "POS" is an abbreviation for "Point Of Sale" and means "point of sale information management." POS terminals, self-service POS terminals, product registration terminals, payment terminals, etc. are examples of sales data processing devices, and perform point of sale information management (i.e., product registration processing and payment processing for registered products, etc.). Note that a self-service POS terminal is a device that allows customers to perform registration processing and payment processing themselves. Other sales data processing devices include registration devices and accounting devices that make up semi-self-service POSs. A registration device is a device that performs registration processing through operation by a store clerk. An accounting device is a device that performs payment processing through operation by a customer.
[0013] 2 is a diagram illustrating an example of the hardware configuration of the server 3. The server 3 includes a CPU (Central Processing Unit) 31, a ROM (Read Only Memory) 32, a RAM (Random Access Memory) 33, a communication unit 34, a storage unit 39, a DWH (Data Warehouse) 40, and the like.
[0014] The communication unit 34 is a wired or wireless communication interface connectable to the networks 2 and 4. The communication unit 34 communicates with external devices such as the user terminal 5 and the cloud service 1 via the networks 2 and 4. The communication unit 34 exchanges information with a user who is logged in to the user terminal 5, for example, via an operation reception screen running on the user terminal 5.
[0015] The CPU 31 is an example of a processor, and controls the overall operation of the server 3. The ROM 32 stores various programs. The RAM 33 is a workspace where programs and various data are developed.
[0016] The CPU 31, ROM 32, and RAM 33 are connected via a bus or the like to form a computer-configured control unit 30. In the control unit 30, the CPU 31 operates in accordance with a program stored in the ROM 32 or the storage unit 39 and loaded into the RAM 33, thereby executing various processes.
[0017] The storage unit 39 and the DWH 40 have storage media such as a hard disk drive (HDD) or flash memory, and retain their stored contents even when power is cut off. The storage unit 39 stores a program 391 that can be executed by the CPU 31 and various setting information. For example, the program 391 includes a program for realizing the functional configuration described below.
[0018] The storage unit 39 and the DWH 40 are examples of predetermined storage units that accumulate product information and sales information. The storage unit 39 stores product master data 392, store information 393, user information 395, etc. The DWH 40 stores transaction information 41, flyer distribution information 42, weather information 43, trend information 44, etc. These data are examples, and the storage unit 39 and the DWH 40 may also store other data. Note that the data stored in the storage unit 39 and the DWH 40 may be acquired in advance from a user terminal 5 or other external device via the networks 2 and 4, or may be automatically acquired and updated from the Internet, etc.
[0019] Hereinafter, the product master 392 and the transaction information 41 may be referred to as “POS data.” In other words, the “POS data” that appears below is, for example, the product master 392 and the transaction information 41.
[0020] <Product Master> The product master 392 is a compilation of information about products handled by the store, and is stored in the storage unit 39 in the form of a data table, for example. The data table serving as the product master 392 includes the following items, for example. Product code ·Product name ·unit price Handling period Product image data Verification data
[0021] A product code is information (identification information) that allows a product to be uniquely identified, such as a JAN (Japanese Article Number) code. Other information (product name, unit price, matching data, etc.) is stored in association with the product code. The "product name" field stores the name of the product. The "unit price" field stores the price of one product.
[0022] The "Handling Period" field stores the start and end dates, or the day of the week or date. For products that are continuously handled without any special arrangement, this field can be left blank. Also, when it is decided that the product will no longer be handled, the handling end date can be set in the "Handling Period" field.
[0023] If a handling start date is specified for the handling period, the product indicated by the product code in that record will be available in the store from the date indicated by the handling start date. Similarly, if a handling end date is specified for the handling period, the product indicated by the product code in that record will be available in the store until the date indicated by the handling end date, and will not be available from the day after that. Furthermore, if days of the week or dates are specified for the handling period, the product indicated by the product code in that record will be available in the store only on the specified days of the week or dates.
[0024] By defining the "Handling Period" field, you can find information about products that have been handled in the past and products that will be handled in the future. Also, for example, by creating records with the same product code but different "Handling Periods" and unit prices, you can vary the unit price of the product depending on the period.
[0025] The product image data is data for displaying an image showing the appearance of the product, etc. This data is also used for publishing in flyers.
[0026] The "matching data" field stores reference feature quantities. Each device that processes sales data compares the feature quantities of the product image contained in an image (captured image) captured and output by a camera or the like with the matching data, and obtains a product code associated with the matching matching data, thereby recognizing the product. The above-mentioned match determination is made, for example, by calculating the similarity between the feature quantities of the captured image and the matching data, comparing the calculated similarity with a threshold, and determining that the matching data matches if the similarity is equal to or greater than the threshold. Note that the product code may also be obtained by reading (scanning or decoding) a code symbol such as a barcode or two-dimensional code attached to the product.
[0027] <User information> User information 395 is information about store clerks and employees who use the system from user terminal 5, and is stored in storage unit 39 in the form of a data table, for example. Items included in the data table as user information 395 are, for example, as follows. User ID ·full name ·attribute ·Analysis requests
[0028] The user ID is the identification information of the store clerk or employee who is the user of the system. The user ID is, for example, a unique number assigned to each user, and is not duplicated within the system. The "Name" field stores the user's name.
[0029] The "Attributes" field stores the user's attributes. Types of user attributes include job titles such as "store manager," "employee without a title," "part-time worker," and "area manager." In this example, everyone except the area manager is a store clerk (employee of the store). The area manager is a job title indicating the person who oversees the area that includes the store. Other attributes may include the type of sales floor the user is in charge of or the type of department the user belongs to.
[0030] The "requests regarding analysis" item stores instructions that were input during the analysis and that the user desired to continue applying, but that are not shared with users of the same attributes.
[0031] <Store Information> The store information 393 is information about the store, and is stored in the form of a data table in the storage unit 39. The data table as the store information 393 includes the following items, for example. Store ID ·location ·contact address Number of customers Analysis level by attribute
[0032] The store ID is identification information for the store. The store ID is, for example, a unique number assigned to each store, and is not duplicated among stores of the same chain managed by the server 3. The "Location" field stores, for example, an address, prefecture name, city / town / village name, or information indicating the name of each area divided according to unique criteria. The "Contact Information" field stores, for example, a telephone number, email address, etc.
[0033] The "number of visitors" field stores the number of customers who entered the store. The number of visitors can be measured, for example, from video (images) output by a surveillance camera installed in the store. The number of visitors is also tallied, for example, at intervals of a predetermined time, and is stored in association with the date and time of each interval.
[0034] The "Analysis level by attribute" field stores the analysis level (high or low) in association with the type of user attribute. The analysis level is information that indicates the degree of analysis set for an attribute. For example, if the analysis level is high, the range of the analysis target is set wide, or a deep and detailed analysis is performed. On the other hand, if the analysis level is low, the range of the analysis target is set narrow, or a simple analysis is performed.
[0035] For example, if the user's attribute is area manager, the analysis level is set high, which broadens the scope of the analysis and analyzes information for all stores in the area managed by the user. If the user is a store manager, the analysis level is set to standard, which analyzes information for the store where the user works. If the user is an unassigned employee or a part-time worker, the analysis level is set low, which enables simple analysis to be performed using information for the sales floor the user is responsible for.
[0036] <Transaction information> The transaction information 41 is information about products purchased by customers, and is received from a sales data processing device in the store and stored (registered). Note that the transaction information 41 may include not only information about the store itself, but also transaction information received from sales data processing devices of other stores.
[0037] The transaction information 41 is compiled in the form of, for example, a data table. The items included in the transaction information 41 are, for example, as follows: Store ID Device ID Transaction ID Date and Time Member ID ·Product information Transaction amount
[0038] The "Store ID" field stores the store ID of the store where the transaction in the record took place. The "Terminal ID" field stores the terminal ID of the sales data processing device that performed the transaction in the record. The terminal ID is identification information for the sales data processing device, and is assigned so as not to be duplicated at least within the same store.
[0039] The transaction ID is identification information for the transaction, and is automatically assigned (numbered) when, for example, the first product registration process for the transaction is performed. The "Date and Time" field stores the date and time when the transaction for the record was performed.
[0040] The "Member ID" field stores the member ID of the customer who performed the transaction in the record if the customer provided one. The member ID is identification information for the customer who is a member, and is, for example, a unique number assigned to each member.
[0041] The item "transaction amount" stores the total price (total amount) of all the products purchased in the transaction of the record.
[0042] Here, for a combination of a store ID, a terminal ID, and a transaction ID, there is one transaction amount, but the number of product information is not limited to one, and multiple product information may be associated. Product information includes, for example, the following items: <Product information> Product code ·Product name ·quantity ·price
[0043] The product code is as described above and will be omitted here. The "quantity" field stores the quantity (number, weight, volume, etc.) of the product indicated by the product code purchased in the transaction for that record. The "price" field stores the value obtained by multiplying the unit price (or selling price) by the quantity.
[0044] <Flyer distribution information> The flyer distribution information 42 is a compilation of information about advertisements (flyers) that have been distributed in the past, and is stored in the form of a data table in the DWH 40. Items included in the data table as the flyer distribution information 42 include, for example, the following information: Flyer image -Information about listed products (product names, prices, etc.) ·format Number of distributions Distribution Method Distribution date and time ·date of expiry -GIS (Geographic Information System) information for the distribution area
[0045] The flyers mentioned above are intended to be printed on paper and distributed. In addition to flyers that are intended to be printed on paper and distributed, there are also electronic advertisements such as digital signage. The flyer distribution information 42 may also include information related to electronic advertisements.
[0046] The flyer image is image data of the entire flyer. The product information displayed includes, for example, text indicating the product name, a numerical value indicating the price (unit price or set price), a product code, product image data, etc.
[0047] The format is information that indicates, for example, the size and layout of the elements contained in the flyer (store and product information, image data, promotional text, etc.). The format is also sometimes called the design or template. The promotional text is the wording shown to customers for the purpose of promoting sales.
[0048] Of the flyer distribution information 42, the flyer image, featured product information, and format may be compiled into, for example, "AI Data (registered trademark)." The AI data is a data file with the extension ".ai" created with "Illustrator," an application software from Adobe.
[0049] The number of distributions is the number of flyers. Distribution methods include, for example, newspaper inserts, posting (by mail), as well as web posting and distribution via SNS (Social Networking Service). The distribution date and time is the date and time when the flyer was distributed, for example, "February 1st morning edition" for newspaper inserts, or "February 1st 12:00-18:00" for posting. The expiration date is the last day that the price listed on the flyer is applicable.
[0050] The GIS information for a distribution area is geographic information about an area that includes at least the area surrounding the store targeted by the advertisement. The GIS information includes, for example, information such as the population, gender, age, number of households, household composition, type of residence, and annual income of residents for each area. The GIS information may also include, for example, the number of businesses and business details for each area. The area units for GIS information are, for example, city, ward, town, village, block, and address, but are not limited thereto. Note that the above items are merely examples and do not limit the content of the GIS information.
[0051] <Weather Information> The weather information 43 is data about past and future weather in the area where the store to which the user who is using the user terminal 5 belongs is located. The weather information 43 includes information indicating, for example, temperature, humidity, weather, probability of precipitation, etc.
[0052] The control unit 30 appropriately updates the weather information 43 using information provided by the Japan Meteorological Agency, etc. For the sake of convenience, the system of this embodiment uses the weather information 43 stored in the DWH 40, but in practice, the system may be configured to acquire information provided by the Japan Meteorological Agency, etc., each time it is used.
[0053] <Trend information> Trend information 44 is information about current fads and topics, such as words that are frequently searched on the Internet, or information about events or products that are frequently mentioned on social media.
[0054] The control unit 30 appropriately updates the trend information 44 based on information provided by the SNS, etc. For the sake of convenience, the system of this embodiment uses the trend information 44 stored in the DWH 40, but in practice, the system may be configured to acquire information provided by the SNS, etc., each time it is used.
[0055] The various data stored in the storage unit 39 of the server 3 and the DWH 40 shown in FIG. 2 are merely examples, and are not limited to these.
[0056] 3 is a block diagram showing an example of the hardware configuration of the user terminal 5. The user terminal 5 includes a CPU 51, a ROM 52, a RAM 53, a communication unit 54, a display unit 55, an operation unit 56, a storage unit 59, etc. The CPU 51, the ROM 52, the RAM 53, the control unit 50, and the storage unit 59 correspond to the above-mentioned CPU 31, the ROM 32, the RAM 33, the control unit 30, and the storage unit 39, and therefore detailed description thereof will be omitted.
[0057] The communication unit 54 is a communication interface that connects the control unit 50 and an external device (for example, the server 3) via the network 4 so that they can communicate with each other.
[0058] The display unit 55 and the operation unit 56 realize a GUI (Graphical User Interface). The GUI is an example of an operation reception screen that receives user operations. The display unit 55 has a display device such as an LCD, and displays various information under the control of the CPU 51. The operation unit 56 has input devices such as a touch panel overlaid on the surface of the display unit 55, a keyboard, and a pointing device, and outputs operation details input via the input devices to the CPU 51.
[0059] The storage unit 59 stores a program 591 that can be executed by the CPU 51. When the CPU 51 executes the program 591, the control unit 50 realizes various functional units.
[0060] For example, the control unit 50 executes the program 591 to cause the web browser to function. The user terminal 5 of this embodiment provides the user with a GUI for interacting with the interface unit 301 (FIG. 4, described below) of the server 3 via the web browser displayed on the display unit 55. In other words, the interface unit 301 of the server 3 provides a web page that can be displayed by the web browser of the user terminal 5, and includes the GUI on the web page. In practice, the user terminal 5 may be configured to interact with the interface unit 301 using a GUI provided by application software dedicated to this system. When using the system via the user terminal 5, the user logs in to the system by indicating their user ID.
[0061] FIG. 4 is a block diagram showing an example of functional units included in the system of this embodiment and the exchange of information between the functional units. The server 3 realizes various functional units such as an interface unit 301 and a processing unit 305 by the control unit 30 operating in accordance with a program 391 stored in a storage unit 39. More specifically, the program 391 executed by the server 3 has a modular configuration including the above-mentioned units (the interface unit 301 and the processing unit 305). The CPU (processor) 31 reads the program 391 from a storage medium such as the storage unit 39 and loads the above-mentioned units into a main storage device such as the RAM 33. As a result, various functional units such as the interface unit 301 and the processing unit 305 are generated in the main storage device. Note that these functional units are merely examples, and the server 3 may also have other functions.
[0062] The program of this embodiment may be stored in the storage unit 39 in advance, or may be stored on another computer connected to a network such as the Internet and provided by being downloaded to the server 3 via the network. The program executed by the server 3 may be provided or distributed via a network such as the Internet. The program executed by the server 3 may be provided by being recorded on a computer-readable recording medium as a file in an installable or executable format. Some or all of the functional configuration of the server 3 may be a hardware configuration realized by a dedicated circuit or the like mounted on the server 3.
[0063] First, in this embodiment, the first LLM 11, the second LLM 12, and the analysis program 15 are provided by the cloud service 1. However, this is not the only practical example, and the server 3 may be provided with the LLM and analysis tools.
[0064] The analysis program 15 is an existing program that performs, for example, basket analysis, aggregation, analysis of specific products, optimal price estimation, demand forecasting, etc., but an independently developed program may also be used for implementation.
[0065] LLM (Large Language Models) is a type of generative AI (Artificial Intelligence) specialized for natural language processing. The first LLM 11 and the second LLM 12 can be existing general-purpose LLMs or proprietary, dedicated LLMs.
[0066] The first LLM 11 receives a natural language input (3) from the interface unit 301, generates (4) machine-readable text corresponding to the input natural language, and outputs (5) this. In this way, the first LLM 11 converts a user request (question or instruction) that the interface unit 301 receives in a text format called a prompt into machine-readable text.
[0067] The second LLM 12 receives input (9) of machine-readable text from the interface unit 301, generates (10) natural language corresponding to the input machine-readable text, and outputs (11) this. In this way, the second LLM 12 converts the analysis processing results input from the interface unit 301 into natural language that can be understood by the user.
[0068] Here, the interface unit 301 is an example of a receiving unit and a responding unit. The interface unit 301 as a receiving unit receives an input of a request for executing an analysis of data accumulated in the DWH 40 in natural language from the user terminal 5. The interface unit 301 as a responding unit converts the response output by the processing unit 305 into natural language using LLM and returns it to the user terminal 5. The processing unit 305 converts the natural language related to the request received by the interface unit 301 into machine-readable language using LLM, performs processing according to the request based on the converted machine-readable language, and obtains a response to the request.
[0069] Furthermore, the interface unit 301 as a reception unit passes the analysis level associated with the attributes of the logged-in user together with the request to the processing unit 305. In this case, the processing unit 305 performs processing in which at least either the scope or depth of the analysis differs depending on the analysis level.
[0070] Furthermore, the interface unit 301, as a receiving unit, receives input of a request for executing an analysis of data stored in the DWH 40 in natural language from the user terminal 5. The processing unit 305 converts the natural language received by the interface unit 301 into machine-readable language using LLM, performs processing based on the converted machine-readable language, and obtains a response to the request. The interface unit 301, as a responding unit, then converts the response into natural language using LLM and returns it to the user terminal 5 via the communication units 34 and 54.
[0071] Returning to FIG. 4 , the interface unit 301 provides a GUI to the user terminal 5. The GUI is provided in the form of a web page, for example. The interface unit 301 interacts with the user of the user terminal 5 via the GUI displayed by the user terminal 5. The interface unit 301 outputs (3) natural language input (1) from the user terminal 5 to the first LLM 11. At that time, the interface unit 301 obtains (2) and attaches attributes associated with the user ID of the user currently logged in to the user terminal 5 and the analysis level associated with the attributes from the user information 395 and store information 393 in the storage unit 39.
[0072] The processing unit 305 receives machine-readable input (5) from the first LLM 11, obtains (6) an appropriate analysis program 15 as needed, uses it, refers to the DWH 40 (7) to perform analysis, and outputs the results (8).
[0073] The interface unit 301 outputs (9) the analysis results input (8) from the processing unit 305 to the second LLM 12. The interface unit 301 also outputs (12) the natural language input (11) from the second LLM 12 to the user terminal 5.
[0074] 5 is a flowchart showing an example of the flow of processing performed by the control unit 30 of the server 3. When explaining each step, if the processing corresponds to the numbers (1) to (12) shown in FIG. 4, for convenience, one of the numbers (1) to (12) may be added to the explanation.
[0075] First, the interface unit 301 of the server 3 waits for an instruction to be received from the user terminal 5 (No in step S1). The instruction from the user terminal 5 is input in a natural language (1). The input (1) is input as a prompt in text format, for example.
[0076] When the interface unit 301 receives an instruction from the user terminal 5 (Yes in step S1), it refers to the user information 395 and store information 393 in the memory unit 39, and acquires (2) the attributes associated with the user ID currently logged in to the system and the analysis level associated with the attributes (step S2).
[0077] The control unit 30 converts the user's instruction into machine-readable text (step S3) using the first LLM 11. In detail, the interface unit 301 outputs (3) the user's instruction together with information indicating an analysis level according to the user's attributes, and the first LLM 11 generates (4) and outputs (5) machine-readable text corresponding to the instruction.
[0078] The first LLM 11 converts the user's instructions taking into account the analysis level, meaning that the converted machine-readable text may differ depending on the analysis level associated with the user's attributes, and in that case, differences may appear in the content of the answer.
[0079] Furthermore, the first LLM 11 may grasp (4.5) the data structure of various information stored in the DWH 40 in preparation for generating machine-readable text such as SQL statements. The data structure is, for example, the items contained in a data table, meaning that the first LLM 11 does not need to grasp the contents of the records, i.e., individual pieces of information.
[0080] Furthermore, it is desirable that the first LLM 11 be able to refer to the analysis program 15 and understand the analysis tools (e.g., basket analysis, aggregation, analysis of specific products, optimal price estimation, demand forecasting, etc.) that function by executing the analysis program 15. If the first LLM 11 understands the analysis tools, it can improve the accuracy of generating machine-readable text. In other words, if the first LLM 11 understands the analysis tools, it can generate machine-readable text that assumes the use of analysis tools that meet the user's requirements.
[0081] The output (5) of the first LLM 11 is input to the processing unit 305. The processing unit 305, which has received the machine-readable text (5), reads (6) (step S4) an analysis program 15 appropriate for the input, acquires (7) (step S5) data from the DWH 40, and performs analysis (step S6). In the analysis of step S6, the analysis program 15 read in step S4 is used to analyze the data acquired in step S5. The processing unit 305 outputs (8) the analysis results to the interface unit 301.
[0082] Next, the control unit 30 converts the analysis results into natural language using the second LLM 12 (step S7). In detail, the interface unit 301 outputs (9) the analysis results to the second LLM 12, and the second LLM 12 receives the input (9) of the analysis results, generates (10) natural language corresponding to the input analysis results, and outputs (11) this.
[0083] When the interface unit 301 receives input (11) in natural language from the second LLM 12, it outputs (12) this to the user terminal 5 as a response to the instruction received in step S1 (step S8). This output (12) is output as, for example, text data or image data.
[0084] After outputting the answer, if an additional instruction is received from the user terminal 5 (Yes in step S9), the interface unit 301 returns the process to step S3. If an additional instruction is not received from the user terminal 5 in step S9 (No in step S9), the processing unit 305 ends this process.
[0085] 6 to 11 are diagrams illustrating examples of interactions between the user and interface unit 301. The interactions illustrated in FIGS.
[0086] <Sales Promotion Instructions> The questioner in the example of Fig. 6 is a user who wishes to issue a sales promotion instruction. First, interface unit 301 receives the user's question, "Among the flyers distributed last month, which one had the greatest sales effect?" via prompt 611. Using this as input (1), control unit 30 performs processing from Yes in step S1 to step S8. As a result, interface unit 301 outputs (12) an answer in text 711 in natural language, such as "The flyer below was the most effective," followed by information such as the distribution area, distribution date, number of copies distributed, distribution method, and expiration date.
[0087] In the dialogue up to this point, the first LLM 11 understands the period (temporal range) to be analyzed from the phrase, for example, "last month." Specifically, if it is currently April, the analysis target will be records of flyer distribution information 42 with distribution dates and times in March.
[0088] Furthermore, in the dialogue up to this point, the first LLM 11 generates machine-readable text, assuming that the transaction information 41 will be aggregated (using the analysis tool "aggregation") from the phrase "high sales effect," for example. At this time, the first LLM 11 performs aggregation for each target flyer, and the aggregation period is from the distribution date of the flyer to its expiration date.
[0089] Returning to FIG. 6, when the user confirms the answer output (12) and further inputs (1) the question "Please tell me which vegetable had the most advertising effect" using prompt 612, control unit 30 returns to step S3 from Yes in step S9, performs the processing of steps S3 to S8, and outputs (12) the next answer using text 712: "This is a set of three Hokkaido carrots (2L) that were featured in the flyer. The regular price is 97 yen (excluding tax), but on January 3rd we sold them for 80 yen (excluding tax)."
[0090] After checking the answer output (12), the user further inputs (1) the question "I would like a more detailed analysis of the sales volume of that product" using prompt 613. The control unit 30 returns to step S3 from Yes in step S9, performs the processing of steps S3 to S8, and outputs (12) the answer in natural language using text 713, such as "We will analyze the sales volume of a set of three Hokkaido carrots (2L) on January 3rd," along with a list 813 that associates factors with quantities.
[0091] After checking the answer output (12), the user further inputs (1) a question using prompt 614, such as "Based on the above, please come up with ideas for next week's vegetable sales promotion." The control unit 30 then performs steps S3 to S8 and outputs (12) the next answer using text 714, "A set of three Hokkaido carrots (2L)..."
[0092] In this dialogue, the first LLM 11 generates machine-readable text from the phrase, for example, "next week," by referring to the unit prices of products available next week stored in the product master 392 and next week's weather information 43, and assuming the use of analytical tools such as "demand forecast" and "optimal price estimation."
[0093] As described above, according to this embodiment, even if a user does not have the specialized knowledge or skills required to analyze sales data, they can obtain analysis results based on information about distributed flyers by interacting with the system in natural language. Furthermore, even if a user is unable to input enough information to obtain a sufficient answer in one go, they can obtain the desired analysis results by repeatedly interacting with the system in natural language. Conventionally, if a user extracts data from a DWH 40 and performs analysis themselves using SQL statements or the like without using an LLM, the user must have the knowledge and skills to construct SQL statements and perform analysis. However, this embodiment eliminates this need.
[0094] Further examples are described below.
[0095] <Advertising effectiveness measurement 1> The questioner in the example of Fig. 7 is a user who wants to measure advertising effectiveness. First, when interface unit 301 receives a user request via prompt 621, "I would like to analyze the distribution effectiveness of the flyers distributed last Friday," this is treated as input (1) and control unit 30 performs the processes from "Yes" in step S1 to step S8. As a result, interface unit 301 first outputs (12) an answer via text 721, along with information such as the distribution area, distribution date, number of copies distributed, distribution method, and expiration date of the flyer.
[0096] In the above processing, the control unit 30 uses the first LLM 11 to obtain the date of "last Friday," obtains an SQL statement or the like for obtaining information on records that have that date as the distribution date and time from the flyer distribution information 42, and inputs this to the processing unit 305.
[0097] After checking the answer output (12), the user further inputs (1) a request using prompt 622, saying, "I would like an analysis of the products whose sales have increased." The control unit 30 returns to step S3 from Yes in step S9, performs the processing of steps S3 to S8, and outputs (12) the next answer using text 722, saying, "Compared to the sales on the same day one week ago, sales of sushi, dried foods, and hardware have increased significantly."
[0098] After checking the answer output (12), the user further inputs (1) a request using prompt 623, saying, "I would like a more detailed analysis of the products featured in the flyer that have increased in sales," and control unit 30 returns to step S3 from Yes in step S9 and performs the processes of steps S3 to S8. As a result, control unit 30 outputs (12) an answer in text 723 in natural language, such as "These are the top three products featured in the flyer that have increased in sales significantly compared to sales on the same day one week ago," followed by a percentage value showing the sales amount of the products compared to the previous week.
[0099] Here, when the questioner inputs (1) an instruction via prompt 624 saying, "From now on, I would like you to analyze only the products listed in the flyers," the control unit 30 returns to step S3 from Yes in step S9, performs the processes of steps S3 to S8, and outputs (12) a natural language response such as "Understood" via text 724. In the above process, the control unit 30 stores the instruction in the "analysis level" item of store information 393 in association with the attributes of the logged-in user, or stores the instruction in the "request for analysis" item of user information 395.
[0100] <Advertising effectiveness measurement 2> The questioner in the example of Fig. 8 is a user who wants to measure advertising effectiveness. First, when the interface unit 301 receives a user request via prompt 631, such as "I would like to analyze the effectiveness of the flyer that was advertised yesterday," the control unit 30 performs processing from Yes in step S1 to step S8, using this as input (1). As a result, the interface unit 301 outputs (12) an answer in natural language, such as text 731, "Among the products advertised as advertised products yesterday (February 13th), the products with the highest advertising effectiveness are listed below," along with a list 831 that associates product names, product codes, and the percentage increase in sales units due to advertising.
[0101] After checking the answer output (12), the user further inputs (1) a request using prompt 632 to "narrow down to products with small advertising spaces and give me five products with high advertising effectiveness." The control unit 30 returns to step S3 from Yes in step S9, performs the processing of steps S3 to S8, and outputs (12) an answer in natural language using text 732 such as "Among products with small advertising spaces, the top five products with high advertising effectiveness are listed below," along with a list 832 that associates product names, product codes, and the percentage increase in sales points due to advertising.
[0102] In the above process, the control unit 30 uses the first LLM 11 to obtain an SQL statement or the like for obtaining information that takes into account the "small advertising space" from the flyer distribution information 42, and inputs this to the processing unit 305. The size of the advertising space can be determined using, for example, information stored in the flyer image or format of the flyer distribution information 42.
[0103] After checking the answer output (12), the user further inputs (1) a request for an analysis of the reason for the sales of the product by citing the product name using prompt 633. Then, control unit 30 returns to step S3 from "Yes" in step S9 and performs the processes of steps S3 to S8. As a result, control unit 30 outputs (12) an answer such as "No strong correlation was found between the products being sold at the same time. The number of searches on the Internet has increased" using text 733.
[0104] In the above process, the control unit 30 uses the first LLM 11 to collect information about the product from the trend information 44 and inputs it to the processing unit 305.
[0105] <Advertising effectiveness measurement 3> The questioner in the example of Fig. 9 is a user who wants to measure advertising effectiveness. First, when interface unit 301 receives a user request via prompt 641, such as "I would like to analyze the effectiveness of posting a flyer that was advertised yesterday," control unit 30 uses this as input (1) and performs the processes from Yes in step S1 to step S8. As a result, control unit 30 outputs (12) an answer in text 741 that includes information such as the distribution area, distribution date, number of copies distributed, distribution method, and expiration date of the flyer.
[0106] Here, the expression "distributed on ... date" in prompt 621 in FIG. 7 above has changed to "the date of announcement was ... date" in prompt 641 in FIG. 9. Also, "distribution effect" in prompt 621 in FIG. 7 has changed to "publication effect" in prompt 641 in FIG. 9. Nevertheless, by using the first LLM 11 in the above processing, the control unit 30 is able to obtain similar answers in text 721 and text 741. In this way, the system of this embodiment is able to absorb variations in the questioner's expression, convert them into appropriate instructions, and input them as input (1), thereby outputting an appropriate answer (12).
[0107] 9, if the user confirms the answer output (12) and then inputs (1) a request such as "I would like to know the sales trends of tea products" using prompt 642, control unit 30 returns to step S3 from "Yes" in step S9, performs the processes of steps S3 to S8, and outputs an answer (12). In this answer, control unit 30 adds a list 843 that associates product names, product codes, unit prices, and sales quantities, following natural language text 742, 743 such as "We will report on the number of purchases of tea and black tea during the period the flyer was published" and "We will display the top five items in terms of sales."
[0108] In the above processing, the control unit 30 uses the first LLM 11 to obtain SQL statements and the like for obtaining information that takes into account “tea-based” from the product master 392, transaction information 41, etc., and inputs these to the processing unit 305.
[0109] <Sales performance analysis> The questioner in the example of Fig. 10 is a user who wants to analyze sales performance. First, interface unit 301 receives a user request via prompt 651, "Please create a simple summary of last weekend's sales performance." This is treated as input (1), and control unit 30 performs the processes from "Yes" in step S1 to step S8. As a result, interface unit 301 outputs as an answer (12) a natural language response such as "Below is a summary of last weekend's sales performance" in text 751, followed by a list 851 that associates the weather, the number of times items passed through the register, the payment amount, and advertisements for each date.
[0110] The number of transactions passed through the register is replaced with the number of transactions on that date, i.e., the number of transaction IDs issued in the transaction information 41. The payment amount is the total transaction amount on that date. The advertisement is an advertisement targeted at that date. Note that this example shows a method for distributing advertisements.
[0111] When the user confirms the answer output (12) and further inputs a request (1) using prompt 652 saying, "I would like a comparison with the same period last week," the control unit 30 returns to step S3 from Yes in step S9 and performs the processes of steps S3 to S8, outputting (12) as an answer in list 852 a summary of the weekend before last, followed by a natural language response such as "Below is a comparison with last week" in text 752.
[0112] After checking the answer output (12), the user further inputs (1) an evaluation or request such as "It's difficult to understand" or "I'd like a table comparing the two performance figures" using prompts 653 and 654. The control unit 30 returns to step S3 from "Yes" in step S9, performs the processing of steps S3 to S8, and outputs (12) the answer together with a list 854 in a modified display format, following the natural language responses in text 753 and 754 such as "I understand" or "Below is a comparison with the previous week."
[0113] When the user confirms the answer output (12) and further inputs a request (1) to "output it as a graph" using prompt 655, control unit 30 returns to step S3 from Yes in step S9, performs the processing of steps S3 to S8, and outputs (12) a graph 855 based on list 854 as an answer, followed by natural language such as "I created it" in text 755.
[0114] <Adding information during a conversation based on previous interactions> In this embodiment, when generating a response to a question (or instruction or request) from a questioner, the control unit 30 uses LLM or the like to take over the content of previous exchanges and add supplementary information to the question, thereby improving the accuracy of the response. Examples 1 to 3 are shown below.
[0115] <Case 1> For example, in the example of Figure 10, the meaning of "the same period" in the second statement by the questioner must be determined taking into account "last weekend" in the first statement by the questioner. Furthermore, the previous exchange must also be continued to determine which performance figures should be used in the "table comparing two performance figures" in the questioner's fourth statement and to compare figures for the same day of the week. According to this embodiment, an answer that matches the questioner's purpose is output.
[0116] <Case 2> Another example will be described. For example, the asker inputs a question such as, "Please tell me the number of coupons issued for Beer A and the number of coupons used." Here, "Beer A" is the product name. In response to this, the control unit 30 outputs a response such as, "The number of coupons issued for Beer A was 1,000, and the number used was 300." In response to this, the asker further asks a question without specifying the product name, such as, "Please tell me the day of the week when the most coupons were used." In this case, the control unit 30 performs an analysis by supplementing the product name "Beer A" based on the information accumulated from the previous flow, and outputs a response such as, "The day of the week when the most Beer A coupons were used was Saturday."
[0117] <Case 3> Another example will be described. For example, a questioner makes a request for analysis, attaching details that they would like to be considered. The request may be, for example, "Yesterday, a sports day was held at a nearby elementary school. Taking that into consideration, please tell me about three products whose sales amount increased just the day before yesterday." In response, the control unit 30 outputs as an answer the natural language response "Because a sports day was held at a nearby elementary school, the sales amount of the following products increased," followed by product information on chicken, sausages, and oral rehydration solution.
[0118] In this example, the control unit 30 obtains an answer by analyzing the transaction information 41 for the product determined as the target based on the information "elementary school sports day" given in advance by using the LLM, etc. The product to be analyzed here is a product that is likely to sell in relation to the sports day, for example, a product that is well known as an ingredient to put in a lunch box, and such information can be obtained by an internet search, etc.
[0119] <Use of external information and changes to datasets> In this embodiment, when generating a response to a question (or instruction or request) from a questioner, the control unit 30 uses external information or changes the data set used for analysis by using LLM, etc., to improve the accuracy of the response. Examples 4 to 6 are shown below.
[0120] <Case 4> For example, the questioner may request, "Please give me the expected number of bottles of beer B sold next weekend." Here, "beer B" is the product name. In response, the control unit 30 may reply, "There is an event at a nearby park next week, so sales are expected to be higher than usual. Therefore, we estimate it to be 210 bottles."
[0121] In performing the analysis to obtain this answer, the control unit 30 determines the period to be analyzed from the phrase "next weekend" by using LLM, determines the product to be analyzed from the phrase "Beer B", and obtains information about events being held within a specified range around the store's location by searching, etc.
[0122] <Case 5> An example of an analysis of a specific product will be described. For example, the questioner asks, "We've received many inquiries from customers about Tea C. What is the reason?" Here, "Tea C" is the product name. In response, the control unit 30 responds, "We analyzed the POS data, and there is no clear change in sales volume compared to similar products." If the questioner then asks, "Are there any other factors?", the control unit 30 outputs a suggestion to the questioner, saying, "May we conduct an analysis without using the POS data?"
[0123] When the asker inputs an acceptance of this suggestion, the control unit 30 performs an analysis using a different data set (e.g., open information) from the previous one, and responds, "The commercial that was recently aired is becoming a hot topic." In the analysis to obtain this response, the control unit 30 performs, for example, an internet search using the product name that was previously specified.
[0124] <Case 6> For example, the questioner may request, "Please look back on the sales figures for the three days of last weekend." In response, the control unit 30 may reply, "After analyzing the POS data, we found that sales increased by 3% from the week before last, and 10% compared to the same period last year." If the questioner then asks, "Is this the same for other stores?", the control unit 30 may suggest a scope of analysis based on the phrase "other stores," asking, "May we analyze five surrounding stores?" If the questioner accepts this suggestion, the control unit 30 may output a response such as, "Sales for the other five stores have also increased by 2 to 5% from the week before last, and by 4 to 11% compared to the same period last year."
[0125] <Future purchase predictions> The questioner in the example of FIG. 11 is a user who wants to predict future purchases. First, the interface unit 301 receives a user request via prompt 661, such as "I would like a forecast for next weekend's sales." Using this as input (1), the control unit 30 performs processing from "Yes" in step S1 to step S8. As a result, the control unit 30 outputs a natural language response (12) such as "The forecast was made using POS data, weather, GIS data, and an MD calendar from the past three months and the same period last year." In the response, the control unit 30 provides a list 861 associating the date, weather, maximum temperature, number of purchases made through the register, and payment amount, along with a supplemental explanation (762) such as "Products that will see a significant increase in sales are chocolate, curry roux, ice cream, and beverages."
[0126] Based on the dialogue up to this point, the first LLM11 generates machine-readable text for use with the analytical tool "demand forecasting," for example, from phrases such as "next weekend," "sales," and "forecast."
[0127] After checking the answer output (12), the user further inputs (1) the question "What are the factors that will affect the sales forecast?" using prompt 662. The control unit 30 returns to step S3 from Yes in step S9, performs the processing of steps S3 to S8, and outputs (12) a question in natural language using text 763, such as "It says that it will affect the forecast. What kind of answer should I give?" to confirm the user's intention.
[0128] When the user confirms the question output (12) and inputs additional information in natural language (1) using prompt 663, such as "Please give two items that may decrease sales," the control unit 30 returns to step S3 from Yes in step S9, performs the processes of steps S3 to S8, and outputs (12) an answer in text 764. In the answer, the control unit 30 lists two items, "worsening weather" and "decreased purchasing motivation due to price increases," and provides supplementary explanations in natural language for each.
[0129] As described above, according to the above embodiment, even if a user does not have the specialized knowledge or skills required to analyze sales data, they can obtain analysis results based on information about distributed flyers by interacting with the system in natural language. Furthermore, even if a user is unable to input enough information to obtain a sufficient answer in one go, they can obtain the desired analysis results by repeatedly interacting with the system in natural language. Conventionally, if a user extracts data from a DWH 40 and performs analysis using SQL statements or the like without using an LLM, the user must have the knowledge and skills to construct SQL statements and perform analysis. However, this embodiment eliminates this need.
[0130] <Other examples of how to hold information> In the above embodiment, the information on "analysis level for each attribute" that associates an analysis level with an attribute (such as store manager) is one item in the store information 393, but this is not limiting in practice, and it may be one item in the user information 395, for example. In this case, in step S2 of Fig. 4, the interface unit 301 (control unit 30) refers to the user information 395 in the storage unit 39, and acquires the attribute associated with the user ID currently logged in to the system and the analysis level associated with that attribute.
[0131] Furthermore, in practice, the information on the "analysis level for each attribute" may be compiled separately from the store information 393 and the user information 395. More specifically, the information on the "analysis level for each attribute", the store information 393, and the user information 395 may be in different data tables. In this case, in step S2 of FIG. 4, the interface unit 301 (control unit 30) refers to the user information 395 in the storage unit 39 to acquire the attribute associated with the user ID currently logged in to the system, and further refers to the information on the "analysis level for each attribute" in a separate table to acquire the analysis level associated with the attribute of the currently logged-in user.
[0132] The programs executed by each device in the above-described embodiments are provided in advance in a ROM, etc. The programs executed by each device in the above-described embodiments may be provided by being recorded in an installable or executable file format on a computer-readable recording medium such as a CD-ROM, a flexible disk (FD), a CD-R, or a digital versatile disk (DVD).
[0133] Furthermore, the programs executed by each device in the above-described embodiments may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Also, the programs executed by each device in the above-described embodiments may be provided or distributed via a network such as the Internet.
[0134] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]
[0135] 1...Cloud services, 2...Network, 3...Server, 4...Network, 5...User terminal, 11...1st LLM, 12...2nd LLM, 15...Analysis program, 30...control unit, 301...interface unit, 305...processing unit, 31...CPU, 32...ROM, 33...RAM, 34...Communication section, 39...Memory unit, 391...Program, 392...Product master, 393...Store information, 395...User information, 40...DWH, 41...Transaction information, 42...Flyer distribution information, 43...Weather information, 44...Trend information, 50...control unit, 51...CPU, 52...ROM, 53...RAM, 54...Communication section, 55...display section, 56...operation section, 59...memory unit, 591...program. [Prior art documents] [Patent documents]
[0136] [Patent Document 1] Japanese Patent Application Publication No. 2023-157901
Claims
1. a receiving unit that receives, in natural language, an input of a request for executing an analysis of data stored in a predetermined storage unit from a terminal device used by a user; a processing unit that converts the natural language related to the request accepted by the accepting unit into machine-readable language, performs processing according to the request based on the converted machine-readable language, and obtains a response to the request; a response unit that converts the response into a natural language and returns the natural language to the terminal device; A data analysis system comprising:
2. The storage unit stores product information and sales information. The data analysis system of claim 1 .
3. the reception unit transfers an analysis level associated with an attribute of the logged-in user together with the request to the processing unit; The processing unit performs processing in which at least one of the scope and depth of analysis differs depending on the analysis level. The data analysis system of claim 1 .
4. The storage unit accumulates information about advertisements that have been distributed in the past, and the advertisement information includes product information and formats. The data analysis system of claim 1 .
5. a communication unit that exchanges information with a user currently logged in to a terminal device via an operation reception screen that operates on the terminal device; a receiving unit that receives an input of a request for executing an analysis of data stored in a predetermined storage unit from the terminal device in natural language; a processing unit that converts the natural language related to the request accepted by the accepting unit into machine-readable language, performs processing according to the request based on the converted machine-readable language, and obtains a response to the request; a response unit that converts the response into a natural language and returns the natural language to the terminal device via the communication unit; An information processing device comprising:
Citation Information
Patent Citations
Product price estimation system, information provision system, advice provision method, communication method, information analysis method, and information generation device
JP2023157901A