System

A system that collects, cleanses, and vectorizes book data to recommend books based on user interests, addressing the challenge of finding suitable literature, enhances discovery of new genres, and improves reading experiences.

JP2026034216APending Publication Date: 2026-02-27SOFTBANK GROUP CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024137337
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-16
Publication Date
2026-02-27

AI Technical Summary

Technical Problem

Users face difficulty in finding suitable literature due to the vast number of available books and papers, and conventional review and rating sites are subjective, limiting the recommendation of books based on their interests, thus hindering discovery of new fields and authors.

Method used

A system that collects book data, cleanses and vectorizes it using natural language processing, calculates similarity with user vectors, scores books, and recommends books based on user interests, also including books from different genres to broaden interests.

Benefits of technology

Enables highly accurate book recommendations tailored to user interests, providing opportunities to discover new genres and themes, improving the reading experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026034216000001_ABST
    Figure 2026034216000001_ABST
Patent Text Reader

Abstract

A system is provided.SOLUTION: A system, comprising: means for collecting book information from a book database; means for cleansing the collected book information and extracting necessary information; means for vectorizing a summary text of a book using a natural language processing model; means for obtaining a reading history and a region of interest of a user; means for vectorizing obtained user information; means for calculating a similarity between a vector of the user and a vector of the book; means for scoring the book based on the similarity and creating a recommendation list; and means for notifying the user of the recommendation list.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The technology of the present disclosure relates to a system. [Background technology]

[0002] Patent document 1 discloses a persona chatbot control method performed by at least one processor, the method including the steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to a description of the 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] Japanese Patent Publication No. 2022-180282 Summary of the Invention [Problem to be solved by the invention]

[0004] It is difficult for users to find useful literature from the vast number of books and papers available. Conventional review and rating sites are subjective, and there are too many options, making it difficult to select the appropriate one. In addition, there are few systems that recommend the most suitable literature based on the user's interests, limiting users' opportunities to discover new fields and authors of interest. There is a need to solve this problem. [Means for solving the problem]

[0005] This invention provides a means for collecting book data, cleansing the data, and extracting necessary information. It also includes a means for vectorizing the collected summary text of book information using a natural language processing model. It also includes a means for vectorizing the reading history and areas of interest entered by the user through a dedicated app. A server calculates the similarity between the user's vector and the book's vector, scores books based on the results, and provides a means for creating a recommendation list, thereby recommending the most suitable books to the user. It also includes a means for adding books with slightly different vectors or books in different genres or themes to the recommendation list in order to broaden the user's areas of interest. This makes it easier for users to enjoy new reading experiences based on their latent interests. It also includes a means for analyzing the deeper themes and meanings of books using a natural language processing model, vectorizing them, and reflecting them in user recommendations.

[0006] "Book Information" refers to metadata and content related to a book collected from book databases and online bookstores, including information such as the book's title, author, summary, genre, and reviews.

[0007] "Cleansing" refers to the process of formatting collected data and extracting necessary information, including standardizing data formats, completing incomplete data, and deleting unnecessary data.

[0008] A "natural language processing model" refers to a machine learning model that analyzes text data and understands its meaning, and is used to perform vectorization and thematic analysis.

[0009] "Vectorization" refers to the process of converting text data into numerical vectors, representing the meaning or themes of a document as vectors in a high-dimensional space.

[0010] "Reading history" refers to information about books and papers that a user has read in the past, including titles, impressions of the books, and ratings.

[0011] "Areas of interest" refers to areas or themes in which a user is particularly interested, and are identified based on past reading history and user input.

[0012] "Similarity" refers to a measure of the relative proximity between two vectors, and methods such as cosine similarity or Euclidean distance are used.

[0013] "Scoring" refers to the process of assigning a rating score to each book based on similarity, and using it to add books with high scores to a recommendation list.

[0014] A "recommendation list" refers to a list of books and papers recommended to a user, and is generated based on the similarity between the user's vector and the book's vector.

[0015] "Notification" refers to the process of informing the user of the recommendation list generated by the system and the reasons for it, which is done through the terminal application. [Brief explanation of the drawings]

[0016] [Figure 1] 1 is a conceptual diagram showing an example of the configuration of a data processing system according to a first embodiment. [Figure 2] 1 is a conceptual diagram showing an example of main functions of a data processing device and a smart device according to a first embodiment. [Figure 3] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a second embodiment. [Figure 4] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and smart glasses according to a second embodiment. [Figure 5] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a third embodiment. [Figure 6] FIG. 11 is a conceptual diagram showing an example of main functions of a data processing device and a headset-type terminal according to a third embodiment. [Figure 7] FIG. 10 is a conceptual diagram showing an example of the configuration of a data processing system according to a fourth embodiment. [Figure 8] FIG. 10 is a conceptual diagram showing an example of main functions of a data processing device and a robot according to a fourth embodiment. [Figure 9] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 10] 1 shows an emotion map onto which multiple emotions are mapped. [Figure 11] FIG. 3 is a sequence diagram showing a processing flow of the data processing system according to the first embodiment. [Figure 12] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 1. [Figure 13] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system according to the second embodiment when an emotion engine is combined. [Figure 14] FIG. 10 is a sequence diagram showing the flow of processing in the data processing system in Application Example 2 when an emotion engine is combined. DETAILED DESCRIPTION OF THE INVENTION

[0017] An example of an embodiment of a system according to the technology of the present disclosure will be described below with reference to the accompanying drawings.

[0018] First, the terms used in the following description will be explained.

[0019] In the following embodiments, a coded processor (hereinafter simply referred to as a "processor") may be a single arithmetic device or a combination of multiple arithmetic devices. Furthermore, a processor may be a single type of arithmetic device or a combination of multiple types of arithmetic devices. Examples of arithmetic devices include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a GPGPU (General-Purpose computing on Graphics Processing Units), and an APU (Accelerated Processing Unit).

[0020] In the following embodiments, a coded RAM (Random Access Memory) is a memory in which information is temporarily stored and is used as a working memory by a processor.

[0021] In the following embodiments, the coded storage is one or more non-volatile storage devices that store various programs, various parameters, etc. Examples of non-volatile storage devices include flash memory (SSD (Solid State Drive)), magnetic disks (e.g., hard disks), and magnetic tapes.

[0022] In the following embodiments, a communication I / F (Interface) with a symbol is an interface including a communication processor, an antenna, etc. The communication I / F controls communication between multiple computers. Examples of communication standards applied to the communication I / F include wireless communication standards including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), Bluetooth (registered trademark), etc.

[0023] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B." In other words, "A and / or B" means that it may be only A, only B, or a combination of A and B. Furthermore, in this specification, the same concept as "A and / or B" is also applied when three or more things are expressed connected by "and / or."

[0024] [First embodiment]

[0025] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.

[0026] 1, a 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 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0028] The smart device 14 includes a computer 36, a reception device 38, an output device 40, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The reception device 38, the output device 40, and the camera 42 are also connected to the bus 52.

[0029] The reception device 38 includes a touch panel 38A, a microphone 38B, and the like, and receives user input. The touch panel 38A detects contact with an indicator (for example, a pen or a finger) to receive user input by the touch of the indicator. The microphone 38B detects the user's voice to receive user input by voice. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the 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 of expression that the user 20 can perceive (for example, audio and / or text). The display 40A displays visible information such as text and images in accordance with instructions from the processor 46. The speaker 40B outputs audio in accordance with instructions from the processor 46. The camera 42 is a compact digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.

[0031] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54.

[0032] FIG. 2 shows an example of the main functions of the data processing device 12 and the smart device 14.

[0033] 2, in the data processing device 12, a specific process 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" according to the technology of the present 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 process 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.

[0034] The storage 32 stores a data generation model 58 and an 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 process. The storage 50 stores a reception output program 60. The reception output program 60 is used in conjunction with the 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 process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.

[0036] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0037] The present invention is a system that uses vector search technology to recommend optimal books and papers to users, and an embodiment of the system will be described in detail below.

[0038] This system is broadly divided into three components: the server, the terminal, and the user.

[0039] Collection and preprocessing of book data

[0040] The server collects book information from existing book databases and online bookstores. Specifically, it uses an API to obtain information such as the book title, author, summary, genre, and reviews. The collected data is then cleansed and the necessary information is extracted. At this stage, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0041] The server then vectorizes the extracted summary text using a natural language processing (NLP) model, which expresses the book content as a numerical vector for subsequent similarity calculations.

[0042] User information collection and vectorization

[0043] Users enter their reading history and areas of interest through a dedicated app. This begins by entering the book title, their impressions, and ratings into the app's input form. The device then vectorizes the information entered by the user using a natural language processing model. For example, if a user reads "Introduction to Calculus," this information is vectorized and sent to the server.

[0044] Vector analysis and recommendation

[0045] The server calculates the similarity between the user vector and the book vector. Specifically, it measures the proximity between the user vector and each book vector using cosine similarity or Euclidean distance. Based on the calculated similarity, the server assigns a score to each book.

[0046] Books with high scores are added to the recommendation list by the server. Furthermore, to broaden the user's interest areas, books with slightly different vectors or books in different genres or themes are also included in the recommendation list.

[0047] Notification of recommendation results

[0048] The device notifies the user of the created recommendation list. Specifically, the app retrieves the recommendation list from the server and displays a message such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history."

[0049] For example, if a user has previously read and expressed interest in "Introduction to Calculus," the system will recommend similar books such as "Fundamentals of Linear Algebra" and "Basic Statistics." It will also recommend completely different areas of interest, such as "Classic Fiction," providing users with the opportunity to discover new interests.

[0050] Finally, the server generates an updated recommendation list continuously, and continues to provide more accurate recommendations as new user information is added. This system allows users to quickly find the most suitable literature based on their interests, greatly improving their reading experience.

[0051] The processing flow will be explained below.

[0052] Step 1:

[0053] The server collects book information from book databases and APIs of online bookstores. Specifically, it sends a request to the API to obtain information such as the book title, author, summary, genre, and reviews.

[0054] Step 2:

[0055] The server cleanses the collected book information and extracts the necessary information. Specific operations include standardizing the data format, completing incomplete data, and deleting unnecessary data.

[0056] Step 3:

[0057] The server vectorizes the summary text using a natural language processing (NLP) model. Specifically, the book summary is input to the model, and a multidimensional numerical vector is generated.

[0058] Step 4:

[0059] Users enter their reading history and areas of interest through a dedicated app, and then enter the titles of books they have read, their impressions, ratings, etc. into the app's input form.

[0060] Step 5:

[0061] The device vectorizes the user's input information using a natural language processing model. Specifically, the text data entered by the user is input into the model to generate a multidimensional numerical vector.

[0062] Step 6:

[0063] The server calculates the similarity between the user vector and the book vector, using cosine similarity or Euclidean distance to measure the proximity between each vector.

[0064] Step 7:

[0065] The server assigns a score to each book based on the calculated similarity, with books with higher scores being deemed more relevant to the user.

[0066] Step 8:

[0067] The server adds books with high scores to the recommendation list, and also adds books from different genres or themes with slightly different vectors to the list in order to broaden the user's interests.

[0068] Step 9:

[0069] The server transmits the generated recommendation list to the terminal.

[0070] Step 10:

[0071] The device notifies the user of the recommendation list received from the server. Specifically, it displays a message in the app such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the recommendation, such as "Based on your past reading history."

[0072] Example 1

[0073] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0074] Conventional book recommendation systems often do not adequately recommend books based on users' interests, making it difficult for users to find books that suit them. Furthermore, the low accuracy of recommendations makes it difficult to keep users engaged. Furthermore, the inability to recommend books of different genres or themes limits users' opportunities to discover new interests.

[0075] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.

[0076] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's reading history and areas of interest, means for vectorizing the acquired user information, means for calculating the similarity between the user's vector and the book's vector, means for scoring books based on the similarity and creating a recommendation list, and means for notifying the user of the recommendation list. This enables highly accurate book recommendations based on the user's interests, and can also recommend books of different genres and themes, providing the user with an opportunity to discover new interests.

[0077] A "book database" is a database for storing and managing information about books.

[0078] "Means of collection" refers to the function for obtaining book information from book databases, online bookstores, etc.

[0079] "Cleansing means" refers to the function of organizing collected book information, completing incomplete data, and deleting unnecessary data.

[0080] "Means of extraction" refers to the function of extracting necessary information from book information.

[0081] "Vectorization means" refers to the technology that converts book summary text and user information into numerical vectors.

[0082] "Natural language processing model" refers to a model that analyzes natural language text and converts it into vectors using machine learning algorithms.

[0083] "User's reading history" refers to information such as a list of books the user has read in the past, their impressions of those books, and their ratings.

[0084] "Area of ​​interest" refers to information about genres or themes in which a user is interested.

[0085] The "means for calculating similarity" refers to a function for calculating the similarity between a user vector and a book vector.

[0086] "Means for scoring" refers to a function that assigns scores to books based on similarity.

[0087] "Means for creating a recommendation list" refers to a function for generating a book list to be recommended to a user from scored books.

[0088] The "means for notifying" refers to a function for notifying the user of the created recommendation list.

[0089] "Different genres and themes" refer to new categories that are different from the user's existing areas of interest.

[0090] "Deeper themes and meanings" refer not only to the superficial information in a book, but also to the philosophy and intentions behind it.

[0091] This invention is a system for recommending the most suitable books and papers to users, and can make highly accurate recommendations by utilizing information obtained from a book database and the user's reading history. This system is mainly composed of three entities: a server, a terminal, and a user.

[0092] server

[0093] The server provides a means to collect book information from book databases and online bookstores using APIs. It uses the Python requests library to send API requests and retrieve information such as the book title, author, summary, genre, and reviews. It then uses the Pandas library to cleanse the collected data and extract the necessary information. For example, it completes incomplete records and deletes unnecessary data from the retrieved data.

[0094] Next, the server vectorizes the book summary text using the generative AI model "BERT" as a natural language processing model. It loads the BERT model using Python's Transformers library and converts the summary text into a numerical vector.

[0095] User

[0096] Users use a dedicated app to input their reading history and areas of interest. For example, if a user reads "Introduction to Calculus," they input the book title, their impressions of the book, and their evaluation into the app.

[0097] Terminal

[0098] The terminal receives the information entered by the user and vectorizes it using a natural language processing model. It uses the Python spaCy library to vectorize the user's input text and sends the generated vector to the server.

[0099] Vector analysis and recommendation

[0100] The server calculates the similarity between the user's vector and the retrieved book's vector. It uses mathematical methods such as cosine similarity and Euclidean distance to perform the calculation using the scikit-learn library. Books with high similarity are assigned a high score, and a recommendation list based on the user's interests is generated.

[0101] For example, if a user has read "Introduction to Calculus," the system will recommend similar books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics" based on that information. It also broadens the user's interests by including books from different genres and themes.

[0102] Notification of recommendation results

[0103] The device retrieves the recommendation list from the server and notifies the user. The app displays "Recommended book for you: 'Fundamentals of Linear Algebra'" and provides the reason for the recommendation as "based on your past reading history."

[0104] Examples of prompt statements

[0105] 1. Book data collection

[0106] "Write a program that uses an API to retrieve book data from an online bookstore and vectorize the summaries using BERT."

[0107] 2. User Data Collection

[0108] "Write code to collect user-entered reading history and vectorize that text using spaCy."

[0109] 3. Similarity Calculation and Recommendation

[0110] "Implement an algorithm that calculates the cosine similarity between a user vector and a book vector, and recommends books with high scores."

[0111] 4. Notification of recommendation results

[0112] "Write the code to retrieve the list of recommendations and display them to the user within the app."

[0113] This system allows users to quickly find the most suitable literature based on their interests, greatly improving the reading experience.

[0114] The flow of the identification process in the first embodiment will be described with reference to FIG.

[0115] Step 1: Collecting book data

[0116] The server collects book information using APIs of book databases and online bookstores. For example, it uses Python's requests library to send API requests and obtain information such as the book title, author, summary, genre, and reviews. The input is the API request, and the output is the book information in JSON format.

[0117] Specific behavior:

[0118] The server sends an API request to retrieve book information, for example, using a URL such as "https: / / api.onlinebookstore.com / v1 / books?category=science&language=ja".

[0119] Step 2: Data cleansing

[0120] The server cleanses the collected book information, extracts and organizes the necessary information, and uses the Pandas library to convert it into a data frame, complete incomplete data, and delete unnecessary data. The input is book information in JSON format, and the output is the cleansed book data.

[0121] Specific behavior:

[0122] Convert to a data frame and remove empty records. For example, remove records with empty titles and enter "Unknown" for records with no author information.

[0123] Step 3: Vectorizing the summary text

[0124] The server vectorizes the extracted summary text using a natural language processing model. It uses the Transformers library and loads the generative AI model "BERT" to convert the summary text into a numerical vector. The input is the summary text, and the output is vector data.

[0125] Specific behavior:

[0126] Load the BERT model and vectorize the summarized text. For example, vectorize the summarized text of "Python Primer" with BERT.

[0127] Step 4: Collect user information

[0128] Users enter their reading history and areas of interest through a dedicated app. The user enters the book title, their impressions, and ratings into the app's input form. The input is the book title, impressions, and ratings, and the output is user information.

[0129] Specific behavior:

[0130] The user inputs "Introduction to Calculus" and their impressions into the app. For example, they might input "Title: Introduction to Calculus, Impression: It was very easy to understand."

[0131] Step 5: Vectorizing user information

[0132] The terminal vectorizes the information entered by the user using a natural language processing model and sends it to the server. The spaCy library is used to vectorize the user's input text. The input is the user's input text, and the output is vector data.

[0133] Specific behavior:

[0134] Use the spaCy model to vectorize the text entered by the user. For example, vectorize the text "Introduction to Calculus" with spaCy and send the vector to the server.

[0135] Step 6: Similarity calculation

[0136] The server calculates the similarity between the user vector and the book vector. It uses cosine similarity or Euclidean distance and uses the scikit-learn library. The input is the user vector and the book vector, and the output is the similarity score.

[0137] Specific behavior:

[0138] Calculate the cosine similarity to calculate the similarity between the user vector and the book vector. For example, calculate the similarity between the user vector of "Introduction to Calculus" and the book vector of "Fundamentals of Linear Algebra."

[0139] Step 7: Generate a recommendation list

[0140] The server assigns scores to books based on the calculated similarities and generates a recommendation list. Books with high scores are added to the list, and books from different genres and themes are included. The input is the similarity scores, and the output is the recommendation list.

[0141] Specific behavior:

[0142] Books with high similarity scores are added to the list, and books with scores above a certain threshold are recorded as recommended books. For example, "Fundamentals of Linear Algebra" has a high score and is added to the recommendation list.

[0143] Step 8: Notification of recommendation results

[0144] The device retrieves the recommendation list from the server and notifies the user. The recommended books and the reasons for their selection are displayed within the app. The input is the recommendation list, and the output is a notification message.

[0145] Specific behavior:

[0146] Make an API request to get a list of recommendations. For example, display a message like "Recommended book for you: 'Introduction to Linear Algebra'" with the reason for the recommendation: "Based on your past reading history."

[0147] (Application example 1)

[0148] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0149] In today's information-saturated society, it is difficult for users to find appropriate books and papers based on their own interests. There is also a lack of support for users to discover new areas of interest. Therefore, there is a need for a system that effectively recommends the most suitable books and papers for users and provides a means to expand their range of interests. Furthermore, there is a need for a system that can achieve this in a format that is easily accessible on smartphones and other smart devices.

[0150] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.

[0151] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's reading history and areas of interest, means for vectorizing the acquired user information, means for calculating the similarity between the user's vector and the book's vector, means for scoring books based on the similarity and creating a recommendation list, means for notifying the user of the recommendation list, and means for recommending books of different genres to encourage the user to discover new areas of interest. This enables users to quickly find optimal books and papers based on their own interests and provides opportunities for exploring new areas of interest.

[0152] A "book database" is a collection of data that includes book information such as book titles, authors, summaries, genres, and reviews.

[0153] "Cleansing" is the process of removing unnecessary information from collected data, completing incomplete data, and arranging the data into a consistent format.

[0154] A "natural language processing model" is an artificial intelligence algorithm that analyzes text data and understands its meaning and relevance.

[0155] "Vectorization" means converting the contents of a book and a user's reading history into a numerical format that can be processed by an algorithm.

[0156] "Reading history" is data that includes a record of books and papers that a user has read in the past, as well as their impressions and evaluations.

[0157] The "area of ​​interest" is information related to a genre or theme in which the user is interested.

[0158] "Similarity" is a numerical value that indicates the degree of similarity between two vectors, and is usually calculated using cosine similarity or Euclidean distance.

[0159] "Scoring" is the process of quantifying the degree to which a book's content matches the user's interests.

[0160] A "recommended list" is a list of books and papers recommended to a user based on similarity.

[0161] "Notification" refers to a means of providing information to a user, including push notifications and in-app notifications.

[0162] "Genre" is a category that indicates the classification of a book or paper, such as literature, science, or technology.

[0163] A "theme" is the central topic or subject of a book or paper.

[0164] "User interface" refers to the screens and input forms that allow a user to interact with a system or application.

[0165] "Push notifications" are a way for applications to notify users of new information in real time.

[0166] The present invention is a system for recommending optimal books and papers based on a user's reading history and areas of interest. Specific embodiments of the system are described below.

[0167] The server first collects book information from the book database. This information includes the book title, author, summary, genre, and reviews. This information is obtained using an API. The collected data is then cleansed to extract the necessary information. During this process, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0168] The extracted summary text is then vectorized using a natural language processing model, such as a Transformer model like Hugging Face, to represent the book content as a numerical vector, which is then used to calculate similarity.

[0169] The device collects the user's reading history and areas of interest through a user interface. The user inputs information about their reading history and areas of interest. This information is vectorized on the device and sent to the server. For example, if a user reads "Introduction to Quantum Mechanics," the information is vectorized using a natural language processing model.

[0170] The server compares the user's vector with the book's vector and calculates the similarity using cosine similarity or Euclidean distance. Based on the calculated similarity, a score is assigned to each book and a recommendation list is created. This recommendation list includes not only books based on the user's interests, but also books in different genres to help the user discover new interests.

[0171] Finally, the device notifies the user of the recommendation list via push notification or in-app notification. This allows the user to check the recommended books and start reading new ones. The reason for the recommendation is also displayed, so the user can understand the criteria used to recommend the books.

[0172] For example, if a user has previously read "Introduction to Quantum Mechanics," the system will recommend related books such as "Introduction to Field Theory" and "Foundations of Statistical Mechanics." It will also include books in different genres, such as "Fiction Literature," to broaden the user's interests. An example prompt might look like this:

[0173] "The user's reading history is the vector 'Introduction to Quantum Mechanics'. Please recommend books that are most similar to this vector. Priority should be given to science-related books."

[0174] In this way, a system is realized that recommends the most suitable books to users and improves their reading experience.

[0175] The flow of the specific processing in the application example 1 will be described with reference to FIG.

[0176] Step 1: Gathering book information

[0177] The server collects book information from a book database using an API, which includes data such as title, author, summary, genre, reviews, etc. The input is the raw book information retrieved from the database, and the output is a set of raw book information.

[0178] Step 2: Data cleansing

[0179] The server cleanses the collected book information and extracts the necessary information. At this stage, data formats are standardized, incomplete data is completed, and unnecessary data is deleted. The input is raw book information, and the output is cleansed, pure book information.

[0180] Step 3: Vectorizing the text

[0181] The server vectorizes the cleansed book summary text using a natural language processing model, such as the Hugging Face Transformer model. The input is the cleansed book summary text, and the output is data representing the content of each book as a numerical vector.

[0182] Step 4: Enter your user information

[0183] The device collects the user's reading history and areas of interest through a user interface. The user inputs the books they have read, their impressions, and their ratings. The input is the reading history and interest information provided by the user, and the output is a representation of this information in a structured data format.

[0184] Step 5: Vectorizing user information

[0185] The terminal vectorizes the information entered by the user using a natural language processing model. When a user reads "Introduction to Quantum Mechanics," the information is vectorized and sent to the server. The input is the interest information entered by the user, and the output is the vectorized reading history information of the user.

[0186] Step 6: Similarity calculation

[0187] The server compares the user vector with the book vector and calculates the similarity using cosine similarity or Euclidean distance. This calculation yields a similarity score with each book. The input is the vectorized user information and book information, and the output is the similarity score with each book.

[0188] Step 7: Scoring and creating a recommendation list

[0189] The server scores books based on the calculated similarity scores and creates a recommendation list, which includes not only high-scoring books but also books from different genres to broaden the user's interests. The input is the similarity scores, and the output is a recommendation list of the best books.

[0190] Step 8: Notification of recommendation list

[0191] The device notifies the user of the recommendation list via push notification or in-app notification. The user can then review the recommended books and start reading. The input is the completed recommendation list, and the output is a notification to the user. This notification includes the titles of the recommended books and the reasons for their recommendations.

[0192] Furthermore, an emotion engine that estimates the user's emotion may be combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59 and perform identification processing using the user's emotion.

[0193] The present invention is a system that combines vector search technology and an emotion engine to recommend optimal books and papers to users, and an embodiment of the system will be described below in detail.

[0194] Collection and preprocessing of book data

[0195] The server collects book information from existing book databases and online bookstores. Specifically, it obtains information such as book title, author, summary, genre, and reviews via API. The collected data is then cleansed and the necessary information is extracted. At this stage, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0196] The server then vectorizes the extracted summary text using a natural language processing (NLP) model, which expresses the book content as a numerical vector and uses it for subsequent similarity calculations.

[0197] User information collection and vectorization

[0198] Users enter their reading history and areas of interest through a dedicated app. This begins by entering the titles of books they have read, their impressions, and ratings into the app's input form. The device then vectorizes the information entered by the user using a natural language processing model. For example, if a user reads "Introduction to Calculus," this information is vectorized and sent to the server.

[0199] User Emotion Recognition

[0200] The device is equipped with an emotion engine that recognizes the user's emotions in real time. Specifically, the device's camera and microphone are used to analyze the user's emotions from their facial expressions and voice, and the recognized emotion information is expressed as a vector. This allows the user's emotional state, which changes in real time, to be acquired.

[0201] The recognized emotion vector is integrated with vectorized information on the user's reading history and areas of interest, and is sent to the server as the user's overall vector.

[0202] Vector analysis and recommendation

[0203] The server calculates the similarity between the integrated user vector and the book vector. Specifically, it measures the proximity between each vector using cosine similarity or Euclidean distance. Based on the calculated similarity, the server assigns a score to each book.

[0204] The server then adds the books with the highest scores to a recommendation list, and also adds books from different genres and themes with slightly different vectors to broaden the user's interests.

[0205] Notification of recommendation results

[0206] The device notifies the user of the recommendation list received from the server. Specifically, it displays a message in the app such as "Recommended book for you: 'Introduction to Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history and current emotional state."

[0207] For example, if a user has read and expressed interest in "Introduction to Calculus," the system will recommend related books such as "Fundamentals of Linear Algebra" and "Basic Statistics." Furthermore, if the user is in a relaxed emotional state, the system will also recommend fiction that is likely to have a relaxing effect. This allows users to find books that best suit their emotional state, significantly improving their reading experience.

[0208] Finally, the server continuously updates the recommendation list, providing highly accurate recommendations as new user and emotional information is added. This system allows users to quickly find the best literature tailored to their interests and emotional state.

[0209] The processing flow will be explained below.

[0210] Step 1:

[0211] The server collects book information from book databases and APIs of online bookstores. Specifically, it sends a request to the API to obtain information such as the book title, author, summary, genre, and reviews.

[0212] Step 2:

[0213] The server cleanses the collected book information and extracts the necessary information, specifically by standardizing the data format, completing incomplete data, and deleting unnecessary data.

[0214] Step 3:

[0215] The server vectorizes the summary text using a natural language processing (NLP) model. Specifically, the book summary is input into the NLP model and converted into a multidimensional numerical vector.

[0216] Step 4:

[0217] Users enter their reading history and areas of interest through a dedicated app, and then enter the titles of books they have read, their impressions, ratings, etc. into the app's input form.

[0218] Step 5:

[0219] The device vectorizes the user's input information using a natural language processing model. Specifically, the text data entered by the user is input into the NLP model and converted into a multidimensional numerical vector.

[0220] Step 6:

[0221] The device uses a built-in emotion engine to recognize the user's emotions in real time, specifically by analyzing the user's facial expressions and voice through a camera and microphone to detect their emotional state.

[0222] Step 7:

[0223] The device expresses the emotion information recognized by the emotion engine as a vector. Specifically, the detected emotion data is converted into a multidimensional numerical vector.

[0224] Step 8:

[0225] The device integrates the vectorized emotion information with the user's past reading history and interest area vector information, thereby generating a comprehensive user vector.

[0226] Step 9:

[0227] The terminal transmits the integrated total vector of the user to the server.

[0228] Step 10:

[0229] The server calculates the similarity between the user's overall vector and the book's vector. Specifically, it measures the proximity between each vector using cosine similarity or Euclidean distance.

[0230] Step 11:

[0231] The server assigns a score to each book based on the calculated similarity, with books with higher scores being deemed more relevant to the user.

[0232] Step 12:

[0233] The server adds books with high scores to the recommendation list, and also adds books from different genres or themes with slightly different vectors to the list in order to broaden the user's interests.

[0234] Step 13:

[0235] The server transmits the generated recommendation list to the terminal.

[0236] Step 14:

[0237] The device will notify the user of the received recommendation list, specifically by displaying a message within the app such as "Recommended book for you: 'Introduction to Linear Algebra'."

[0238] Step 15:

[0239] The device provides the user with a detailed explanation of the reason for the recommendation, such as "based on your past reading history and current emotional state."

[0240] Example 2

[0241] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0242] Conventional book recommendation systems simply recommend books based on a user's past reading history and areas of interest, and often do not take the user's emotional state into consideration. This has led to the problem of not recommending books that match the user's current emotions. Furthermore, there has been an issue where the book content itself is not sufficiently vectorized, making it difficult for the deeper themes and meanings of the book to be reflected in the user's recommendations.

[0243] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.

[0244] In this invention, the server includes a means for collecting information from a book database, a means for formatting the collected information and extracting necessary information, and a means for vectorizing the book summary text using a natural language processing model, so that the contents of the book can be expressed as a numerical vector and used for subsequent similarity calculations.

[0245] The system also includes a means for acquiring a user's reading history and areas of interest, a means for vectorizing the acquired user information using a natural language processing model, a means for recognizing the user's emotional information using an emotion engine of the device and expressing it as a vector, and a means for integrating the user's emotional information and reading information to generate an integrated vector. This enables the integration and vectorization of the user's emotional state and reading history, enabling appropriate recommendations that adapt to changing situations in real time.

[0246] The system further includes a means for calculating the similarity between the user's integrated vector and the book's vector, a means for scoring the books based on the calculated similarity and creating a recommendation list, and a means for notifying the user of the recommendation list, thereby realizing accurate recommendations based on highly accurate similarity calculation and scoring.

[0247] A "book database" is a database that aggregates information about books, such as titles, authors, summaries, genres, and reviews.

[0248] "Means of collecting information" refers to the technology used to obtain the necessary book information from book databases and online bookstores using APIs.

[0249] "Means of formatting information" refers to techniques for cleansing collected data, supplementing incomplete data, standardizing formats, and extracting necessary information.

[0250] A "natural language processing model" is a machine learning model for analyzing text data and understanding its meaning, and is capable of representing sentences as numerical vectors. Examples include BERT and GPT.

[0251] "User reading history" refers to information such as the titles, impressions, and ratings of books that the user has read in the past.

[0252] "Area of ​​interest" refers to a field or topic in which a user is particularly interested.

[0253] "Vectorization means" is a technology that converts text information into a numerical vector using a natural language processing model.

[0254] The "emotion engine" is a system that uses a camera and microphone to recognize emotions from a user's facial expressions and voice in real time and expresses them as numerical vectors.

[0255] The "means for generating an integrated vector" is a technology for integrating a user's emotional information, reading history, and areas of interest into a single vector.

[0256] The "means for calculating similarity" is a technology that measures the distance and angle between the user's integrated vector and the book's vector and calculates their similarity, and the calculation is performed using cosine similarity or Euclidean distance.

[0257] The "scoring method" is a technology that assigns a score to each book based on the calculated similarity and creates a highly accurate recommendation list.

[0258] The "means for creating a recommendation list" is a technology that compiles a list of books that are most suitable for the user based on the scoring results.

[0259] The "notification means" refers to a technique for notifying the user of the created recommendation list through an application or other interface.

[0260] The present invention is a system that combines vector search technology and an emotion engine to recommend the most suitable books and papers to a user. An embodiment of this system will be specifically described below.

[0261] Collection and preprocessing of book data

[0262] The server collects book information from existing book databases and online bookstores. Specifically, it obtains information such as book titles, authors, summaries, genres, and reviews through APIs. For example, it uses a book database API or an online bookstore API. The server cleanses the collected data, standardizing formats, completing incomplete data, and deleting unnecessary data.

[0263] The server then uses a natural language processing (NLP) model to vectorize the book summary text. Specifically, it uses BERT (Bidirectional Encoder Representations from Transformers) from the Transformers library to convert the book summary into a numerical vector. This allows the book content to be represented as a numerical vector, which is then used in the similarity calculation.

[0264] User information collection and vectorization

[0265] Users use a dedicated app to input their reading history and areas of interest. They enter the titles of books they have read, their impressions, and ratings in the app's input form. For example, if a user has read "Introduction to Calculus," they would enter this information. The device then vectorizes the information entered by the user using a natural language processing model (e.g., spaCy) and sends it to the server.

[0266] User Emotion Recognition

[0267] The device is equipped with an emotion engine that uses a camera and microphone to recognize emotions in real time from the user's facial expressions and voice. This emotion engine uses facial recognition APIs and voice analysis APIs (e.g., Google® Cloud Speech-to-Text API and Face API). The recognized emotion information is expressed as a vector and integrated with vectorized information on reading history and areas of interest.

[0268] Vector analysis and recommendation

[0269] The server calculates the similarity between the user's integrated vector and the book's vector. Specifically, it calculates the cosine similarity and Euclidean distance between the user's vector and the book's vector using the Scikit-learn library. Based on the calculated similarity, it assigns a score to each book.

[0270] Next, we add books with high scores to the recommendation list, and also include books in genres or themes with slightly different vectors to broaden the user's interest areas.

[0271] Notification of recommendation results

[0272] The device notifies the user of the recommendation list received from the server. Specifically, the app displays a message such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history and current emotional state." For example, if a user has read and expressed interest in "Introduction to Calculus," the system will recommend related books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics." Furthermore, if the user is in a relaxed emotional state, the system will also recommend fiction that is expected to have a relaxing effect.

[0273] Specific examples

[0274] For example, a user might input the following prompt into a generative AI model:

[0275] Prompt statement:

[0276] "I've recently become interested in mathematics. The last book I read was Introduction to Calculus. Please provide me with more math books and relaxing reading experiences like this one."

[0277] Based on this prompt, the system can recommend related books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics," and can also suggest fictional works that may have a relaxing effect based on the user's emotional state.

[0278] As described above, the present invention allows a user to quickly find a book that best suits his / her interests and emotional state, thereby improving the user's reading experience.

[0279] The flow of the identification process in the second embodiment will be described with reference to FIG.

[0280] Step 1:

[0281] Book data collection

[0282] The server collects book information from a book database or online bookstore. Specifically, it sends an API request to obtain information such as title, author, summary, genre, and reviews. For example, it uses the "Book Database API" or "Online Bookstore API" to obtain data in JSON format.

[0283] Input: API URL and query parameters

[0284] Output: JSON data of book information

[0285] Step 2:

[0286] Data Cleansing

[0287] The server parses the received JSON data and converts it into a data frame using the Pandas library. It then performs missing value imputation, removes unnecessary data, and standardizes the data format. For example, it imputes incomplete data and removes unnecessary columns.

[0288] Input: JSON data of book information

[0289] Output: Cleansed data frame

[0290] Step 3:

[0291] Vectorization

[0292] The server converts the book summary text into a numerical vector using the natural language processing (NLP) model BERT. Specifically, the BERT model inputs the summary text and generates a corresponding output vector.

[0293] Input: Book summary text (column of data frame)

[0294] Output: A vector of summary text

[0295] Step 4:

[0296] Entering user information

[0297] The user launches the app and fills in a form with the titles, impressions, and ratings of books they have read in the past. For example, they can write that they have read "Introduction to Calculus."

[0298] Input: Reading history and ratings entered by the user

[0299] Output: User information entered

[0300] Step 5:

[0301] Vectorization of user information

[0302] The terminal vectorizes the text information entered by the user using a natural language processing model (e.g., spaCy) and sends the information to the server.

[0303] Input: Reading history and ratings entered by the user

[0304] Output: Vectorized user information

[0305] Step 6:

[0306] Emotion recognition

[0307] The device uses an emotion engine to recognize emotions in real time from the user's facial expressions and voice via a camera and microphone, specifically using facial recognition APIs and voice analysis APIs.

[0308] Input: User's facial expression and voice data

[0309] Output: Real-time recognized emotion information

[0310] Step 7:

[0311] Vectorization of emotional information

[0312] The device represents the recognized emotion information as a vector and integrates it with the vectorized information of reading history and areas of interest.

[0313] Input: Recognized emotion information

[0314] Output: Vectorized emotion information

[0315] Step 8:

[0316] Generating the integrated vector

[0317] The device integrates the user's emotional information with the reading history and interest area vectors and sends them all together to the server.

[0318] Input: Vectorized emotion information, reading history, and interest areas

[0319] Output: Integrated user vector

[0320] Step 9:

[0321] Similarity calculation

[0322] The server calculates the similarity between the integrated vector and the book vector, specifically, cosine similarity and Euclidean distance using the Scikit-learn library.

[0323] Input: merged user vector and book vector

[0324] Output: Similarity score between vectors

[0325] Step 10:

[0326] Scoring

[0327] The server assigns a score to each book based on the calculated similarity, and books with high scores are added to the recommendation list, including books with slightly different vectors to broaden the user's interests.

[0328] Input: Similarity score between vectors

[0329] Output: Recommendation list

[0330] Step 11:

[0331] Notification of recommendation results

[0332] The device notifies the user of the recommendation list received from the server. Specifically, the device displays a message in the app such as "Recommended book for you: 'Fundamentals of Linear Algebra'" and provides the reason for the recommendation.

[0333] Input: Recommendation list and reasons for recommendation

[0334] Output: The recommendation message that is displayed to the user

[0335] This will help to recommend the most suitable books based on the user's emotional state and reading history, greatly improving the reading experience.

[0336] (Application example 2)

[0337] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart device 14 will be referred to as a "terminal."

[0338] Conventional online shopping sites typically recommend products based on a user's past purchase history and reviews, but it is difficult to recommend products that take into account the user's emotional state. Furthermore, recommendations that broaden the user's areas of interest are not adequately implemented. This makes it difficult for users to find the perfect product. This results in a suboptimal user shopping experience.

[0339] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 2 is realized by the following means.

[0340] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's purchase history and review history, means for vectorizing the acquired user information, means for recognizing and vectorizing the user's emotional state in real time, means for calculating the similarity between the user vector and the product information vector, means for scoring products based on the similarity and creating a recommendation list, and means for notifying the user of the recommendation list. This makes it possible to recommend products that are optimal for the user based on comprehensive data including the user's emotional state and purchase history.

[0341] A "book database" is a collection of data that includes information about books, such as titles, authors, summaries, genres, and reviews.

[0342] "Means of collection" are the technical methods and tools used to obtain information from existing book databases and online stores.

[0343] "Cleansing" is the process of extracting necessary information from collected data, completing incomplete data, and deleting unnecessary data.

[0344] "Natural language processing model" is a general term for computational methods and algorithms for analyzing and understanding language that humans naturally use.

[0345] "Vectorization" is the process of representing text or other information as numerical vectors, making them easier to use in subsequent calculations.

[0346] "Purchase history" is a record of products that a user has purchased in the past and related information.

[0347] "Review history" is a record of product ratings and impressions posted by users in the past.

[0348] "Emotional state" refers to the emotion the user is currently feeling, and is extracted in real time from facial expressions, voice, etc.

[0349] A "means for calculating similarity" is a method or algorithm for calculating the similarity between two vectors.

[0350] "Scoring" is the process of assigning a score to an object (in this case, a product) based on the degree of similarity.

[0351] A "recommended list" is a list of products, books, etc. that are recommended to a user.

[0352] "Means of notification" refers to the method or means for informing users of recommended information or lists.

[0353] This invention is a system for recommending products based on a user's purchase history, review history, and real-time emotional state. As a specific embodiment, this invention uses the following hardware and software.

[0354] Hardware and Software

[0355] 1. Server:

[0356] Book information is collected from book databases and online stores, and then cleansed to extract the necessary information.

[0357] Vectorize the book summary text using a natural language processing model (NLP model).

[0358] A similarity calculation engine is used to calculate the similarity between the user vector and the book vector, and create a recommendation list.

[0359] 2. Terminal:

[0360] Smartphones are used as the main device, and users' purchase history and review history are obtained through an input form and vectorized.

[0361] Using a camera and microphone, the system analyzes the user's facial expressions and voice, recognizing and vectorizing their emotional state in real time.

[0362] It has a built-in emotion engine that analyzes the user's emotional state in real time.

[0363] System Operation

[0364] The device first collects the user's purchase history and review history and converts them into vectors. Next, it uses a camera and microphone to recognize the user's emotional state in real time and captures this as a vector. The acquired user information and emotional vector are then sent to the server.

[0365] The server integrates this information to generate a comprehensive user vector and calculates the similarity between this vector and the book information vector. In particular, it uses methods such as cosine similarity and Euclidean distance to evaluate the vector of the product that the user has shown interest in in the past and the vector of the product that best matches their current emotional state.

[0366] Based on the results of the similarity calculation, books with high scores are added to a recommendation list and notified to the user via push notifications or in-app notifications.

[0367] Specific examples

[0368] For example, if a user has previously purchased a gadget-related product such as a "smartphone case" and is in a relaxed emotional state, the system can recommend related products such as a "relaxing cushion." In this way, real-time recommendations based on the user's emotional state and purchase history can be realized.

[0369] Examples of prompt statements used:

[0370] Since the user has previously purchased gadget-related products such as "smartphone cases," we would like to recommend products in this category. If the user's current emotion is relaxed, we would like to consider "cushions that are easy to relax in" as a vector of related products that help them relax.

[0371] This invention makes it possible to recommend products that reflect the user's emotional state and purchase history in real time, providing a more comfortable shopping experience.

[0372] The flow of the specific processing in the application example 2 will be described with reference to FIG.

[0373] Step 1:

[0374] The user starts up the device and inputs their purchase history and review history, including specific product names and their impressions of the purchase. The input information is converted into a numerical vector using an NLP model. The input data is the text of the purchase history and reviews, and the output data is in the form of vectorized purchase history and reviews.

[0375] Step 2:

[0376] The device's camera and microphone are used to analyze the user's facial expressions and voice in real time. The emotion engine recognizes facial expressions and voice analysis to recognize the user's emotional state and captures it in vector format. The input data is real-time video and audio, and the output data is emotion vectors.

[0377] Step 3:

[0378] The terminal sends the vectorized purchase history, review, and emotion vector to the server. The server receives this data and generates a comprehensive user vector. Specifically, it calculates a weighted average of the purchase history vector and emotion vector. The input data are the purchase history vector, review vector, and emotion vector, and the output data is the comprehensive user vector.

[0379] Step 4:

[0380] The server re-vectorizes the information in the book database it holds using an NLP model and generates a vector list of books. The input data is the text information in the book database, and the output data is the vectorized book information.

[0381] Step 5:

[0382] The server calculates the similarity between the user vector and the book vector. Specifically, it calculates the similarity using cosine similarity or Euclidean distance. The input data is the user vector and the book vector, and the output data is the similarity score.

[0383] Step 6:

[0384] The server scores books based on the calculated similarity scores and generates a recommendation list. Books with high scores are added to the list preferentially, and books from different genres are also added to broaden the user's interests. The input data is the similarity scores, and the output data is the recommendation list.

[0385] Step 7:

[0386] The server sends the generated recommendation list to the device. The device notifies the user of the recommended book information. Notification methods include push notifications and in-app notifications. The input data is the recommendation list, and the output data is the notification message.

[0387] Step 8:

[0388] Users receive a notification and can view detailed book recommendations within the app, including specific reasons for the recommendations based on their past purchase history and emotional state. The input data is the recommendation list, and the output data is user feedback.

[0389] This allows users to enjoy a pleasant shopping experience by receiving recommendations for books and products that are most suitable for them based on their past purchase history and current emotional state.

[0390] 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 a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the 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.

[0391] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (registered trademark) (Internet search engine).<URL: https: / / openai.com / blog / chatgpt> ), Gemini (registered trademark) (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[0392] In the above embodiment, an example in which the specific process is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific process may be performed by the smart device 14.

[0393] [Second embodiment]

[0394] FIG. 3 shows an example of the configuration of a data processing system 210 according to the second embodiment.

[0395] 3, the data processing system 210 includes the data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.

[0396] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0397] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, and the camera 42 are also connected to the bus 52.

[0398] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.

[0399] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).

[0400] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.

[0401] Fig. 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Fig. 4, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.

[0402] The specific processing program 56 is an example of a "program" according to the technology of the present 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.

[0403] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0404] In the smart glasses 214, the reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. 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 process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.

[0405] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. 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."

[0406] The present invention is a system that uses vector search technology to recommend optimal books and papers to users, and an embodiment of the system will be described in detail below.

[0407] This system is broadly divided into three components: the server, the terminal, and the user.

[0408] Collection and preprocessing of book data

[0409] The server collects book information from existing book databases and online bookstores. Specifically, it uses an API to obtain information such as the book title, author, summary, genre, and reviews. The collected data is then cleansed and the necessary information is extracted. At this stage, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0410] The server then vectorizes the extracted summary text using a natural language processing (NLP) model, which expresses the book content as a numerical vector for subsequent similarity calculations.

[0411] User information collection and vectorization

[0412] Users enter their reading history and areas of interest through a dedicated app. This begins by entering the book title, their impressions, and ratings into the app's input form. The device then vectorizes the information entered by the user using a natural language processing model. For example, if a user reads "Introduction to Calculus," this information is vectorized and sent to the server.

[0413] Vector analysis and recommendation

[0414] The server calculates the similarity between the user vector and the book vector. Specifically, it measures the proximity between the user vector and each book vector using cosine similarity or Euclidean distance. Based on the calculated similarity, the server assigns a score to each book.

[0415] Books with high scores are added to the recommendation list by the server. Furthermore, to broaden the user's interest areas, books with slightly different vectors or books in different genres or themes are also included in the recommendation list.

[0416] Notification of recommendation results

[0417] The device notifies the user of the created recommendation list. Specifically, the app retrieves the recommendation list from the server and displays a message such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history."

[0418] For example, if a user has previously read and expressed interest in "Introduction to Calculus," the system will recommend similar books such as "Fundamentals of Linear Algebra" and "Basic Statistics." It will also recommend completely different areas of interest, such as "Classic Fiction," providing users with the opportunity to discover new interests.

[0419] Finally, the server generates an updated recommendation list continuously, and continues to provide more accurate recommendations as new user information is added. This system allows users to quickly find the most suitable literature based on their interests, greatly improving their reading experience.

[0420] The processing flow will be explained below.

[0421] Step 1:

[0422] The server collects book information from book databases and APIs of online bookstores. Specifically, it sends a request to the API to obtain information such as the book title, author, summary, genre, and reviews.

[0423] Step 2:

[0424] The server cleanses the collected book information and extracts the necessary information. Specific operations include standardizing the data format, completing incomplete data, and deleting unnecessary data.

[0425] Step 3:

[0426] The server vectorizes the summary text using a natural language processing (NLP) model. Specifically, the book summary is input to the model, and a multidimensional numerical vector is generated.

[0427] Step 4:

[0428] Users enter their reading history and areas of interest through a dedicated app, and then enter the titles of books they have read, their impressions, ratings, etc. into the app's input form.

[0429] Step 5:

[0430] The device vectorizes the user's input information using a natural language processing model. Specifically, the text data entered by the user is input into the model to generate a multidimensional numerical vector.

[0431] Step 6:

[0432] The server calculates the similarity between the user vector and the book vector, using cosine similarity or Euclidean distance to measure the proximity between each vector.

[0433] Step 7:

[0434] The server assigns a score to each book based on the calculated similarity, with books with higher scores being deemed more relevant to the user.

[0435] Step 8:

[0436] The server adds books with high scores to the recommendation list, and also adds books from different genres or themes with slightly different vectors to the list in order to broaden the user's interests.

[0437] Step 9:

[0438] The server transmits the generated recommendation list to the terminal.

[0439] Step 10:

[0440] The device notifies the user of the recommendation list received from the server. Specifically, it displays a message in the app such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the recommendation, such as "Based on your past reading history."

[0441] Example 1

[0442] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."

[0443] Conventional book recommendation systems often do not adequately recommend books based on users' interests, making it difficult for users to find books that suit them. Furthermore, the low accuracy of recommendations makes it difficult to keep users engaged. Furthermore, the inability to recommend books of different genres or themes limits users' opportunities to discover new interests.

[0444] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.

[0445] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's reading history and areas of interest, means for vectorizing the acquired user information, means for calculating the similarity between the user's vector and the book's vector, means for scoring books based on the similarity and creating a recommendation list, and means for notifying the user of the recommendation list. This enables highly accurate book recommendations based on the user's interests, and can also recommend books of different genres and themes, providing the user with an opportunity to discover new interests.

[0446] A "book database" is a database for storing and managing information about books.

[0447] "Means of collection" refers to the function for obtaining book information from book databases, online bookstores, etc.

[0448] "Cleansing means" refers to the function of organizing collected book information, completing incomplete data, and deleting unnecessary data.

[0449] "Means of extraction" refers to the function of extracting necessary information from book information.

[0450] "Vectorization means" refers to the technology that converts book summary text and user information into numerical vectors.

[0451] "Natural language processing model" refers to a model that analyzes natural language text and converts it into vectors using machine learning algorithms.

[0452] "User's reading history" refers to information such as a list of books the user has read in the past, their impressions of those books, and their ratings.

[0453] "Area of ​​interest" refers to information about genres or themes in which a user is interested.

[0454] The "means for calculating similarity" refers to a function for calculating the similarity between a user vector and a book vector.

[0455] "Means for scoring" refers to a function that assigns scores to books based on similarity.

[0456] "Means for creating a recommendation list" refers to a function for generating a book list to be recommended to a user from scored books.

[0457] The "means for notifying" refers to a function for notifying the user of the created recommendation list.

[0458] "Different genres and themes" refer to new categories that are different from the user's existing areas of interest.

[0459] "Deeper themes and meanings" refer not only to the superficial information in a book, but also to the philosophy and intentions behind it.

[0460] This invention is a system for recommending the most suitable books and papers to users, and can make highly accurate recommendations by utilizing information obtained from a book database and the user's reading history. This system is mainly composed of three entities: a server, a terminal, and a user.

[0461] server

[0462] The server provides a means to collect book information from book databases and online bookstores using APIs. It uses the Python requests library to send API requests and retrieve information such as the book title, author, summary, genre, and reviews. It then uses the Pandas library to cleanse the collected data and extract the necessary information. For example, it completes incomplete records and deletes unnecessary data from the retrieved data.

[0463] Next, the server vectorizes the book summary text using the generative AI model "BERT" as a natural language processing model. It loads the BERT model using Python's Transformers library and converts the summary text into a numerical vector.

[0464] User

[0465] Users use a dedicated app to input their reading history and areas of interest. For example, if a user reads "Introduction to Calculus," they input the book title, their impressions of the book, and their evaluation into the app.

[0466] Terminal

[0467] The terminal receives the information entered by the user and vectorizes it using a natural language processing model. It uses the Python spaCy library to vectorize the user's input text and sends the generated vector to the server.

[0468] Vector analysis and recommendation

[0469] The server calculates the similarity between the user's vector and the retrieved book's vector. It uses mathematical methods such as cosine similarity and Euclidean distance to perform the calculation using the scikit-learn library. Books with high similarity are assigned a high score, and a recommendation list based on the user's interests is generated.

[0470] For example, if a user has read "Introduction to Calculus," the system will recommend similar books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics" based on that information. It also broadens the user's interests by including books from different genres and themes.

[0471] Notification of recommendation results

[0472] The device retrieves the recommendation list from the server and notifies the user. The app displays "Recommended book for you: 'Fundamentals of Linear Algebra'" and provides the reason for the recommendation as "based on your past reading history."

[0473] Examples of prompt statements

[0474] 1. Book data collection

[0475] "Write a program that uses an API to retrieve book data from an online bookstore and vectorize the summaries using BERT."

[0476] 2. User Data Collection

[0477] "Write code to collect user-entered reading history and vectorize that text using spaCy."

[0478] 3. Similarity Calculation and Recommendation

[0479] "Implement an algorithm that calculates the cosine similarity between a user vector and a book vector, and recommends books with high scores."

[0480] 4. Notification of recommendation results

[0481] "Write the code to retrieve the list of recommendations and display them to the user within the app."

[0482] This system allows users to quickly find the most suitable literature based on their interests, greatly improving the reading experience.

[0483] The flow of the identification process in the first embodiment will be described with reference to FIG.

[0484] Step 1: Collecting book data

[0485] The server collects book information using APIs of book databases and online bookstores. For example, it uses Python's requests library to send API requests and obtain information such as the book title, author, summary, genre, and reviews. The input is the API request, and the output is the book information in JSON format.

[0486] Specific behavior:

[0487] The server sends an API request to retrieve book information, for example, using a URL such as "https: / / api.onlinebookstore.com / v1 / books?category=science&language=ja".

[0488] Step 2: Data cleansing

[0489] The server cleanses the collected book information, extracts and organizes the necessary information, and uses the Pandas library to convert it into a data frame, complete incomplete data, and delete unnecessary data. The input is book information in JSON format, and the output is the cleansed book data.

[0490] Specific behavior:

[0491] Convert to a data frame and remove empty records. For example, remove records with empty titles and enter "Unknown" for records with no author information.

[0492] Step 3: Vectorizing the summary text

[0493] The server vectorizes the extracted summary text using a natural language processing model. It uses the Transformers library and loads the generative AI model "BERT" to convert the summary text into a numerical vector. The input is the summary text, and the output is vector data.

[0494] Specific behavior:

[0495] Load the BERT model and vectorize the summarized text. For example, vectorize the summarized text of "Python Primer" with BERT.

[0496] Step 4: Collect user information

[0497] Users enter their reading history and areas of interest through a dedicated app. The user enters the book title, their impressions, and ratings into the app's input form. The input is the book title, impressions, and ratings, and the output is user information.

[0498] Specific behavior:

[0499] The user inputs "Introduction to Calculus" and their impressions into the app. For example, they might input "Title: Introduction to Calculus, Impression: It was very easy to understand."

[0500] Step 5: Vectorizing user information

[0501] The terminal vectorizes the information entered by the user using a natural language processing model and sends it to the server. The spaCy library is used to vectorize the user's input text. The input is the user's input text, and the output is vector data.

[0502] Specific behavior:

[0503] Use the spaCy model to vectorize the text entered by the user. For example, vectorize the text "Introduction to Calculus" with spaCy and send the vector to the server.

[0504] Step 6: Similarity calculation

[0505] The server calculates the similarity between the user vector and the book vector. It uses cosine similarity or Euclidean distance and uses the scikit-learn library. The input is the user vector and the book vector, and the output is the similarity score.

[0506] Specific behavior:

[0507] Calculate the cosine similarity to calculate the similarity between the user vector and the book vector. For example, calculate the similarity between the user vector of "Introduction to Calculus" and the book vector of "Fundamentals of Linear Algebra."

[0508] Step 7: Generate a recommendation list

[0509] The server assigns scores to books based on the calculated similarities and generates a recommendation list. Books with high scores are added to the list, and books from different genres and themes are included. The input is the similarity scores, and the output is the recommendation list.

[0510] Specific behavior:

[0511] Books with high similarity scores are added to the list, and books with scores above a certain threshold are recorded as recommended books. For example, "Fundamentals of Linear Algebra" has a high score and is added to the recommendation list.

[0512] Step 8: Notification of recommendation results

[0513] The device retrieves the recommendation list from the server and notifies the user. The recommended books and the reasons for their selection are displayed within the app. The input is the recommendation list, and the output is a notification message.

[0514] Specific behavior:

[0515] Make an API request to get a list of recommendations. For example, display a message like "Recommended book for you: 'Introduction to Linear Algebra'" with the reason for the recommendation: "Based on your past reading history."

[0516] (Application example 1)

[0517] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."

[0518] In today's information-saturated society, it is difficult for users to find appropriate books and papers based on their own interests. There is also a lack of support for users to discover new areas of interest. Therefore, there is a need for a system that effectively recommends the most suitable books and papers for users and provides a means to expand their range of interests. Furthermore, there is a need for a system that can achieve this in a format that is easily accessible on smartphones and other smart devices.

[0519] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.

[0520] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's reading history and areas of interest, means for vectorizing the acquired user information, means for calculating the similarity between the user's vector and the book's vector, means for scoring books based on the similarity and creating a recommendation list, means for notifying the user of the recommendation list, and means for recommending books of different genres to encourage the user to discover new areas of interest. This enables users to quickly find optimal books and papers based on their own interests and provides opportunities for exploring new areas of interest.

[0521] A "book database" is a collection of data that includes book information such as book titles, authors, summaries, genres, and reviews.

[0522] "Cleansing" is the process of removing unnecessary information from collected data, completing incomplete data, and arranging the data into a consistent format.

[0523] A "natural language processing model" is an artificial intelligence algorithm that analyzes text data and understands its meaning and relevance.

[0524] "Vectorization" means converting the contents of a book and a user's reading history into a numerical format that can be processed by an algorithm.

[0525] "Reading history" is data that includes a record of books and papers that a user has read in the past, as well as their impressions and evaluations.

[0526] The "area of ​​interest" is information related to a genre or theme in which the user is interested.

[0527] "Similarity" is a numerical value that indicates the degree of similarity between two vectors, and is usually calculated using cosine similarity or Euclidean distance.

[0528] "Scoring" is the process of quantifying the degree to which a book's content matches the user's interests.

[0529] A "recommended list" is a list of books and papers recommended to a user based on similarity.

[0530] "Notification" refers to a means of providing information to a user, including push notifications and in-app notifications.

[0531] "Genre" is a category that indicates the classification of a book or paper, such as literature, science, or technology.

[0532] A "theme" is the central topic or subject of a book or paper.

[0533] "User interface" refers to the screens and input forms that allow a user to interact with a system or application.

[0534] "Push notifications" are a way for applications to notify users of new information in real time.

[0535] The present invention is a system for recommending optimal books and papers based on a user's reading history and areas of interest. Specific embodiments of the system are described below.

[0536] The server first collects book information from the book database. This information includes the book title, author, summary, genre, and reviews. This information is obtained using an API. The collected data is then cleansed to extract the necessary information. During this process, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0537] The extracted summary text is then vectorized using a natural language processing model, such as a Transformer model like Hugging Face, to represent the book content as a numerical vector, which is then used to calculate similarity.

[0538] The device collects the user's reading history and areas of interest through a user interface. The user inputs information about their reading history and areas of interest. This information is vectorized on the device and sent to the server. For example, if a user reads "Introduction to Quantum Mechanics," the information is vectorized using a natural language processing model.

[0539] The server compares the user's vector with the book's vector and calculates the similarity using cosine similarity or Euclidean distance. Based on the calculated similarity, a score is assigned to each book and a recommendation list is created. This recommendation list includes not only books based on the user's interests, but also books in different genres to help the user discover new interests.

[0540] Finally, the device notifies the user of the recommendation list via push notification or in-app notification. This allows the user to check the recommended books and start reading new ones. The reason for the recommendation is also displayed, so the user can understand the criteria used to recommend the books.

[0541] For example, if a user has previously read "Introduction to Quantum Mechanics," the system will recommend related books such as "Introduction to Field Theory" and "Foundations of Statistical Mechanics." It will also include books in different genres, such as "Fiction Literature," to broaden the user's interests. An example prompt might look like this:

[0542] "The user's reading history is the vector 'Introduction to Quantum Mechanics'. Please recommend books that are most similar to this vector. Priority should be given to science-related books."

[0543] In this way, a system is realized that recommends the most suitable books to users and improves their reading experience.

[0544] The flow of the specific processing in the application example 1 will be described with reference to FIG.

[0545] Step 1: Gathering book information

[0546] The server collects book information from a book database using an API, which includes data such as title, author, summary, genre, reviews, etc. The input is the raw book information retrieved from the database, and the output is a set of raw book information.

[0547] Step 2: Data cleansing

[0548] The server cleanses the collected book information and extracts the necessary information. At this stage, data formats are standardized, incomplete data is completed, and unnecessary data is deleted. The input is raw book information, and the output is cleansed, pure book information.

[0549] Step 3: Vectorizing the text

[0550] The server vectorizes the cleansed book summary text using a natural language processing model, such as the Hugging Face Transformer model. The input is the cleansed book summary text, and the output is data representing the content of each book as a numerical vector.

[0551] Step 4: Enter your user information

[0552] The device collects the user's reading history and areas of interest through a user interface. The user inputs the books they have read, their impressions, and their ratings. The input is the reading history and interest information provided by the user, and the output is a representation of this information in a structured data format.

[0553] Step 5: Vectorizing user information

[0554] The terminal vectorizes the information entered by the user using a natural language processing model. When a user reads "Introduction to Quantum Mechanics," the information is vectorized and sent to the server. The input is the interest information entered by the user, and the output is the vectorized reading history information of the user.

[0555] Step 6: Similarity calculation

[0556] The server compares the user vector with the book vector and calculates the similarity using cosine similarity or Euclidean distance. This calculation yields a similarity score with each book. The input is the vectorized user information and book information, and the output is the similarity score with each book.

[0557] Step 7: Scoring and creating a recommendation list

[0558] The server scores books based on the calculated similarity scores and creates a recommendation list, which includes not only high-scoring books but also books from different genres to broaden the user's interests. The input is the similarity scores, and the output is a recommendation list of the best books.

[0559] Step 8: Notification of recommendation list

[0560] The device notifies the user of the recommendation list via push notification or in-app notification. The user can then review the recommended books and start reading. The input is the completed recommendation list, and the output is a notification to the user. This notification includes the titles of the recommended books and the reasons for their recommendations.

[0561] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.

[0562] The present invention is a system that combines vector search technology and an emotion engine to recommend optimal books and papers to users, and an embodiment of the system will be described below in detail.

[0563] Collection and preprocessing of book data

[0564] The server collects book information from existing book databases and online bookstores. Specifically, it obtains information such as book title, author, summary, genre, and reviews via API. The collected data is then cleansed and the necessary information is extracted. At this stage, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0565] The server then vectorizes the extracted summary text using a natural language processing (NLP) model, which expresses the book content as a numerical vector and uses it for subsequent similarity calculations.

[0566] User information collection and vectorization

[0567] Users enter their reading history and areas of interest through a dedicated app. This begins by entering the titles of books they have read, their impressions, and ratings into the app's input form. The device then vectorizes the information entered by the user using a natural language processing model. For example, if a user reads "Introduction to Calculus," this information is vectorized and sent to the server.

[0568] User Emotion Recognition

[0569] The device is equipped with an emotion engine that recognizes the user's emotions in real time. Specifically, the device's camera and microphone are used to analyze the user's emotions from their facial expressions and voice, and the recognized emotion information is expressed as a vector. This allows the user's emotional state, which changes in real time, to be acquired.

[0570] The recognized emotion vector is integrated with vectorized information on the user's reading history and areas of interest, and is sent to the server as the user's overall vector.

[0571] Vector analysis and recommendation

[0572] The server calculates the similarity between the integrated user vector and the book vector. Specifically, it measures the proximity between each vector using cosine similarity or Euclidean distance. Based on the calculated similarity, the server assigns a score to each book.

[0573] The server then adds the books with the highest scores to a recommendation list, and also adds books from different genres and themes with slightly different vectors to broaden the user's interests.

[0574] Notification of recommendation results

[0575] The device notifies the user of the recommendation list received from the server. Specifically, it displays a message in the app such as "Recommended book for you: 'Introduction to Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history and current emotional state."

[0576] For example, if a user has read and expressed interest in "Introduction to Calculus," the system will recommend related books such as "Fundamentals of Linear Algebra" and "Basic Statistics." Furthermore, if the user is in a relaxed emotional state, the system will also recommend fiction that is likely to have a relaxing effect. This allows users to find books that best suit their emotional state, significantly improving their reading experience.

[0577] Finally, the server continuously updates the recommendation list, providing highly accurate recommendations as new user and emotional information is added. This system allows users to quickly find the best literature tailored to their interests and emotional state.

[0578] The processing flow will be explained below.

[0579] Step 1:

[0580] The server collects book information from book databases and APIs of online bookstores. Specifically, it sends a request to the API to obtain information such as the book title, author, summary, genre, and reviews.

[0581] Step 2:

[0582] The server cleanses the collected book information and extracts the necessary information, specifically by standardizing the data format, completing incomplete data, and deleting unnecessary data.

[0583] Step 3:

[0584] The server vectorizes the summary text using a natural language processing (NLP) model. Specifically, the book summary is input into the NLP model and converted into a multidimensional numerical vector.

[0585] Step 4:

[0586] Users enter their reading history and areas of interest through a dedicated app, and then enter the titles of books they have read, their impressions, ratings, etc. into the app's input form.

[0587] Step 5:

[0588] The device vectorizes the user's input information using a natural language processing model. Specifically, the text data entered by the user is input into the NLP model and converted into a multidimensional numerical vector.

[0589] Step 6:

[0590] The device uses a built-in emotion engine to recognize the user's emotions in real time, specifically by analyzing the user's facial expressions and voice through a camera and microphone to detect their emotional state.

[0591] Step 7:

[0592] The device expresses the emotion information recognized by the emotion engine as a vector. Specifically, the detected emotion data is converted into a multidimensional numerical vector.

[0593] Step 8:

[0594] The device integrates the vectorized emotion information with the user's past reading history and interest area vector information, thereby generating a comprehensive user vector.

[0595] Step 9:

[0596] The terminal transmits the integrated total vector of the user to the server.

[0597] Step 10:

[0598] The server calculates the similarity between the user's overall vector and the book's vector. Specifically, it measures the proximity between each vector using cosine similarity or Euclidean distance.

[0599] Step 11:

[0600] The server assigns a score to each book based on the calculated similarity, with books with higher scores being deemed more relevant to the user.

[0601] Step 12:

[0602] The server adds books with high scores to the recommendation list, and also adds books from different genres or themes with slightly different vectors to the list in order to broaden the user's interests.

[0603] Step 13:

[0604] The server transmits the generated recommendation list to the terminal.

[0605] Step 14:

[0606] The device will notify the user of the received recommendation list, specifically by displaying a message within the app such as "Recommended book for you: 'Introduction to Linear Algebra'."

[0607] Step 15:

[0608] The device provides the user with a detailed explanation of the reason for the recommendation, such as "based on your past reading history and current emotional state."

[0609] Example 2

[0610] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."

[0611] Conventional book recommendation systems simply recommend books based on a user's past reading history and areas of interest, and often do not take the user's emotional state into consideration. This has led to the problem of not recommending books that match the user's current emotions. Furthermore, there has been an issue where the book content itself is not sufficiently vectorized, making it difficult for the deeper themes and meanings of the book to be reflected in the user's recommendations.

[0612] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.

[0613] In this invention, the server includes a means for collecting information from a book database, a means for formatting the collected information and extracting necessary information, and a means for vectorizing the book summary text using a natural language processing model, so that the contents of the book can be expressed as a numerical vector and used for subsequent similarity calculations.

[0614] The system also includes a means for acquiring a user's reading history and areas of interest, a means for vectorizing the acquired user information using a natural language processing model, a means for recognizing the user's emotional information using an emotion engine of the device and expressing it as a vector, and a means for integrating the user's emotional information and reading information to generate an integrated vector. This enables the integration and vectorization of the user's emotional state and reading history, enabling appropriate recommendations that adapt to changing situations in real time.

[0615] The system further includes a means for calculating the similarity between the user's integrated vector and the book's vector, a means for scoring the books based on the calculated similarity and creating a recommendation list, and a means for notifying the user of the recommendation list, thereby realizing accurate recommendations based on highly accurate similarity calculation and scoring.

[0616] A "book database" is a database that aggregates information about books, such as titles, authors, summaries, genres, and reviews.

[0617] "Means of collecting information" refers to the technology used to obtain the necessary book information from book databases and online bookstores using APIs.

[0618] "Means of formatting information" refers to techniques for cleansing collected data, supplementing incomplete data, standardizing formats, and extracting necessary information.

[0619] A "natural language processing model" is a machine learning model for analyzing text data and understanding its meaning, and is capable of representing sentences as numerical vectors. Examples include BERT and GPT.

[0620] "User reading history" refers to information such as the titles, impressions, and ratings of books that the user has read in the past.

[0621] "Area of ​​interest" refers to a field or topic in which a user is particularly interested.

[0622] "Vectorization means" is a technology that converts text information into a numerical vector using a natural language processing model.

[0623] The "emotion engine" is a system that uses a camera and microphone to recognize emotions from a user's facial expressions and voice in real time and expresses them as numerical vectors.

[0624] The "means for generating an integrated vector" is a technology for integrating a user's emotional information, reading history, and areas of interest into a single vector.

[0625] The "means for calculating similarity" is a technology that measures the distance and angle between the user's integrated vector and the book's vector and calculates their similarity, and the calculation is performed using cosine similarity or Euclidean distance.

[0626] The "scoring method" is a technology that assigns a score to each book based on the calculated similarity and creates a highly accurate recommendation list.

[0627] The "means for creating a recommendation list" is a technology that compiles a list of books that are most suitable for the user based on the scoring results.

[0628] The "notification means" refers to a technique for notifying the user of the created recommendation list through an application or other interface.

[0629] The present invention is a system that combines vector search technology and an emotion engine to recommend the most suitable books and papers to a user. An embodiment of this system will be specifically described below.

[0630] Collection and preprocessing of book data

[0631] The server collects book information from existing book databases and online bookstores. Specifically, it obtains information such as book titles, authors, summaries, genres, and reviews through APIs. For example, it uses a book database API or an online bookstore API. The server cleanses the collected data, standardizing formats, completing incomplete data, and deleting unnecessary data.

[0632] The server then uses a natural language processing (NLP) model to vectorize the book summary text. Specifically, it uses BERT (Bidirectional Encoder Representations from Transformers) from the Transformers library to convert the book summary into a numerical vector. This allows the book content to be represented as a numerical vector, which is then used in the similarity calculation.

[0633] User information collection and vectorization

[0634] Users use a dedicated app to input their reading history and areas of interest. They enter the titles of books they have read, their impressions, and ratings in the app's input form. For example, if a user has read "Introduction to Calculus," they would enter this information. The device then vectorizes the information entered by the user using a natural language processing model (e.g., spaCy) and sends it to the server.

[0635] User Emotion Recognition

[0636] The device is equipped with an emotion engine that uses a camera and microphone to recognize emotions in real time from the user's facial expressions and voice. This emotion engine uses facial recognition APIs and voice analysis APIs (e.g., Google Cloud Speech-to-Text API and Face API). The recognized emotion information is expressed as a vector and integrated with vectorized information on reading history and areas of interest.

[0637] Vector analysis and recommendation

[0638] The server calculates the similarity between the user's integrated vector and the book's vector. Specifically, it calculates the cosine similarity and Euclidean distance between the user's vector and the book's vector using the Scikit-learn library. Based on the calculated similarity, it assigns a score to each book.

[0639] Next, we add books with high scores to the recommendation list, and also include books in genres or themes with slightly different vectors to broaden the user's interest areas.

[0640] Notification of recommendation results

[0641] The device notifies the user of the recommendation list received from the server. Specifically, the app displays a message such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history and current emotional state." For example, if a user has read and expressed interest in "Introduction to Calculus," the system will recommend related books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics." Furthermore, if the user is in a relaxed emotional state, the system will also recommend fiction that is expected to have a relaxing effect.

[0642] Specific examples

[0643] For example, a user might input the following prompt into a generative AI model:

[0644] Prompt statement:

[0645] "I've recently become interested in mathematics. The last book I read was Introduction to Calculus. Please provide me with more math books and relaxing reading experiences like this one."

[0646] Based on this prompt, the system can recommend related books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics," and can also suggest fictional works that may have a relaxing effect based on the user's emotional state.

[0647] As described above, the present invention allows a user to quickly find a book that best suits his / her interests and emotional state, thereby improving the user's reading experience.

[0648] The flow of the identification process in the second embodiment will be described with reference to FIG.

[0649] Step 1:

[0650] Book data collection

[0651] The server collects book information from a book database or online bookstore. Specifically, it sends an API request to obtain information such as title, author, summary, genre, and reviews. For example, it uses the "Book Database API" or "Online Bookstore API" to obtain data in JSON format.

[0652] Input: API URL and query parameters

[0653] Output: JSON data of book information

[0654] Step 2:

[0655] Data Cleansing

[0656] The server parses the received JSON data and converts it into a data frame using the Pandas library. It then performs missing value imputation, removes unnecessary data, and standardizes the data format. For example, it imputes incomplete data and removes unnecessary columns.

[0657] Input: JSON data of book information

[0658] Output: Cleansed data frame

[0659] Step 3:

[0660] Vectorization

[0661] The server converts the book summary text into a numerical vector using the natural language processing (NLP) model BERT. Specifically, the BERT model inputs the summary text and generates a corresponding output vector.

[0662] Input: Book summary text (column of data frame)

[0663] Output: A vector of summary text

[0664] Step 4:

[0665] Entering user information

[0666] The user launches the app and fills in a form with the titles, impressions, and ratings of books they have read in the past. For example, they can write that they have read "Introduction to Calculus."

[0667] Input: Reading history and ratings entered by the user

[0668] Output: User information entered

[0669] Step 5:

[0670] Vectorization of user information

[0671] The terminal vectorizes the text information entered by the user using a natural language processing model (e.g., spaCy) and sends the information to the server.

[0672] Input: Reading history and ratings entered by the user

[0673] Output: Vectorized user information

[0674] Step 6:

[0675] Emotion recognition

[0676] The device uses an emotion engine to recognize emotions in real time from the user's facial expressions and voice via a camera and microphone, specifically using facial recognition APIs and voice analysis APIs.

[0677] Input: User's facial expression and voice data

[0678] Output: Real-time recognized emotion information

[0679] Step 7:

[0680] Vectorization of emotional information

[0681] The device represents the recognized emotion information as a vector and integrates it with the vectorized information of reading history and areas of interest.

[0682] Input: Recognized emotion information

[0683] Output: Vectorized emotion information

[0684] Step 8:

[0685] Generating the integrated vector

[0686] The device integrates the user's emotional information with the reading history and interest area vectors and sends them all together to the server.

[0687] Input: Vectorized emotion information, reading history, and interest areas

[0688] Output: Integrated user vector

[0689] Step 9:

[0690] Similarity calculation

[0691] The server calculates the similarity between the integrated vector and the book vector, specifically, cosine similarity and Euclidean distance using the Scikit-learn library.

[0692] Input: merged user vector and book vector

[0693] Output: Similarity score between vectors

[0694] Step 10:

[0695] Scoring

[0696] The server assigns a score to each book based on the calculated similarity, and books with high scores are added to the recommendation list, including books with slightly different vectors to broaden the user's interests.

[0697] Input: Similarity score between vectors

[0698] Output: Recommendation list

[0699] Step 11:

[0700] Notification of recommendation results

[0701] The device notifies the user of the recommendation list received from the server. Specifically, the device displays a message in the app such as "Recommended book for you: 'Fundamentals of Linear Algebra'" and provides the reason for the recommendation.

[0702] Input: Recommendation list and reasons for recommendation

[0703] Output: The recommendation message that is displayed to the user

[0704] This will help to recommend the most suitable books based on the user's emotional state and reading history, greatly improving the reading experience.

[0705] (Application example 2)

[0706] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the smart glasses 214 will be referred to as a "terminal."

[0707] Conventional online shopping sites typically recommend products based on a user's past purchase history and reviews, but it is difficult to recommend products that take into account the user's emotional state. Furthermore, recommendations that broaden the user's areas of interest are not adequately implemented. This makes it difficult for users to find the perfect product. This results in a suboptimal user shopping experience.

[0708] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 2 is realized by the following means.

[0709] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's purchase history and review history, means for vectorizing the acquired user information, means for recognizing and vectorizing the user's emotional state in real time, means for calculating the similarity between the user vector and the product information vector, means for scoring products based on the similarity and creating a recommendation list, and means for notifying the user of the recommendation list. This makes it possible to recommend products that are optimal for the user based on comprehensive data including the user's emotional state and purchase history.

[0710] A "book database" is a collection of data that includes information about books, such as titles, authors, summaries, genres, and reviews.

[0711] "Means of collection" are the technical methods and tools used to obtain information from existing book databases and online stores.

[0712] "Cleansing" is the process of extracting necessary information from collected data, completing incomplete data, and deleting unnecessary data.

[0713] "Natural language processing model" is a general term for computational methods and algorithms for analyzing and understanding language that humans naturally use.

[0714] "Vectorization" is the process of representing text or other information as numerical vectors, making them easier to use in subsequent calculations.

[0715] "Purchase history" is a record of products that a user has purchased in the past and related information.

[0716] "Review history" is a record of product ratings and impressions posted by users in the past.

[0717] "Emotional state" refers to the emotion the user is currently feeling, and is extracted in real time from facial expressions, voice, etc.

[0718] A "means for calculating similarity" is a method or algorithm for calculating the similarity between two vectors.

[0719] "Scoring" is the process of assigning a score to an object (in this case, a product) based on the degree of similarity.

[0720] A "recommended list" is a list of products, books, etc. that are recommended to a user.

[0721] "Means of notification" refers to the method or means for informing users of recommended information or lists.

[0722] This invention is a system for recommending products based on a user's purchase history, review history, and real-time emotional state. As a specific embodiment, this invention uses the following hardware and software.

[0723] Hardware and Software

[0724] 1. Server:

[0725] Book information is collected from book databases and online stores, and then cleansed to extract the necessary information.

[0726] Vectorize the book summary text using a natural language processing model (NLP model).

[0727] A similarity calculation engine is used to calculate the similarity between the user vector and the book vector, and create a recommendation list.

[0728] 2. Terminal:

[0729] Smartphones are used as the main device, and users' purchase history and review history are obtained through an input form and vectorized.

[0730] Using a camera and microphone, the system analyzes the user's facial expressions and voice, recognizing and vectorizing their emotional state in real time.

[0731] It has a built-in emotion engine that analyzes the user's emotional state in real time.

[0732] System Operation

[0733] The device first collects the user's purchase history and review history and converts them into vectors. Next, it uses a camera and microphone to recognize the user's emotional state in real time and captures this as a vector. The acquired user information and emotional vector are then sent to the server.

[0734] The server integrates this information to generate a comprehensive user vector and calculates the similarity between this vector and the book information vector. In particular, it uses methods such as cosine similarity and Euclidean distance to evaluate the vector of the product that the user has shown interest in in the past and the vector of the product that best matches their current emotional state.

[0735] Based on the results of the similarity calculation, books with high scores are added to a recommendation list and notified to the user via push notifications or in-app notifications.

[0736] Specific examples

[0737] For example, if a user has previously purchased a gadget-related product such as a "smartphone case" and is in a relaxed emotional state, the system can recommend related products such as a "relaxing cushion." In this way, real-time recommendations based on the user's emotional state and purchase history can be realized.

[0738] Examples of prompt statements used:

[0739] Since the user has previously purchased gadget-related products such as "smartphone cases," we would like to recommend products in this category. If the user's current emotion is relaxed, we would like to consider "cushions that are easy to relax in" as a vector of related products that help them relax.

[0740] This invention makes it possible to recommend products that reflect the user's emotional state and purchase history in real time, providing a more comfortable shopping experience.

[0741] The flow of the specific processing in the application example 2 will be described with reference to FIG.

[0742] Step 1:

[0743] The user starts up the device and inputs their purchase history and review history, including specific product names and their impressions of the purchase. The input information is converted into a numerical vector using an NLP model. The input data is the text of the purchase history and reviews, and the output data is in the form of vectorized purchase history and reviews.

[0744] Step 2:

[0745] The device's camera and microphone are used to analyze the user's facial expressions and voice in real time. The emotion engine recognizes facial expressions and voice analysis to recognize the user's emotional state and captures it in vector format. The input data is real-time video and audio, and the output data is emotion vectors.

[0746] Step 3:

[0747] The terminal sends the vectorized purchase history, review, and emotion vector to the server. The server receives this data and generates a comprehensive user vector. Specifically, it calculates a weighted average of the purchase history vector and emotion vector. The input data are the purchase history vector, review vector, and emotion vector, and the output data is the comprehensive user vector.

[0748] Step 4:

[0749] The server re-vectorizes the information in the book database it holds using an NLP model and generates a vector list of books. The input data is the text information in the book database, and the output data is the vectorized book information.

[0750] Step 5:

[0751] The server calculates the similarity between the user vector and the book vector. Specifically, it calculates the similarity using cosine similarity or Euclidean distance. The input data is the user vector and the book vector, and the output data is the similarity score.

[0752] Step 6:

[0753] The server scores books based on the calculated similarity scores and generates a recommendation list. Books with high scores are added to the list preferentially, and books from different genres are also added to broaden the user's interests. The input data is the similarity scores, and the output data is the recommendation list.

[0754] Step 7:

[0755] The server sends the generated recommendation list to the device. The device notifies the user of the recommended book information. Notification methods include push notifications and in-app notifications. The input data is the recommendation list, and the output data is the notification message.

[0756] Step 8:

[0757] Users receive a notification and can view detailed book recommendations within the app, including specific reasons for the recommendations based on their past purchase history and emotional state. The input data is the recommendation list, and the output data is user feedback.

[0758] This allows users to enjoy a pleasant shopping experience by receiving recommendations for books and products that are most suitable for them based on their past purchase history and current emotional state.

[0759] 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 a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.

[0760] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[0761] In the above embodiment, an example in which the specific processing is performed by the data processing device 12 has been given, but the technology of the present disclosure is not limited to this, and the specific processing may be performed by the smart glasses 214.

[0762] [Third embodiment]

[0763] FIG. 5 shows an example of the configuration of a data processing system 310 according to the third embodiment.

[0764] 5, the data processing system 310 includes the data processing device 12 and a headset type terminal 314. An example of the data processing device 12 is a server.

[0765] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[0766] The headset type terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a display 343. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the display 343 are also connected to the bus 52.

[0767] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.

[0768] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).

[0769] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.

[0770] Fig. 6 shows an example of the main functions of the data processing device 12 and the headset type terminal 314. As shown in Fig. 6, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.

[0771] The specific processing program 56 is an example of a "program" according to the technology of the present 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.

[0772] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[0773] In the headset type terminal 314, a reception output process is performed by the processor 46. A reception output program 60 is stored in the storage 50. 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 process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.

[0774] Next, a description will be given of the identification process performed by the identification processing unit 290 of the data processing device 12. 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."

[0775] The present invention is a system that uses vector search technology to recommend optimal books and papers to users, and an embodiment of the system will be described in detail below.

[0776] This system is broadly divided into three components: the server, the terminal, and the user.

[0777] Collection and preprocessing of book data

[0778] The server collects book information from existing book databases and online bookstores. Specifically, it uses an API to obtain information such as the book title, author, summary, genre, and reviews. The collected data is then cleansed and the necessary information is extracted. At this stage, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0779] The server then vectorizes the extracted summary text using a natural language processing (NLP) model, which expresses the book content as a numerical vector for subsequent similarity calculations.

[0780] User information collection and vectorization

[0781] Users enter their reading history and areas of interest through a dedicated app. This begins by entering the book title, their impressions, and ratings into the app's input form. The device then vectorizes the information entered by the user using a natural language processing model. For example, if a user reads "Introduction to Calculus," this information is vectorized and sent to the server.

[0782] Vector analysis and recommendation

[0783] The server calculates the similarity between the user vector and the book vector. Specifically, it measures the proximity between the user vector and each book vector using cosine similarity or Euclidean distance. Based on the calculated similarity, the server assigns a score to each book.

[0784] Books with high scores are added to the recommendation list by the server. Furthermore, to broaden the user's interest areas, books with slightly different vectors or books in different genres or themes are also included in the recommendation list.

[0785] Notification of recommendation results

[0786] The device notifies the user of the created recommendation list. Specifically, the app retrieves the recommendation list from the server and displays a message such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history."

[0787] For example, if a user has previously read and expressed interest in "Introduction to Calculus," the system will recommend similar books such as "Fundamentals of Linear Algebra" and "Basic Statistics." It will also recommend completely different areas of interest, such as "Classic Fiction," providing users with the opportunity to discover new interests.

[0788] Finally, the server generates an updated recommendation list continuously, and continues to provide more accurate recommendations as new user information is added. This system allows users to quickly find the most suitable literature based on their interests, greatly improving their reading experience.

[0789] The processing flow will be explained below.

[0790] Step 1:

[0791] The server collects book information from book databases and APIs of online bookstores. Specifically, it sends a request to the API to obtain information such as the book title, author, summary, genre, and reviews.

[0792] Step 2:

[0793] The server cleanses the collected book information and extracts the necessary information. Specific operations include standardizing the data format, completing incomplete data, and deleting unnecessary data.

[0794] Step 3:

[0795] The server vectorizes the summary text using a natural language processing (NLP) model. Specifically, the book summary is input to the model, and a multidimensional numerical vector is generated.

[0796] Step 4:

[0797] Users enter their reading history and areas of interest through a dedicated app, and then enter the titles of books they have read, their impressions, ratings, etc. into the app's input form.

[0798] Step 5:

[0799] The device vectorizes the user's input information using a natural language processing model. Specifically, the text data entered by the user is input into the model to generate a multidimensional numerical vector.

[0800] Step 6:

[0801] The server calculates the similarity between the user vector and the book vector, using cosine similarity or Euclidean distance to measure the proximity between each vector.

[0802] Step 7:

[0803] The server assigns a score to each book based on the calculated similarity, with books with higher scores being deemed more relevant to the user.

[0804] Step 8:

[0805] The server adds books with high scores to the recommendation list, and also adds books from different genres or themes with slightly different vectors to the list in order to broaden the user's interests.

[0806] Step 9:

[0807] The server transmits the generated recommendation list to the terminal.

[0808] Step 10:

[0809] The device notifies the user of the recommendation list received from the server. Specifically, it displays a message in the app such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the recommendation, such as "Based on your past reading history."

[0810] Example 1

[0811] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."

[0812] Conventional book recommendation systems often do not adequately recommend books based on users' interests, making it difficult for users to find books that suit them. Furthermore, the low accuracy of recommendations makes it difficult to keep users engaged. Furthermore, the inability to recommend books of different genres or themes limits users' opportunities to discover new interests.

[0813] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.

[0814] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's reading history and areas of interest, means for vectorizing the acquired user information, means for calculating the similarity between the user's vector and the book's vector, means for scoring books based on the similarity and creating a recommendation list, and means for notifying the user of the recommendation list. This enables highly accurate book recommendations based on the user's interests, and can also recommend books of different genres and themes, providing the user with an opportunity to discover new interests.

[0815] A "book database" is a database for storing and managing information about books.

[0816] "Means of collection" refers to the function for obtaining book information from book databases, online bookstores, etc.

[0817] "Cleansing means" refers to the function of organizing collected book information, completing incomplete data, and deleting unnecessary data.

[0818] "Means of extraction" refers to the function of extracting necessary information from book information.

[0819] "Vectorization means" refers to the technology that converts book summary text and user information into numerical vectors.

[0820] "Natural language processing model" refers to a model that analyzes natural language text and converts it into vectors using machine learning algorithms.

[0821] "User's reading history" refers to information such as a list of books the user has read in the past, their impressions of those books, and their ratings.

[0822] "Area of ​​interest" refers to information about genres or themes in which a user is interested.

[0823] The "means for calculating similarity" refers to a function for calculating the similarity between a user vector and a book vector.

[0824] "Means for scoring" refers to a function that assigns scores to books based on similarity.

[0825] "Means for creating a recommendation list" refers to a function for generating a book list to be recommended to a user from scored books.

[0826] The "means for notifying" refers to a function for notifying the user of the created recommendation list.

[0827] "Different genres and themes" refer to new categories that are different from the user's existing areas of interest.

[0828] "Deeper themes and meanings" refer not only to the superficial information in a book, but also to the philosophy and intentions behind it.

[0829] This invention is a system for recommending the most suitable books and papers to users, and can make highly accurate recommendations by utilizing information obtained from a book database and the user's reading history. This system is mainly composed of three entities: a server, a terminal, and a user.

[0830] server

[0831] The server provides a means to collect book information from book databases and online bookstores using APIs. It uses the Python requests library to send API requests and retrieve information such as the book title, author, summary, genre, and reviews. It then uses the Pandas library to cleanse the collected data and extract the necessary information. For example, it completes incomplete records and deletes unnecessary data from the retrieved data.

[0832] Next, the server vectorizes the book summary text using the generative AI model "BERT" as a natural language processing model. It loads the BERT model using Python's Transformers library and converts the summary text into a numerical vector.

[0833] User

[0834] Users use a dedicated app to input their reading history and areas of interest. For example, if a user reads "Introduction to Calculus," they input the book title, their impressions of the book, and their evaluation into the app.

[0835] Terminal

[0836] The terminal receives the information entered by the user and vectorizes it using a natural language processing model. It uses the Python spaCy library to vectorize the user's input text and sends the generated vector to the server.

[0837] Vector analysis and recommendation

[0838] The server calculates the similarity between the user's vector and the retrieved book's vector. It uses mathematical methods such as cosine similarity and Euclidean distance to perform the calculation using the scikit-learn library. Books with high similarity are assigned a high score, and a recommendation list based on the user's interests is generated.

[0839] For example, if a user has read "Introduction to Calculus," the system will recommend similar books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics" based on that information. It also broadens the user's interests by including books from different genres and themes.

[0840] Notification of recommendation results

[0841] The device retrieves the recommendation list from the server and notifies the user. The app displays "Recommended book for you: 'Fundamentals of Linear Algebra'" and provides the reason for the recommendation as "based on your past reading history."

[0842] Examples of prompt statements

[0843] 1. Book data collection

[0844] "Write a program that uses an API to retrieve book data from an online bookstore and vectorize the summaries using BERT."

[0845] 2. User Data Collection

[0846] "Write code to collect user-entered reading history and vectorize that text using spaCy."

[0847] 3. Similarity Calculation and Recommendation

[0848] "Implement an algorithm that calculates the cosine similarity between a user vector and a book vector, and recommends books with high scores."

[0849] 4. Notification of recommendation results

[0850] "Write the code to retrieve the list of recommendations and display them to the user within the app."

[0851] This system allows users to quickly find the most suitable literature based on their interests, greatly improving the reading experience.

[0852] The flow of the identification process in the first embodiment will be described with reference to FIG.

[0853] Step 1: Collecting book data

[0854] The server collects book information using APIs of book databases and online bookstores. For example, it uses Python's requests library to send API requests and obtain information such as the book title, author, summary, genre, and reviews. The input is the API request, and the output is the book information in JSON format.

[0855] Specific behavior:

[0856] The server sends an API request to retrieve book information, for example, using a URL such as "https: / / api.onlinebookstore.com / v1 / books?category=science&language=ja".

[0857] Step 2: Data cleansing

[0858] The server cleanses the collected book information, extracts and organizes the necessary information, and uses the Pandas library to convert it into a data frame, complete incomplete data, and delete unnecessary data. The input is book information in JSON format, and the output is the cleansed book data.

[0859] Specific behavior:

[0860] Convert to a data frame and remove empty records. For example, remove records with empty titles and enter "Unknown" for records with no author information.

[0861] Step 3: Vectorizing the summary text

[0862] The server vectorizes the extracted summary text using a natural language processing model. It uses the Transformers library and loads the generative AI model "BERT" to convert the summary text into a numerical vector. The input is the summary text, and the output is vector data.

[0863] Specific behavior:

[0864] Load the BERT model and vectorize the summarized text. For example, vectorize the summarized text of "Python Primer" with BERT.

[0865] Step 4: Collect user information

[0866] Users enter their reading history and areas of interest through a dedicated app. The user enters the book title, their impressions, and ratings into the app's input form. The input is the book title, impressions, and ratings, and the output is user information.

[0867] Specific behavior:

[0868] The user inputs "Introduction to Calculus" and their impressions into the app. For example, they might input "Title: Introduction to Calculus, Impression: It was very easy to understand."

[0869] Step 5: Vectorizing user information

[0870] The terminal vectorizes the information entered by the user using a natural language processing model and sends it to the server. The spaCy library is used to vectorize the user's input text. The input is the user's input text, and the output is vector data.

[0871] Specific behavior:

[0872] Use the spaCy model to vectorize the text entered by the user. For example, vectorize the text "Introduction to Calculus" with spaCy and send the vector to the server.

[0873] Step 6: Similarity calculation

[0874] The server calculates the similarity between the user vector and the book vector. It uses cosine similarity or Euclidean distance and uses the scikit-learn library. The input is the user vector and the book vector, and the output is the similarity score.

[0875] Specific behavior:

[0876] Calculate the cosine similarity to calculate the similarity between the user vector and the book vector. For example, calculate the similarity between the user vector of "Introduction to Calculus" and the book vector of "Fundamentals of Linear Algebra."

[0877] Step 7: Generate a recommendation list

[0878] The server assigns scores to books based on the calculated similarities and generates a recommendation list. Books with high scores are added to the list, and books from different genres and themes are included. The input is the similarity scores, and the output is the recommendation list.

[0879] Specific behavior:

[0880] Books with high similarity scores are added to the list, and books with scores above a certain threshold are recorded as recommended books. For example, "Fundamentals of Linear Algebra" has a high score and is added to the recommendation list.

[0881] Step 8: Notification of recommendation results

[0882] The device retrieves the recommendation list from the server and notifies the user. The recommended books and the reasons for their selection are displayed within the app. The input is the recommendation list, and the output is a notification message.

[0883] Specific behavior:

[0884] Make an API request to get a list of recommendations. For example, display a message like "Recommended book for you: 'Introduction to Linear Algebra'" with the reason for the recommendation: "Based on your past reading history."

[0885] (Application example 1)

[0886] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."

[0887] In today's information-saturated society, it is difficult for users to find appropriate books and papers based on their own interests. There is also a lack of support for users to discover new areas of interest. Therefore, there is a need for a system that effectively recommends the most suitable books and papers for users and provides a means to expand their range of interests. Furthermore, there is a need for a system that can achieve this in a format that is easily accessible on smartphones and other smart devices.

[0888] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.

[0889] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's reading history and areas of interest, means for vectorizing the acquired user information, means for calculating the similarity between the user's vector and the book's vector, means for scoring books based on the similarity and creating a recommendation list, means for notifying the user of the recommendation list, and means for recommending books of different genres to encourage the user to discover new areas of interest. This enables users to quickly find optimal books and papers based on their own interests and provides opportunities for exploring new areas of interest.

[0890] A "book database" is a collection of data that includes book information such as book titles, authors, summaries, genres, and reviews.

[0891] "Cleansing" is the process of removing unnecessary information from collected data, completing incomplete data, and arranging the data into a consistent format.

[0892] A "natural language processing model" is an artificial intelligence algorithm that analyzes text data and understands its meaning and relevance.

[0893] "Vectorization" means converting the contents of a book and a user's reading history into a numerical format that can be processed by an algorithm.

[0894] "Reading history" is data that includes a record of books and papers that a user has read in the past, as well as their impressions and evaluations.

[0895] The "area of ​​interest" is information related to a genre or theme in which the user is interested.

[0896] "Similarity" is a numerical value that indicates the degree of similarity between two vectors, and is usually calculated using cosine similarity or Euclidean distance.

[0897] "Scoring" is the process of quantifying the degree to which a book's content matches the user's interests.

[0898] A "recommended list" is a list of books and papers recommended to a user based on similarity.

[0899] "Notification" refers to a means of providing information to a user, including push notifications and in-app notifications.

[0900] "Genre" is a category that indicates the classification of a book or paper, such as literature, science, or technology.

[0901] A "theme" is the central topic or subject of a book or paper.

[0902] "User interface" refers to the screens and input forms that allow a user to interact with a system or application.

[0903] "Push notifications" are a way for applications to notify users of new information in real time.

[0904] The present invention is a system for recommending optimal books and papers based on a user's reading history and areas of interest. Specific embodiments of the system are described below.

[0905] The server first collects book information from the book database. This information includes the book title, author, summary, genre, and reviews. This information is obtained using an API. The collected data is then cleansed to extract the necessary information. During this process, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0906] The extracted summary text is then vectorized using a natural language processing model, such as a Transformer model like Hugging Face, to represent the book content as a numerical vector, which is then used to calculate similarity.

[0907] The device collects the user's reading history and areas of interest through a user interface. The user inputs information about their reading history and areas of interest. This information is vectorized on the device and sent to the server. For example, if a user reads "Introduction to Quantum Mechanics," the information is vectorized using a natural language processing model.

[0908] The server compares the user's vector with the book's vector and calculates the similarity using cosine similarity or Euclidean distance. Based on the calculated similarity, a score is assigned to each book and a recommendation list is created. This recommendation list includes not only books based on the user's interests, but also books in different genres to help the user discover new interests.

[0909] Finally, the device notifies the user of the recommendation list via push notification or in-app notification. This allows the user to check the recommended books and start reading new ones. The reason for the recommendation is also displayed, so the user can understand the criteria used to recommend the books.

[0910] For example, if a user has previously read "Introduction to Quantum Mechanics," the system will recommend related books such as "Introduction to Field Theory" and "Foundations of Statistical Mechanics." It will also include books in different genres, such as "Fiction Literature," to broaden the user's interests. An example prompt might look like this:

[0911] "The user's reading history is the vector 'Introduction to Quantum Mechanics'. Please recommend books that are most similar to this vector. Priority should be given to science-related books."

[0912] In this way, a system is realized that recommends the most suitable books to users and improves their reading experience.

[0913] The flow of the specific processing in the application example 1 will be described with reference to FIG.

[0914] Step 1: Gathering book information

[0915] The server collects book information from a book database using an API, which includes data such as title, author, summary, genre, reviews, etc. The input is the raw book information retrieved from the database, and the output is a set of raw book information.

[0916] Step 2: Data cleansing

[0917] The server cleanses the collected book information and extracts the necessary information. At this stage, data formats are standardized, incomplete data is completed, and unnecessary data is deleted. The input is raw book information, and the output is cleansed, pure book information.

[0918] Step 3: Vectorizing the text

[0919] The server vectorizes the cleansed book summary text using a natural language processing model, such as the Hugging Face Transformer model. The input is the cleansed book summary text, and the output is data representing the content of each book as a numerical vector.

[0920] Step 4: Enter your user information

[0921] The device collects the user's reading history and areas of interest through a user interface. The user inputs the books they have read, their impressions, and their ratings. The input is the reading history and interest information provided by the user, and the output is a representation of this information in a structured data format.

[0922] Step 5: Vectorizing user information

[0923] The terminal vectorizes the information entered by the user using a natural language processing model. When a user reads "Introduction to Quantum Mechanics," the information is vectorized and sent to the server. The input is the interest information entered by the user, and the output is the vectorized reading history information of the user.

[0924] Step 6: Similarity calculation

[0925] The server compares the user vector with the book vector and calculates the similarity using cosine similarity or Euclidean distance. This calculation yields a similarity score with each book. The input is the vectorized user information and book information, and the output is the similarity score with each book.

[0926] Step 7: Scoring and creating a recommendation list

[0927] The server scores books based on the calculated similarity scores and creates a recommendation list, which includes not only high-scoring books but also books from different genres to broaden the user's interests. The input is the similarity scores, and the output is a recommendation list of the best books.

[0928] Step 8: Notification of recommendation list

[0929] The device notifies the user of the recommendation list via push notification or in-app notification. The user can then review the recommended books and start reading. The input is the completed recommendation list, and the output is a notification to the user. This notification includes the titles of the recommended books and the reasons for their recommendations.

[0930] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.

[0931] The present invention is a system that combines vector search technology and an emotion engine to recommend optimal books and papers to users, and an embodiment of the system will be described below in detail.

[0932] Collection and preprocessing of book data

[0933] The server collects book information from existing book databases and online bookstores. Specifically, it obtains information such as book title, author, summary, genre, and reviews via API. The collected data is then cleansed and the necessary information is extracted. At this stage, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[0934] The server then vectorizes the extracted summary text using a natural language processing (NLP) model, which expresses the book content as a numerical vector and uses it for subsequent similarity calculations.

[0935] User information collection and vectorization

[0936] Users enter their reading history and areas of interest through a dedicated app. This begins by entering the titles of books they have read, their impressions, and ratings into the app's input form. The device then vectorizes the information entered by the user using a natural language processing model. For example, if a user reads "Introduction to Calculus," this information is vectorized and sent to the server.

[0937] User Emotion Recognition

[0938] The device is equipped with an emotion engine that recognizes the user's emotions in real time. Specifically, the device's camera and microphone are used to analyze the user's emotions from their facial expressions and voice, and the recognized emotion information is expressed as a vector. This allows the user's emotional state, which changes in real time, to be acquired.

[0939] The recognized emotion vector is integrated with vectorized information on the user's reading history and areas of interest, and is sent to the server as the user's overall vector.

[0940] Vector analysis and recommendation

[0941] The server calculates the similarity between the integrated user vector and the book vector. Specifically, it measures the proximity between each vector using cosine similarity or Euclidean distance. Based on the calculated similarity, the server assigns a score to each book.

[0942] The server then adds the books with the highest scores to a recommendation list, and also adds books from different genres and themes with slightly different vectors to broaden the user's interests.

[0943] Notification of recommendation results

[0944] The device notifies the user of the recommendation list received from the server. Specifically, it displays a message in the app such as "Recommended book for you: 'Introduction to Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history and current emotional state."

[0945] For example, if a user has read and expressed interest in "Introduction to Calculus," the system will recommend related books such as "Fundamentals of Linear Algebra" and "Basic Statistics." Furthermore, if the user is in a relaxed emotional state, the system will also recommend fiction that is likely to have a relaxing effect. This allows users to find books that best suit their emotional state, significantly improving their reading experience.

[0946] Finally, the server continuously updates the recommendation list, providing highly accurate recommendations as new user and emotional information is added. This system allows users to quickly find the best literature tailored to their interests and emotional state.

[0947] The processing flow will be explained below.

[0948] Step 1:

[0949] The server collects book information from book databases and APIs of online bookstores. Specifically, it sends a request to the API to obtain information such as the book title, author, summary, genre, and reviews.

[0950] Step 2:

[0951] The server cleanses the collected book information and extracts the necessary information, specifically by standardizing the data format, completing incomplete data, and deleting unnecessary data.

[0952] Step 3:

[0953] The server vectorizes the summary text using a natural language processing (NLP) model. Specifically, the book summary is input into the NLP model and converted into a multidimensional numerical vector.

[0954] Step 4:

[0955] Users enter their reading history and areas of interest through a dedicated app, and then enter the titles of books they have read, their impressions, ratings, etc. into the app's input form.

[0956] Step 5:

[0957] The device vectorizes the user's input information using a natural language processing model. Specifically, the text data entered by the user is input into the NLP model and converted into a multidimensional numerical vector.

[0958] Step 6:

[0959] The device uses a built-in emotion engine to recognize the user's emotions in real time, specifically by analyzing the user's facial expressions and voice through a camera and microphone to detect their emotional state.

[0960] Step 7:

[0961] The device expresses the emotion information recognized by the emotion engine as a vector. Specifically, the detected emotion data is converted into a multidimensional numerical vector.

[0962] Step 8:

[0963] The device integrates the vectorized emotion information with the user's past reading history and interest area vector information, thereby generating a comprehensive user vector.

[0964] Step 9:

[0965] The terminal transmits the integrated total vector of the user to the server.

[0966] Step 10:

[0967] The server calculates the similarity between the user's overall vector and the book's vector. Specifically, it measures the proximity between each vector using cosine similarity or Euclidean distance.

[0968] Step 11:

[0969] The server assigns a score to each book based on the calculated similarity, with books with higher scores being deemed more relevant to the user.

[0970] Step 12:

[0971] The server adds books with high scores to the recommendation list, and also adds books from different genres or themes with slightly different vectors to the list in order to broaden the user's interests.

[0972] Step 13:

[0973] The server transmits the generated recommendation list to the terminal.

[0974] Step 14:

[0975] The device will notify the user of the received recommendation list, specifically by displaying a message within the app such as "Recommended book for you: 'Introduction to Linear Algebra'."

[0976] Step 15:

[0977] The device provides the user with a detailed explanation of the reason for the recommendation, such as "based on your past reading history and current emotional state."

[0978] Example 2

[0979] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."

[0980] Conventional book recommendation systems simply recommend books based on a user's past reading history and areas of interest, and often do not take the user's emotional state into consideration. This has led to the problem of not recommending books that match the user's current emotions. Furthermore, there has been an issue where the book content itself is not sufficiently vectorized, making it difficult for the deeper themes and meanings of the book to be reflected in the user's recommendations.

[0981] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.

[0982] In this invention, the server includes a means for collecting information from a book database, a means for formatting the collected information and extracting necessary information, and a means for vectorizing the book summary text using a natural language processing model, so that the contents of the book can be expressed as a numerical vector and used for subsequent similarity calculations.

[0983] The system also includes a means for acquiring a user's reading history and areas of interest, a means for vectorizing the acquired user information using a natural language processing model, a means for recognizing the user's emotional information using an emotion engine of the device and expressing it as a vector, and a means for integrating the user's emotional information and reading information to generate an integrated vector. This enables the integration and vectorization of the user's emotional state and reading history, enabling appropriate recommendations that adapt to changing situations in real time.

[0984] The system further includes a means for calculating the similarity between the user's integrated vector and the book's vector, a means for scoring the books based on the calculated similarity and creating a recommendation list, and a means for notifying the user of the recommendation list, thereby realizing accurate recommendations based on highly accurate similarity calculation and scoring.

[0985] A "book database" is a database that aggregates information about books, such as titles, authors, summaries, genres, and reviews.

[0986] "Means of collecting information" refers to the technology used to obtain the necessary book information from book databases and online bookstores using APIs.

[0987] "Means of formatting information" refers to techniques for cleansing collected data, supplementing incomplete data, standardizing formats, and extracting necessary information.

[0988] A "natural language processing model" is a machine learning model for analyzing text data and understanding its meaning, and is capable of representing sentences as numerical vectors. Examples include BERT and GPT.

[0989] "User reading history" refers to information such as the titles, impressions, and ratings of books that the user has read in the past.

[0990] "Area of ​​interest" refers to a field or topic in which a user is particularly interested.

[0991] "Vectorization means" is a technology that converts text information into a numerical vector using a natural language processing model.

[0992] The "emotion engine" is a system that uses a camera and microphone to recognize emotions from a user's facial expressions and voice in real time and expresses them as numerical vectors.

[0993] The "means for generating an integrated vector" is a technology for integrating a user's emotional information, reading history, and areas of interest into a single vector.

[0994] The "means for calculating similarity" is a technology that measures the distance and angle between the user's integrated vector and the book's vector and calculates their similarity, and the calculation is performed using cosine similarity or Euclidean distance.

[0995] The "scoring method" is a technology that assigns a score to each book based on the calculated similarity and creates a highly accurate recommendation list.

[0996] The "means for creating a recommendation list" is a technology that compiles a list of books that are most suitable for the user based on the scoring results.

[0997] The "notification means" refers to a technique for notifying the user of the created recommendation list through an application or other interface.

[0998] The present invention is a system that combines vector search technology and an emotion engine to recommend the most suitable books and papers to a user. An embodiment of this system will be specifically described below.

[0999] Collection and preprocessing of book data

[1000] The server collects book information from existing book databases and online bookstores. Specifically, it obtains information such as book titles, authors, summaries, genres, and reviews through APIs. For example, it uses a book database API or an online bookstore API. The server cleanses the collected data, standardizing formats, completing incomplete data, and deleting unnecessary data.

[1001] The server then uses a natural language processing (NLP) model to vectorize the book summary text. Specifically, it uses BERT (Bidirectional Encoder Representations from Transformers) from the Transformers library to convert the book summary into a numerical vector. This allows the book content to be represented as a numerical vector, which is then used in the similarity calculation.

[1002] User information collection and vectorization

[1003] Users use a dedicated app to input their reading history and areas of interest. They enter the titles of books they have read, their impressions, and ratings in the app's input form. For example, if a user has read "Introduction to Calculus," they would enter this information. The device then vectorizes the information entered by the user using a natural language processing model (e.g., spaCy) and sends it to the server.

[1004] User Emotion Recognition

[1005] The device is equipped with an emotion engine that uses a camera and microphone to recognize emotions in real time from the user's facial expressions and voice. This emotion engine uses facial recognition APIs and voice analysis APIs (e.g., Google Cloud Speech-to-Text API and Face API). The recognized emotion information is expressed as a vector and integrated with vectorized information on reading history and areas of interest.

[1006] Vector analysis and recommendation

[1007] The server calculates the similarity between the user's integrated vector and the book's vector. Specifically, it calculates the cosine similarity and Euclidean distance between the user's vector and the book's vector using the Scikit-learn library. Based on the calculated similarity, it assigns a score to each book.

[1008] Next, we add books with high scores to the recommendation list, and also include books in genres or themes with slightly different vectors to broaden the user's interest areas.

[1009] Notification of recommendation results

[1010] The device notifies the user of the recommendation list received from the server. Specifically, the app displays a message such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history and current emotional state." For example, if a user has read and expressed interest in "Introduction to Calculus," the system will recommend related books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics." Furthermore, if the user is in a relaxed emotional state, the system will also recommend fiction that is expected to have a relaxing effect.

[1011] Specific examples

[1012] For example, a user might input the following prompt into a generative AI model:

[1013] Prompt statement:

[1014] "I've recently become interested in mathematics. The last book I read was Introduction to Calculus. Please provide me with more math books and relaxing reading experiences like this one."

[1015] Based on this prompt, the system can recommend related books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics," and can also suggest fictional works that may have a relaxing effect based on the user's emotional state.

[1016] As described above, the present invention allows a user to quickly find a book that best suits his / her interests and emotional state, thereby improving the user's reading experience.

[1017] The flow of the identification process in the second embodiment will be described with reference to FIG.

[1018] Step 1:

[1019] Book data collection

[1020] The server collects book information from a book database or online bookstore. Specifically, it sends an API request to obtain information such as title, author, summary, genre, and reviews. For example, it uses the "Book Database API" or "Online Bookstore API" to obtain data in JSON format.

[1021] Input: API URL and query parameters

[1022] Output: JSON data of book information

[1023] Step 2:

[1024] Data Cleansing

[1025] The server parses the received JSON data and converts it into a data frame using the Pandas library. It then performs missing value imputation, removes unnecessary data, and standardizes the data format. For example, it imputes incomplete data and removes unnecessary columns.

[1026] Input: JSON data of book information

[1027] Output: Cleansed data frame

[1028] Step 3:

[1029] Vectorization

[1030] The server converts the book summary text into a numerical vector using the natural language processing (NLP) model BERT. Specifically, the BERT model inputs the summary text and generates a corresponding output vector.

[1031] Input: Book summary text (column of data frame)

[1032] Output: A vector of summary text

[1033] Step 4:

[1034] Entering user information

[1035] The user launches the app and fills in a form with the titles, impressions, and ratings of books they have read in the past. For example, they can write that they have read "Introduction to Calculus."

[1036] Input: Reading history and ratings entered by the user

[1037] Output: User information entered

[1038] Step 5:

[1039] Vectorization of user information

[1040] The terminal vectorizes the text information entered by the user using a natural language processing model (e.g., spaCy) and sends the information to the server.

[1041] Input: Reading history and ratings entered by the user

[1042] Output: Vectorized user information

[1043] Step 6:

[1044] Emotion recognition

[1045] The device uses an emotion engine to recognize emotions in real time from the user's facial expressions and voice via a camera and microphone, specifically using facial recognition APIs and voice analysis APIs.

[1046] Input: User's facial expression and voice data

[1047] Output: Real-time recognized emotion information

[1048] Step 7:

[1049] Vectorization of emotional information

[1050] The device represents the recognized emotion information as a vector and integrates it with the vectorized information of reading history and areas of interest.

[1051] Input: Recognized emotion information

[1052] Output: Vectorized emotion information

[1053] Step 8:

[1054] Generating the integrated vector

[1055] The device integrates the user's emotional information with the reading history and interest area vectors and sends them all together to the server.

[1056] Input: Vectorized emotion information, reading history, and interest areas

[1057] Output: Integrated user vector

[1058] Step 9:

[1059] Similarity calculation

[1060] The server calculates the similarity between the integrated vector and the book vector, specifically, cosine similarity and Euclidean distance using the Scikit-learn library.

[1061] Input: merged user vector and book vector

[1062] Output: Similarity score between vectors

[1063] Step 10:

[1064] Scoring

[1065] The server assigns a score to each book based on the calculated similarity, and books with high scores are added to the recommendation list, including books with slightly different vectors to broaden the user's interests.

[1066] Input: Similarity score between vectors

[1067] Output: Recommendation list

[1068] Step 11:

[1069] Notification of recommendation results

[1070] The device notifies the user of the recommendation list received from the server. Specifically, the device displays a message in the app such as "Recommended book for you: 'Fundamentals of Linear Algebra'" and provides the reason for the recommendation.

[1071] Input: Recommendation list and reasons for recommendation

[1072] Output: The recommendation message that is displayed to the user

[1073] This will help to recommend the most suitable books based on the user's emotional state and reading history, greatly improving the reading experience.

[1074] (Application example 2)

[1075] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the headset type terminal 314 will be referred to as a "terminal."

[1076] Conventional online shopping sites typically recommend products based on a user's past purchase history and reviews, but it is difficult to recommend products that take into account the user's emotional state. Furthermore, recommendations that broaden the user's areas of interest are not adequately implemented. This makes it difficult for users to find the perfect product. This results in a suboptimal user shopping experience.

[1077] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 2 is realized by the following means.

[1078] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's purchase history and review history, means for vectorizing the acquired user information, means for recognizing and vectorizing the user's emotional state in real time, means for calculating the similarity between the user vector and the product information vector, means for scoring products based on the similarity and creating a recommendation list, and means for notifying the user of the recommendation list. This makes it possible to recommend products that are optimal for the user based on comprehensive data including the user's emotional state and purchase history.

[1079] A "book database" is a collection of data that includes information about books, such as titles, authors, summaries, genres, and reviews.

[1080] "Means of collection" are the technical methods and tools used to obtain information from existing book databases and online stores.

[1081] "Cleansing" is the process of extracting necessary information from collected data, completing incomplete data, and deleting unnecessary data.

[1082] "Natural language processing model" is a general term for computational methods and algorithms for analyzing and understanding language that humans naturally use.

[1083] "Vectorization" is the process of representing text or other information as numerical vectors, making them easier to use in subsequent calculations.

[1084] "Purchase history" is a record of products that a user has purchased in the past and related information.

[1085] "Review history" is a record of product ratings and impressions posted by users in the past.

[1086] "Emotional state" refers to the emotion the user is currently feeling, and is extracted in real time from facial expressions, voice, etc.

[1087] A "means for calculating similarity" is a method or algorithm for calculating the similarity between two vectors.

[1088] "Scoring" is the process of assigning a score to an object (in this case, a product) based on the degree of similarity.

[1089] A "recommended list" is a list of products, books, etc. that are recommended to a user.

[1090] "Means of notification" refers to the method or means for informing users of recommended information or lists.

[1091] This invention is a system for recommending products based on a user's purchase history, review history, and real-time emotional state. As a specific embodiment, this invention uses the following hardware and software.

[1092] Hardware and Software

[1093] 1. Server:

[1094] Book information is collected from book databases and online stores, and then cleansed to extract the necessary information.

[1095] Vectorize the book summary text using a natural language processing model (NLP model).

[1096] A similarity calculation engine is used to calculate the similarity between the user vector and the book vector, and create a recommendation list.

[1097] 2. Terminal:

[1098] Smartphones are used as the main device, and users' purchase history and review history are obtained through an input form and vectorized.

[1099] Using a camera and microphone, the system analyzes the user's facial expressions and voice, recognizing and vectorizing their emotional state in real time.

[1100] It has a built-in emotion engine that analyzes the user's emotional state in real time.

[1101] System Operation

[1102] The device first collects the user's purchase history and review history and converts them into vectors. Next, it uses a camera and microphone to recognize the user's emotional state in real time and captures this as a vector. The acquired user information and emotional vector are then sent to the server.

[1103] The server integrates this information to generate a comprehensive user vector and calculates the similarity between this vector and the book information vector. In particular, it uses methods such as cosine similarity and Euclidean distance to evaluate the vector of the product that the user has shown interest in in the past and the vector of the product that best matches their current emotional state.

[1104] Based on the results of the similarity calculation, books with high scores are added to a recommendation list and notified to the user via push notifications or in-app notifications.

[1105] Specific examples

[1106] For example, if a user has previously purchased a gadget-related product such as a "smartphone case" and is in a relaxed emotional state, the system can recommend related products such as a "relaxing cushion." In this way, real-time recommendations based on the user's emotional state and purchase history can be realized.

[1107] Examples of prompt statements used:

[1108] Since the user has previously purchased gadget-related products such as "smartphone cases," we would like to recommend products in this category. If the user's current emotion is relaxed, we would like to consider "cushions that are easy to relax in" as a vector of related products that help them relax.

[1109] This invention makes it possible to recommend products that reflect the user's emotional state and purchase history in real time, providing a more comfortable shopping experience.

[1110] The flow of the specific processing in the application example 2 will be described with reference to FIG.

[1111] Step 1:

[1112] The user starts up the device and inputs their purchase history and review history, including specific product names and their impressions of the purchase. The input information is converted into a numerical vector using an NLP model. The input data is the text of the purchase history and reviews, and the output data is in the form of vectorized purchase history and reviews.

[1113] Step 2:

[1114] The device's camera and microphone are used to analyze the user's facial expressions and voice in real time. The emotion engine recognizes facial expressions and voice analysis to recognize the user's emotional state and captures it in vector format. The input data is real-time video and audio, and the output data is emotion vectors.

[1115] Step 3:

[1116] The terminal sends the vectorized purchase history, review, and emotion vector to the server. The server receives this data and generates a comprehensive user vector. Specifically, it calculates a weighted average of the purchase history vector and emotion vector. The input data are the purchase history vector, review vector, and emotion vector, and the output data is the comprehensive user vector.

[1117] Step 4:

[1118] The server re-vectorizes the information in the book database it holds using an NLP model and generates a vector list of books. The input data is the text information in the book database, and the output data is the vectorized book information.

[1119] Step 5:

[1120] The server calculates the similarity between the user vector and the book vector. Specifically, it calculates the similarity using cosine similarity or Euclidean distance. The input data is the user vector and the book vector, and the output data is the similarity score.

[1121] Step 6:

[1122] The server scores books based on the calculated similarity scores and generates a recommendation list. Books with high scores are added to the list preferentially, and books from different genres are also added to broaden the user's interests. The input data is the similarity scores, and the output data is the recommendation list.

[1123] Step 7:

[1124] The server sends the generated recommendation list to the device. The device notifies the user of the recommended book information. Notification methods include push notifications and in-app notifications. The input data is the recommendation list, and the output data is the notification message.

[1125] Step 8:

[1126] Users receive a notification and can view detailed book recommendations within the app, including specific reasons for the recommendations based on their past purchase history and emotional state. The input data is the recommendation list, and the output data is user feedback.

[1127] This allows users to enjoy a pleasant shopping experience by receiving recommendations for books and products that are most suitable for them based on their past purchase history and current emotional state.

[1128] The specific processing unit 290 transmits the result of the specific processing to the headset type terminal 314. In the headset type terminal 314, the control unit 46A causes the speaker 240 and the display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating a user input regarding the result of the specific processing. The control unit 46A transmits audio data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.

[1129] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[1130] 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 the present disclosure is not limited to this, and the specific processing may be performed by the headset type terminal 314.

[1131] [Fourth embodiment]

[1132] FIG. 7 shows an example of the configuration of a data processing system 410 according to the fourth embodiment.

[1133] 7, a 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.

[1134] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 is an example of a "computer" according to the technology of the present disclosure. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. The database 24 and the communication I / F 26 are also connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).

[1135] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication I / F 44, and a control target 443. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. The microphone 238, the speaker 240, the camera 42, and the control target 443 are also connected to the bus 52.

[1136] The microphone 238 receives instructions and the like from the user 20 by receiving voice uttered by the user 20. The microphone 238 captures the voice uttered by the user 20, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio in accordance with instructions from the processor 46.

[1137] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an imaging element such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, and captures images of the surroundings of user 20 (for example, an imaging range defined by an angle of view equivalent to the field of vision of a typical healthy person).

[1138] The communication I / F 44 is connected to a network 54. The communication I / Fs 44 and 26 control the exchange of various information between the processor 46 and the processor 28 via the network 54. The exchange of various information between the processor 46 and the processor 28 using the communication I / Fs 44 and 26 is carried out in a secure state.

[1139] The control object 443 includes a display device, LEDs in the eyes, and motors for driving 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 emotions of the robot 414 can be expressed by controlling these motors. In addition, the facial expressions of the robot 414 can also be expressed by controlling the light emission state of the LEDs in the eyes of the robot 414.

[1140] Fig. 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Fig. 8, in the data processing device 12, a specific process is performed by the processor 28. A specific process program 56 is stored in the storage 32.

[1141] The specific processing program 56 is an example of a "program" according to the technology of the present 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.

[1142] The storage 32 stores a data generation model 58 and an emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290.

[1143] In the robot 414, the processor 46 performs the reception output process. A reception output program 60 is stored in the storage 50. 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 process is realized by the processor 46 operating as the control unit 46A in accordance with the reception output program 60 executed on the RAM 48.

[1144] Next, a description will be given of the specific processing performed by the specific processing unit 290 of the data processing device 12. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1145] The present invention is a system that uses vector search technology to recommend optimal books and papers to users, and an embodiment of the system will be described in detail below.

[1146] This system is broadly divided into three components: the server, the terminal, and the user.

[1147] Collection and preprocessing of book data

[1148] The server collects book information from existing book databases and online bookstores. Specifically, it uses an API to obtain information such as the book title, author, summary, genre, and reviews. The collected data is then cleansed and the necessary information is extracted. At this stage, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[1149] The server then vectorizes the extracted summary text using a natural language processing (NLP) model, which expresses the book content as a numerical vector for subsequent similarity calculations.

[1150] User information collection and vectorization

[1151] Users enter their reading history and areas of interest through a dedicated app. This begins by entering the book title, their impressions, and ratings into the app's input form. The device then vectorizes the information entered by the user using a natural language processing model. For example, if a user reads "Introduction to Calculus," this information is vectorized and sent to the server.

[1152] Vector analysis and recommendation

[1153] The server calculates the similarity between the user vector and the book vector. Specifically, it measures the proximity between the user vector and each book vector using cosine similarity or Euclidean distance. Based on the calculated similarity, the server assigns a score to each book.

[1154] Books with high scores are added to the recommendation list by the server. Furthermore, to broaden the user's interest areas, books with slightly different vectors or books in different genres or themes are also included in the recommendation list.

[1155] Notification of recommendation results

[1156] The device notifies the user of the created recommendation list. Specifically, the app retrieves the recommendation list from the server and displays a message such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history."

[1157] For example, if a user has previously read and expressed interest in "Introduction to Calculus," the system will recommend similar books such as "Fundamentals of Linear Algebra" and "Basic Statistics." It will also recommend completely different areas of interest, such as "Classic Fiction," providing users with the opportunity to discover new interests.

[1158] Finally, the server generates an updated recommendation list continuously, and continues to provide more accurate recommendations as new user information is added. This system allows users to quickly find the most suitable literature based on their interests, greatly improving their reading experience.

[1159] The processing flow will be explained below.

[1160] Step 1:

[1161] The server collects book information from book databases and APIs of online bookstores. Specifically, it sends a request to the API to obtain information such as the book title, author, summary, genre, and reviews.

[1162] Step 2:

[1163] The server cleanses the collected book information and extracts the necessary information. Specific operations include standardizing the data format, completing incomplete data, and deleting unnecessary data.

[1164] Step 3:

[1165] The server vectorizes the summary text using a natural language processing (NLP) model. Specifically, the book summary is input to the model, and a multidimensional numerical vector is generated.

[1166] Step 4:

[1167] Users enter their reading history and areas of interest through a dedicated app, and then enter the titles of books they have read, their impressions, ratings, etc. into the app's input form.

[1168] Step 5:

[1169] The device vectorizes the user's input information using a natural language processing model. Specifically, the text data entered by the user is input into the model to generate a multidimensional numerical vector.

[1170] Step 6:

[1171] The server calculates the similarity between the user vector and the book vector, using cosine similarity or Euclidean distance to measure the proximity between each vector.

[1172] Step 7:

[1173] The server assigns a score to each book based on the calculated similarity, with books with higher scores being deemed more relevant to the user.

[1174] Step 8:

[1175] The server adds books with high scores to the recommendation list, and also adds books from different genres or themes with slightly different vectors to the list in order to broaden the user's interests.

[1176] Step 9:

[1177] The server transmits the generated recommendation list to the terminal.

[1178] Step 10:

[1179] The device notifies the user of the recommendation list received from the server. Specifically, it displays a message in the app such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the recommendation, such as "Based on your past reading history."

[1180] Example 1

[1181] Next, a description will be given of Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1182] Conventional book recommendation systems often do not adequately recommend books based on users' interests, making it difficult for users to find books that suit them. Furthermore, the low accuracy of recommendations makes it difficult to keep users engaged. Furthermore, the inability to recommend books of different genres or themes limits users' opportunities to discover new interests.

[1183] The specific processing by the specific processing unit 290 of the data processing device 12 in the first embodiment is realized by the following means.

[1184] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's reading history and areas of interest, means for vectorizing the acquired user information, means for calculating the similarity between the user's vector and the book's vector, means for scoring books based on the similarity and creating a recommendation list, and means for notifying the user of the recommendation list. This enables highly accurate book recommendations based on the user's interests, and can also recommend books of different genres and themes, providing the user with an opportunity to discover new interests.

[1185] A "book database" is a database for storing and managing information about books.

[1186] "Means of collection" refers to the function for obtaining book information from book databases, online bookstores, etc.

[1187] "Cleansing means" refers to the function of organizing collected book information, completing incomplete data, and deleting unnecessary data.

[1188] "Means of extraction" refers to the function of extracting necessary information from book information.

[1189] "Vectorization means" refers to the technology that converts book summary text and user information into numerical vectors.

[1190] "Natural language processing model" refers to a model that analyzes natural language text and converts it into vectors using machine learning algorithms.

[1191] "User's reading history" refers to information such as a list of books the user has read in the past, their impressions of those books, and their ratings.

[1192] "Area of ​​interest" refers to information about genres or themes in which a user is interested.

[1193] The "means for calculating similarity" refers to a function for calculating the similarity between a user vector and a book vector.

[1194] "Means for scoring" refers to a function that assigns scores to books based on similarity.

[1195] "Means for creating a recommendation list" refers to a function for generating a book list to be recommended to a user from scored books.

[1196] The "means for notifying" refers to a function for notifying the user of the created recommendation list.

[1197] "Different genres and themes" refer to new categories that are different from the user's existing areas of interest.

[1198] "Deeper themes and meanings" refer not only to the superficial information in a book, but also to the philosophy and intentions behind it.

[1199] This invention is a system for recommending the most suitable books and papers to users, and can make highly accurate recommendations by utilizing information obtained from a book database and the user's reading history. This system is mainly composed of three entities: a server, a terminal, and a user.

[1200] server

[1201] The server provides a means to collect book information from book databases and online bookstores using APIs. It uses the Python requests library to send API requests and retrieve information such as the book title, author, summary, genre, and reviews. It then uses the Pandas library to cleanse the collected data and extract the necessary information. For example, it completes incomplete records and deletes unnecessary data from the retrieved data.

[1202] Next, the server vectorizes the book summary text using the generative AI model "BERT" as a natural language processing model. It loads the BERT model using Python's Transformers library and converts the summary text into a numerical vector.

[1203] User

[1204] Users use a dedicated app to input their reading history and areas of interest. For example, if a user reads "Introduction to Calculus," they input the book title, their impressions of the book, and their evaluation into the app.

[1205] Terminal

[1206] The terminal receives the information entered by the user and vectorizes it using a natural language processing model. It uses the Python spaCy library to vectorize the user's input text and sends the generated vector to the server.

[1207] Vector analysis and recommendation

[1208] The server calculates the similarity between the user's vector and the retrieved book's vector. It uses mathematical methods such as cosine similarity and Euclidean distance to perform the calculation using the scikit-learn library. Books with high similarity are assigned a high score, and a recommendation list based on the user's interests is generated.

[1209] For example, if a user has read "Introduction to Calculus," the system will recommend similar books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics" based on that information. It also broadens the user's interests by including books from different genres and themes.

[1210] Notification of recommendation results

[1211] The device retrieves the recommendation list from the server and notifies the user. The app displays "Recommended book for you: 'Fundamentals of Linear Algebra'" and provides the reason for the recommendation as "based on your past reading history."

[1212] Examples of prompt statements

[1213] 1. Book data collection

[1214] "Write a program that uses an API to retrieve book data from an online bookstore and vectorize the summaries using BERT."

[1215] 2. User Data Collection

[1216] "Write code to collect user-entered reading history and vectorize that text using spaCy."

[1217] 3. Similarity Calculation and Recommendation

[1218] "Implement an algorithm that calculates the cosine similarity between a user vector and a book vector, and recommends books with high scores."

[1219] 4. Notification of recommendation results

[1220] "Write the code to retrieve the list of recommendations and display them to the user within the app."

[1221] This system allows users to quickly find the most suitable literature based on their interests, greatly improving the reading experience.

[1222] The flow of the identification process in the first embodiment will be described with reference to FIG.

[1223] Step 1: Collecting book data

[1224] The server collects book information using APIs of book databases and online bookstores. For example, it uses Python's requests library to send API requests and obtain information such as the book title, author, summary, genre, and reviews. The input is the API request, and the output is the book information in JSON format.

[1225] Specific behavior:

[1226] The server sends an API request to retrieve book information, for example, using a URL such as "https: / / api.onlinebookstore.com / v1 / books?category=science&language=ja".

[1227] Step 2: Data cleansing

[1228] The server cleanses the collected book information, extracts and organizes the necessary information, and uses the Pandas library to convert it into a data frame, complete incomplete data, and delete unnecessary data. The input is book information in JSON format, and the output is the cleansed book data.

[1229] Specific behavior:

[1230] Convert to a data frame and remove empty records. For example, remove records with empty titles and enter "Unknown" for records with no author information.

[1231] Step 3: Vectorizing the summary text

[1232] The server vectorizes the extracted summary text using a natural language processing model. It uses the Transformers library and loads the generative AI model "BERT" to convert the summary text into a numerical vector. The input is the summary text, and the output is vector data.

[1233] Specific behavior:

[1234] Load the BERT model and vectorize the summarized text. For example, vectorize the summarized text of "Python Primer" with BERT.

[1235] Step 4: Collect user information

[1236] Users enter their reading history and areas of interest through a dedicated app. The user enters the book title, their impressions, and ratings into the app's input form. The input is the book title, impressions, and ratings, and the output is user information.

[1237] Specific behavior:

[1238] The user inputs "Introduction to Calculus" and their impressions into the app. For example, they might input "Title: Introduction to Calculus, Impression: It was very easy to understand."

[1239] Step 5: Vectorizing user information

[1240] The terminal vectorizes the information entered by the user using a natural language processing model and sends it to the server. The spaCy library is used to vectorize the user's input text. The input is the user's input text, and the output is vector data.

[1241] Specific behavior:

[1242] Use the spaCy model to vectorize the text entered by the user. For example, vectorize the text "Introduction to Calculus" with spaCy and send the vector to the server.

[1243] Step 6: Similarity calculation

[1244] The server calculates the similarity between the user vector and the book vector. It uses cosine similarity or Euclidean distance and uses the scikit-learn library. The input is the user vector and the book vector, and the output is the similarity score.

[1245] Specific behavior:

[1246] Calculate the cosine similarity to calculate the similarity between the user vector and the book vector. For example, calculate the similarity between the user vector of "Introduction to Calculus" and the book vector of "Fundamentals of Linear Algebra."

[1247] Step 7: Generate a recommendation list

[1248] The server assigns scores to books based on the calculated similarities and generates a recommendation list. Books with high scores are added to the list, and books from different genres and themes are included. The input is the similarity scores, and the output is the recommendation list.

[1249] Specific behavior:

[1250] Books with high similarity scores are added to the list, and books with scores above a certain threshold are recorded as recommended books. For example, "Fundamentals of Linear Algebra" has a high score and is added to the recommendation list.

[1251] Step 8: Notification of recommendation results

[1252] The device retrieves the recommendation list from the server and notifies the user. The recommended books and the reasons for their selection are displayed within the app. The input is the recommendation list, and the output is a notification message.

[1253] Specific behavior:

[1254] Make an API request to get a list of recommendations. For example, display a message like "Recommended book for you: 'Introduction to Linear Algebra'" with the reason for the recommendation: "Based on your past reading history."

[1255] (Application example 1)

[1256] Next, a description will be given of Application Example 1. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1257] In today's information-saturated society, it is difficult for users to find appropriate books and papers based on their own interests. There is also a lack of support for users to discover new areas of interest. Therefore, there is a need for a system that effectively recommends the most suitable books and papers for users and provides a means to expand their range of interests. Furthermore, there is a need for a system that can achieve this in a format that is easily accessible on smartphones and other smart devices.

[1258] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 1 is realized by the following means.

[1259] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's reading history and areas of interest, means for vectorizing the acquired user information, means for calculating the similarity between the user's vector and the book's vector, means for scoring books based on the similarity and creating a recommendation list, means for notifying the user of the recommendation list, and means for recommending books of different genres to encourage the user to discover new areas of interest. This enables users to quickly find optimal books and papers based on their own interests and provides opportunities for exploring new areas of interest.

[1260] A "book database" is a collection of data that includes book information such as book titles, authors, summaries, genres, and reviews.

[1261] "Cleansing" is the process of removing unnecessary information from collected data, completing incomplete data, and arranging the data into a consistent format.

[1262] A "natural language processing model" is an artificial intelligence algorithm that analyzes text data and understands its meaning and relevance.

[1263] "Vectorization" means converting the contents of a book and a user's reading history into a numerical format that can be processed by an algorithm.

[1264] "Reading history" is data that includes a record of books and papers that a user has read in the past, as well as their impressions and evaluations.

[1265] The "area of ​​interest" is information related to a genre or theme in which the user is interested.

[1266] "Similarity" is a numerical value that indicates the degree of similarity between two vectors, and is usually calculated using cosine similarity or Euclidean distance.

[1267] "Scoring" is the process of quantifying the degree to which a book's content matches the user's interests.

[1268] A "recommended list" is a list of books and papers recommended to a user based on similarity.

[1269] "Notification" refers to a means of providing information to a user, including push notifications and in-app notifications.

[1270] "Genre" is a category that indicates the classification of a book or paper, such as literature, science, or technology.

[1271] A "theme" is the central topic or subject of a book or paper.

[1272] "User interface" refers to the screens and input forms that allow a user to interact with a system or application.

[1273] "Push notifications" are a way for applications to notify users of new information in real time.

[1274] The present invention is a system for recommending optimal books and papers based on a user's reading history and areas of interest. Specific embodiments of the system are described below.

[1275] The server first collects book information from the book database. This information includes the book title, author, summary, genre, and reviews. This information is obtained using an API. The collected data is then cleansed to extract the necessary information. During this process, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[1276] The extracted summary text is then vectorized using a natural language processing model, such as a Transformer model like Hugging Face, to represent the book content as a numerical vector, which is then used to calculate similarity.

[1277] The device collects the user's reading history and areas of interest through a user interface. The user inputs information about their reading history and areas of interest. This information is vectorized on the device and sent to the server. For example, if a user reads "Introduction to Quantum Mechanics," the information is vectorized using a natural language processing model.

[1278] The server compares the user's vector with the book's vector and calculates the similarity using cosine similarity or Euclidean distance. Based on the calculated similarity, a score is assigned to each book and a recommendation list is created. This recommendation list includes not only books based on the user's interests, but also books in different genres to help the user discover new interests.

[1279] Finally, the device notifies the user of the recommendation list via push notification or in-app notification. This allows the user to check the recommended books and start reading new ones. The reason for the recommendation is also displayed, so the user can understand the criteria used to recommend the books.

[1280] For example, if a user has previously read "Introduction to Quantum Mechanics," the system will recommend related books such as "Introduction to Field Theory" and "Foundations of Statistical Mechanics." It will also include books in different genres, such as "Fiction Literature," to broaden the user's interests. An example prompt might look like this:

[1281] "The user's reading history is the vector 'Introduction to Quantum Mechanics'. Please recommend books that are most similar to this vector. Priority should be given to science-related books."

[1282] In this way, a system is realized that recommends the most suitable books to users and improves their reading experience.

[1283] The flow of the specific processing in the application example 1 will be described with reference to FIG.

[1284] Step 1: Gathering book information

[1285] The server collects book information from a book database using an API, which includes data such as title, author, summary, genre, reviews, etc. The input is the raw book information retrieved from the database, and the output is a set of raw book information.

[1286] Step 2: Data cleansing

[1287] The server cleanses the collected book information and extracts the necessary information. At this stage, data formats are standardized, incomplete data is completed, and unnecessary data is deleted. The input is raw book information, and the output is cleansed, pure book information.

[1288] Step 3: Vectorizing the text

[1289] The server vectorizes the cleansed book summary text using a natural language processing model, such as the Hugging Face Transformer model. The input is the cleansed book summary text, and the output is data representing the content of each book as a numerical vector.

[1290] Step 4: Enter your user information

[1291] The device collects the user's reading history and areas of interest through a user interface. The user inputs the books they have read, their impressions, and their ratings. The input is the reading history and interest information provided by the user, and the output is a representation of this information in a structured data format.

[1292] Step 5: Vectorizing user information

[1293] The terminal vectorizes the information entered by the user using a natural language processing model. When a user reads "Introduction to Quantum Mechanics," the information is vectorized and sent to the server. The input is the interest information entered by the user, and the output is the vectorized reading history information of the user.

[1294] Step 6: Similarity calculation

[1295] The server compares the user vector with the book vector and calculates the similarity using cosine similarity or Euclidean distance. This calculation yields a similarity score with each book. The input is the vectorized user information and book information, and the output is the similarity score with each book.

[1296] Step 7: Scoring and creating a recommendation list

[1297] The server scores books based on the calculated similarity scores and creates a recommendation list, which includes not only high-scoring books but also books from different genres to broaden the user's interests. The input is the similarity scores, and the output is a recommendation list of the best books.

[1298] Step 8: Notification of recommendation list

[1299] The device notifies the user of the recommendation list via push notification or in-app notification. The user can then review the recommended books and start reading. The input is the completed recommendation list, and the output is a notification to the user. This notification includes the titles of the recommended books and the reasons for their recommendations.

[1300] Furthermore, an emotion engine that estimates the user's emotion may be further combined. That is, the identification processing unit 290 may estimate the user's emotion using the emotion identification model 59, and perform identification processing using the user's emotion.

[1301] The present invention is a system that combines vector search technology and an emotion engine to recommend optimal books and papers to users, and an embodiment of the system will be described below in detail.

[1302] Collection and preprocessing of book data

[1303] The server collects book information from existing book databases and online bookstores. Specifically, it obtains information such as book title, author, summary, genre, and reviews via API. The collected data is then cleansed and the necessary information is extracted. At this stage, the data format is standardized, incomplete data is completed, and unnecessary data is deleted.

[1304] The server then vectorizes the extracted summary text using a natural language processing (NLP) model, which expresses the book content as a numerical vector and uses it for subsequent similarity calculations.

[1305] User information collection and vectorization

[1306] Users enter their reading history and areas of interest through a dedicated app. This begins by entering the titles of books they have read, their impressions, and ratings into the app's input form. The device then vectorizes the information entered by the user using a natural language processing model. For example, if a user reads "Introduction to Calculus," this information is vectorized and sent to the server.

[1307] User Emotion Recognition

[1308] The device is equipped with an emotion engine that recognizes the user's emotions in real time. Specifically, the device's camera and microphone are used to analyze the user's emotions from their facial expressions and voice, and the recognized emotion information is expressed as a vector. This allows the user's emotional state, which changes in real time, to be acquired.

[1309] The recognized emotion vector is integrated with vectorized information on the user's reading history and areas of interest, and is sent to the server as the user's overall vector.

[1310] Vector analysis and recommendation

[1311] The server calculates the similarity between the integrated user vector and the book vector. Specifically, it measures the proximity between each vector using cosine similarity or Euclidean distance. Based on the calculated similarity, the server assigns a score to each book.

[1312] The server then adds the books with the highest scores to a recommendation list, and also adds books from different genres and themes with slightly different vectors to broaden the user's interests.

[1313] Notification of recommendation results

[1314] The device notifies the user of the recommendation list received from the server. Specifically, it displays a message in the app such as "Recommended book for you: 'Introduction to Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history and current emotional state."

[1315] For example, if a user has read and expressed interest in "Introduction to Calculus," the system will recommend related books such as "Fundamentals of Linear Algebra" and "Basic Statistics." Furthermore, if the user is in a relaxed emotional state, the system will also recommend fiction that is likely to have a relaxing effect. This allows users to find books that best suit their emotional state, significantly improving their reading experience.

[1316] Finally, the server continuously updates the recommendation list, providing highly accurate recommendations as new user and emotional information is added. This system allows users to quickly find the best literature tailored to their interests and emotional state.

[1317] The processing flow will be explained below.

[1318] Step 1:

[1319] The server collects book information from book databases and APIs of online bookstores. Specifically, it sends a request to the API to obtain information such as the book title, author, summary, genre, and reviews.

[1320] Step 2:

[1321] The server cleanses the collected book information and extracts the necessary information, specifically by standardizing the data format, completing incomplete data, and deleting unnecessary data.

[1322] Step 3:

[1323] The server vectorizes the summary text using a natural language processing (NLP) model. Specifically, the book summary is input into the NLP model and converted into a multidimensional numerical vector.

[1324] Step 4:

[1325] Users enter their reading history and areas of interest through a dedicated app, and then enter the titles of books they have read, their impressions, ratings, etc. into the app's input form.

[1326] Step 5:

[1327] The device vectorizes the user's input information using a natural language processing model. Specifically, the text data entered by the user is input into the NLP model and converted into a multidimensional numerical vector.

[1328] Step 6:

[1329] The device uses a built-in emotion engine to recognize the user's emotions in real time, specifically by analyzing the user's facial expressions and voice through a camera and microphone to detect their emotional state.

[1330] Step 7:

[1331] The device expresses the emotion information recognized by the emotion engine as a vector. Specifically, the detected emotion data is converted into a multidimensional numerical vector.

[1332] Step 8:

[1333] The device integrates the vectorized emotion information with the user's past reading history and interest area vector information, thereby generating a comprehensive user vector.

[1334] Step 9:

[1335] The terminal transmits the integrated total vector of the user to the server.

[1336] Step 10:

[1337] The server calculates the similarity between the user's overall vector and the book's vector. Specifically, it measures the proximity between each vector using cosine similarity or Euclidean distance.

[1338] Step 11:

[1339] The server assigns a score to each book based on the calculated similarity, with books with higher scores being deemed more relevant to the user.

[1340] Step 12:

[1341] The server adds books with high scores to the recommendation list, and also adds books from different genres or themes with slightly different vectors to the list in order to broaden the user's interests.

[1342] Step 13:

[1343] The server transmits the generated recommendation list to the terminal.

[1344] Step 14:

[1345] The device will notify the user of the received recommendation list, specifically by displaying a message within the app such as "Recommended book for you: 'Introduction to Linear Algebra'."

[1346] Step 15:

[1347] The device provides the user with a detailed explanation of the reason for the recommendation, such as "based on your past reading history and current emotional state."

[1348] Example 2

[1349] Next, a description will be given of Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1350] Conventional book recommendation systems simply recommend books based on a user's past reading history and areas of interest, and often do not take the user's emotional state into consideration. This has led to the problem of not recommending books that match the user's current emotions. Furthermore, there has been an issue where the book content itself is not sufficiently vectorized, making it difficult for the deeper themes and meanings of the book to be reflected in the user's recommendations.

[1351] The specific processing by the specific processing unit 290 of the data processing device 12 in the second embodiment is realized by the following means.

[1352] In this invention, the server includes a means for collecting information from a book database, a means for formatting the collected information and extracting necessary information, and a means for vectorizing the book summary text using a natural language processing model, so that the contents of the book can be expressed as a numerical vector and used for subsequent similarity calculations.

[1353] The system also includes a means for acquiring a user's reading history and areas of interest, a means for vectorizing the acquired user information using a natural language processing model, a means for recognizing the user's emotional information using an emotion engine of the device and expressing it as a vector, and a means for integrating the user's emotional information and reading information to generate an integrated vector. This enables the integration and vectorization of the user's emotional state and reading history, enabling appropriate recommendations that adapt to changing situations in real time.

[1354] The system further includes a means for calculating the similarity between the user's integrated vector and the book's vector, a means for scoring the books based on the calculated similarity and creating a recommendation list, and a means for notifying the user of the recommendation list, thereby realizing accurate recommendations based on highly accurate similarity calculation and scoring.

[1355] A "book database" is a database that aggregates information about books, such as titles, authors, summaries, genres, and reviews.

[1356] "Means of collecting information" refers to the technology used to obtain the necessary book information from book databases and online bookstores using APIs.

[1357] "Means of formatting information" refers to techniques for cleansing collected data, supplementing incomplete data, standardizing formats, and extracting necessary information.

[1358] A "natural language processing model" is a machine learning model for analyzing text data and understanding its meaning, and is capable of representing sentences as numerical vectors. Examples include BERT and GPT.

[1359] "User reading history" refers to information such as the titles, impressions, and ratings of books that the user has read in the past.

[1360] "Area of ​​interest" refers to a field or topic in which a user is particularly interested.

[1361] "Vectorization means" is a technology that converts text information into a numerical vector using a natural language processing model.

[1362] The "emotion engine" is a system that uses a camera and microphone to recognize emotions from a user's facial expressions and voice in real time and expresses them as numerical vectors.

[1363] The "means for generating an integrated vector" is a technology for integrating a user's emotional information, reading history, and areas of interest into a single vector.

[1364] The "means for calculating similarity" is a technology that measures the distance and angle between the user's integrated vector and the book's vector and calculates their similarity, and the calculation is performed using cosine similarity or Euclidean distance.

[1365] The "scoring method" is a technology that assigns a score to each book based on the calculated similarity and creates a highly accurate recommendation list.

[1366] The "means for creating a recommendation list" is a technology that compiles a list of books that are most suitable for the user based on the scoring results.

[1367] The "notification means" refers to a technique for notifying the user of the created recommendation list through an application or other interface.

[1368] The present invention is a system that combines vector search technology and an emotion engine to recommend the most suitable books and papers to a user. An embodiment of this system will be specifically described below.

[1369] Collection and preprocessing of book data

[1370] The server collects book information from existing book databases and online bookstores. Specifically, it obtains information such as book titles, authors, summaries, genres, and reviews through APIs. For example, it uses a book database API or an online bookstore API. The server cleanses the collected data, standardizing formats, completing incomplete data, and deleting unnecessary data.

[1371] The server then uses a natural language processing (NLP) model to vectorize the book summary text. Specifically, it uses BERT (Bidirectional Encoder Representations from Transformers) from the Transformers library to convert the book summary into a numerical vector. This allows the book content to be represented as a numerical vector, which is then used in the similarity calculation.

[1372] User information collection and vectorization

[1373] Users use a dedicated app to input their reading history and areas of interest. They enter the titles of books they have read, their impressions, and ratings in the app's input form. For example, if a user has read "Introduction to Calculus," they would enter this information. The device then vectorizes the information entered by the user using a natural language processing model (e.g., spaCy) and sends it to the server.

[1374] User Emotion Recognition

[1375] The device is equipped with an emotion engine that uses a camera and microphone to recognize emotions in real time from the user's facial expressions and voice. This emotion engine uses facial recognition APIs and voice analysis APIs (e.g., Google Cloud Speech-to-Text API and Face API). The recognized emotion information is expressed as a vector and integrated with vectorized information on reading history and areas of interest.

[1376] Vector analysis and recommendation

[1377] The server calculates the similarity between the user's integrated vector and the book's vector. Specifically, it calculates the cosine similarity and Euclidean distance between the user's vector and the book's vector using the Scikit-learn library. Based on the calculated similarity, it assigns a score to each book.

[1378] Next, we add books with high scores to the recommendation list, and also include books in genres or themes with slightly different vectors to broaden the user's interest areas.

[1379] Notification of recommendation results

[1380] The device notifies the user of the recommendation list received from the server. Specifically, the app displays a message such as "Recommended book for you: 'Fundamentals of Linear Algebra'." It also provides a detailed explanation of the reason for the recommendation, such as "Based on your past reading history and current emotional state." For example, if a user has read and expressed interest in "Introduction to Calculus," the system will recommend related books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics." Furthermore, if the user is in a relaxed emotional state, the system will also recommend fiction that is expected to have a relaxing effect.

[1381] Specific examples

[1382] For example, a user might input the following prompt into a generative AI model:

[1383] Prompt statement:

[1384] "I've recently become interested in mathematics. The last book I read was Introduction to Calculus. Please provide me with more math books and relaxing reading experiences like this one."

[1385] Based on this prompt, the system can recommend related books such as "Fundamentals of Linear Algebra" and "Fundamentals of Statistics," and can also suggest fictional works that may have a relaxing effect based on the user's emotional state.

[1386] As described above, the present invention allows a user to quickly find a book that best suits his / her interests and emotional state, thereby improving the user's reading experience.

[1387] The flow of the identification process in the second embodiment will be described with reference to FIG.

[1388] Step 1:

[1389] Book data collection

[1390] The server collects book information from a book database or online bookstore. Specifically, it sends an API request to obtain information such as title, author, summary, genre, and reviews. For example, it uses the "Book Database API" or "Online Bookstore API" to obtain data in JSON format.

[1391] Input: API URL and query parameters

[1392] Output: JSON data of book information

[1393] Step 2:

[1394] Data Cleansing

[1395] The server parses the received JSON data and converts it into a data frame using the Pandas library. It then performs missing value imputation, removes unnecessary data, and standardizes the data format. For example, it imputes incomplete data and removes unnecessary columns.

[1396] Input: JSON data of book information

[1397] Output: Cleansed data frame

[1398] Step 3:

[1399] Vectorization

[1400] The server converts the book summary text into a numerical vector using the natural language processing (NLP) model BERT. Specifically, the BERT model inputs the summary text and generates a corresponding output vector.

[1401] Input: Book summary text (column of data frame)

[1402] Output: A vector of summary text

[1403] Step 4:

[1404] Entering user information

[1405] The user launches the app and fills in a form with the titles, impressions, and ratings of books they have read in the past. For example, they can write that they have read "Introduction to Calculus."

[1406] Input: Reading history and ratings entered by the user

[1407] Output: User information entered

[1408] Step 5:

[1409] Vectorization of user information

[1410] The terminal vectorizes the text information entered by the user using a natural language processing model (e.g., spaCy) and sends the information to the server.

[1411] Input: Reading history and ratings entered by the user

[1412] Output: Vectorized user information

[1413] Step 6:

[1414] Emotion recognition

[1415] The device uses an emotion engine to recognize emotions in real time from the user's facial expressions and voice via a camera and microphone, specifically using facial recognition APIs and voice analysis APIs.

[1416] Input: User's facial expression and voice data

[1417] Output: Real-time recognized emotion information

[1418] Step 7:

[1419] Vectorization of emotional information

[1420] The device represents the recognized emotion information as a vector and integrates it with the vectorized information of reading history and areas of interest.

[1421] Input: Recognized emotion information

[1422] Output: Vectorized emotion information

[1423] Step 8:

[1424] Generating the integrated vector

[1425] The device integrates the user's emotional information with the reading history and interest area vectors and sends them all together to the server.

[1426] Input: Vectorized emotion information, reading history, and interest areas

[1427] Output: Integrated user vector

[1428] Step 9:

[1429] Similarity calculation

[1430] The server calculates the similarity between the integrated vector and the book vector, specifically, cosine similarity and Euclidean distance using the Scikit-learn library.

[1431] Input: merged user vector and book vector

[1432] Output: Similarity score between vectors

[1433] Step 10:

[1434] Scoring

[1435] The server assigns a score to each book based on the calculated similarity, and books with high scores are added to the recommendation list, including books with slightly different vectors to broaden the user's interests.

[1436] Input: Similarity score between vectors

[1437] Output: Recommendation list

[1438] Step 11:

[1439] Notification of recommendation results

[1440] The device notifies the user of the recommendation list received from the server. Specifically, the device displays a message in the app such as "Recommended book for you: 'Fundamentals of Linear Algebra'" and provides the reason for the recommendation.

[1441] Input: Recommendation list and reasons for recommendation

[1442] Output: The recommendation message that is displayed to the user

[1443] This will help to recommend the most suitable books based on the user's emotional state and reading history, greatly improving the reading experience.

[1444] (Application example 2)

[1445] Next, a description will be given of Application Example 2. In the following description, the data processing device 12 will be referred to as a "server" and the robot 414 will be referred to as a "terminal."

[1446] Conventional online shopping sites typically recommend products based on a user's past purchase history and reviews, but it is difficult to recommend products that take into account the user's emotional state. Furthermore, recommendations that broaden the user's areas of interest are not adequately implemented. This makes it difficult for users to find the perfect product. This results in a suboptimal user shopping experience.

[1447] The specific processing by the specific processing unit 290 of the data processing device 12 in the application example 2 is realized by the following means.

[1448] In this invention, the server includes means for collecting book information from a book database, means for cleansing the collected book information and extracting necessary information, means for vectorizing book summary text using a natural language processing model, means for acquiring a user's purchase history and review history, means for vectorizing the acquired user information, means for recognizing and vectorizing the user's emotional state in real time, means for calculating the similarity between the user vector and the product information vector, means for scoring products based on the similarity and creating a recommendation list, and means for notifying the user of the recommendation list. This makes it possible to recommend products that are optimal for the user based on comprehensive data including the user's emotional state and purchase history.

[1449] A "book database" is a collection of data that includes information about books, such as titles, authors, summaries, genres, and reviews.

[1450] "Means of collection" are the technical methods and tools used to obtain information from existing book databases and online stores.

[1451] "Cleansing" is the process of extracting necessary information from collected data, completing incomplete data, and deleting unnecessary data.

[1452] "Natural language processing model" is a general term for computational methods and algorithms for analyzing and understanding language that humans naturally use.

[1453] "Vectorization" is the process of representing text or other information as numerical vectors, making them easier to use in subsequent calculations.

[1454] "Purchase history" is a record of products that a user has purchased in the past and related information.

[1455] "Review history" is a record of product ratings and impressions posted by users in the past.

[1456] "Emotional state" refers to the emotion the user is currently feeling, and is extracted in real time from facial expressions, voice, etc.

[1457] A "means for calculating similarity" is a method or algorithm for calculating the similarity between two vectors.

[1458] "Scoring" is the process of assigning a score to an object (in this case, a product) based on the degree of similarity.

[1459] A "recommended list" is a list of products, books, etc. that are recommended to a user.

[1460] "Means of notification" refers to the method or means for informing users of recommended information or lists.

[1461] This invention is a system for recommending products based on a user's purchase history, review history, and real-time emotional state. As a specific embodiment, this invention uses the following hardware and software.

[1462] Hardware and Software

[1463] 1. Server:

[1464] Book information is collected from book databases and online stores, and then cleansed to extract the necessary information.

[1465] Vectorize the book summary text using a natural language processing model (NLP model).

[1466] A similarity calculation engine is used to calculate the similarity between the user vector and the book vector, and create a recommendation list.

[1467] 2. Terminal:

[1468] Smartphones are used as the main device, and users' purchase history and review history are obtained through an input form and vectorized.

[1469] Using a camera and microphone, the system analyzes the user's facial expressions and voice, recognizing and vectorizing their emotional state in real time.

[1470] It has a built-in emotion engine that analyzes the user's emotional state in real time.

[1471] System Operation

[1472] The device first collects the user's purchase history and review history and converts them into vectors. Next, it uses a camera and microphone to recognize the user's emotional state in real time and captures this as a vector. The acquired user information and emotional vector are then sent to the server.

[1473] The server integrates this information to generate a comprehensive user vector and calculates the similarity between this vector and the book information vector. In particular, it uses methods such as cosine similarity and Euclidean distance to evaluate the vector of the product that the user has shown interest in in the past and the vector of the product that best matches their current emotional state.

[1474] Based on the results of the similarity calculation, books with high scores are added to a recommendation list and notified to the user via push notifications or in-app notifications.

[1475] Specific examples

[1476] For example, if a user has previously purchased a gadget-related product such as a "smartphone case" and is in a relaxed emotional state, the system can recommend related products such as a "relaxing cushion." In this way, real-time recommendations based on the user's emotional state and purchase history can be realized.

[1477] Examples of prompt statements used:

[1478] Since the user has previously purchased gadget-related products such as "smartphone cases," we would like to recommend products in this category. If the user's current emotion is relaxed, we would like to consider "cushions that are easy to relax in" as a vector of related products that help them relax.

[1479] This invention makes it possible to recommend products that reflect the user's emotional state and purchase history in real time, providing a more comfortable shopping experience.

[1480] The flow of the specific processing in the application example 2 will be described with reference to FIG.

[1481] Step 1:

[1482] The user starts up the device and inputs their purchase history and review history, including specific product names and their impressions of the purchase. The input information is converted into a numerical vector using an NLP model. The input data is the text of the purchase history and reviews, and the output data is in the form of vectorized purchase history and reviews.

[1483] Step 2:

[1484] The device's camera and microphone are used to analyze the user's facial expressions and voice in real time. The emotion engine recognizes facial expressions and voice analysis to recognize the user's emotional state and captures it in vector format. The input data is real-time video and audio, and the output data is emotion vectors.

[1485] Step 3:

[1486] The terminal sends the vectorized purchase history, review, and emotion vector to the server. The server receives this data and generates a comprehensive user vector. Specifically, it calculates a weighted average of the purchase history vector and emotion vector. The input data are the purchase history vector, review vector, and emotion vector, and the output data is the comprehensive user vector.

[1487] Step 4:

[1488] The server re-vectorizes the information in the book database it holds using an NLP model and generates a vector list of books. The input data is the text information in the book database, and the output data is the vectorized book information.

[1489] Step 5:

[1490] The server calculates the similarity between the user vector and the book vector. Specifically, it calculates the similarity using cosine similarity or Euclidean distance. The input data is the user vector and the book vector, and the output data is the similarity score.

[1491] Step 6:

[1492] The server scores books based on the calculated similarity scores and generates a recommendation list. Books with high scores are added to the list preferentially, and books from different genres are also added to broaden the user's interests. The input data is the similarity scores, and the output data is the recommendation list.

[1493] Step 7:

[1494] The server sends the generated recommendation list to the device. The device notifies the user of the recommended book information. Notification methods include push notifications and in-app notifications. The input data is the recommendation list, and the output data is the notification message.

[1495] Step 8:

[1496] Users receive a notification and can view detailed book recommendations within the app, including specific reasons for the recommendations based on their past purchase history and emotional state. The input data is the recommendation list, and the output data is user feedback.

[1497] This allows users to enjoy a pleasant shopping experience by receiving recommendations for books and products that are most suitable for them based on their past purchase history and current emotional state.

[1498] 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 control target 443 to output the result of the specific processing. The microphone 238 acquires voice indicating a user input regarding the result of the specific processing. The control unit 46A transmits voice data indicating the user input acquired by the microphone 238 to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the voice data.

[1499] The data generation model 58 is a so-called generative AI (Artificial Intelligence). An example of the data generation model 58 is ChatGPT (Internet Search<URL: https: / / openai.com / blog / chatgpt> ), Gemini (Internet search <url: https: gemini.google.com ?hl="ja">) and other generation AIs. The data generation model 58 is obtained by performing deep learning on a neural network. A prompt including an instruction is input to the data generation model 58, and inference data such as voice data indicating voice, text data indicating text, and image data indicating an image is also input. The data generation model 58 performs inference on the input inference data in accordance with the instruction indicated by the prompt, and outputs the inference result in a data format such as voice data and text data. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization.

[1500] 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 the present disclosure is not limited to this, and the specific processing may be performed by the robot 414.

[1501] The emotion identification model 59 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 an emotion map (see FIG. 9), which is a specific mapping. Similarly, the emotion identification model 59 may determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.

[1502] FIG. 9 is a diagram illustrating an emotion map 400 on which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. Emotions closer to the center of the concentric circles are more primitive. Emotions representing states and actions arising from a state of mind are arranged on the outer edges of the concentric circles. The concept of emotion includes both affect and mental states. Emotions generally generated from reactions occurring in the brain are arranged on the left side of the concentric circles. Emotions generally induced by situational judgment are arranged on the right side of the concentric circles. Emotions generally generated from reactions occurring in the brain and induced by situational judgment are arranged on the upper and lower sides of the concentric circles. Furthermore, the emotion of "pleasure" is arranged on the upper side of the concentric circles, and the emotion of "discomfort" is arranged on the lower side. In this way, in the emotion map 400, multiple emotions are mapped based on the structure by which emotions are generated, and emotions that tend to occur simultaneously are mapped close to each other.

[1503] These emotions are distributed in the 3 o'clock direction on emotion map 400, and typically fluctuate between relief and anxiety. In the right half of emotion map 400, situational awareness dominates over internal sensations, resulting in a sense of calm.

[1504] The inside of emotion map 400 represents what is going on in the mind, and the outside of emotion map 400 represents behavior, so the further you go outside emotion map 400, the more visible the emotions become (the more they are expressed in behavior).

[1505] Human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. Emotions can also be created for robots, automobiles, and motorcycles, based on various balances, such as posture and remaining battery life. When these balances deviate from the ideal, a state of discomfort is indicated, and when they approach the ideal, a state of pleasure is indicated. An emotion map can be generated, for example, based on Dr. Mitsuyoshi's emotion map (Research on Voice Emotion Recognition and Emotional Brain Physiological Signal Analysis Systems, Tokushima University, Doctoral Dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map lists emotions belonging to the "reaction" domain, where sensation is dominant. The right half of the emotion map lists emotions belonging to the "situation" domain, where situational awareness is dominant.

[1506] The emotion map defines two emotions that promote learning. One is a negative emotion on the situation side, around the middle of "repentance" or "reflection." In other words, this occurs 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 a positive emotion on the response side, around "desire." In other words, this occurs when the robot experiences positive feelings such as "I want more" or "I want to know more."

[1507] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values ​​indicating each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple pieces of training data that are combinations of user input and emotion values ​​indicating each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions that are located close to each other have similar values, as in the emotion map 900 shown in FIG. 10. FIG. 10 shows an example in which multiple emotions, "relieved," "calm," and "reassuring," have similar emotion values.

[1508] The system according to the present disclosure has been described above mainly with respect to the functions of the data processing device 12, but the system according to the present disclosure is not necessarily implemented on a server. The system according to the present disclosure may be implemented as a general information processing system. The present disclosure may be implemented, for example, as a software program running on a personal computer or an application running on a smartphone, etc. The method according to the present disclosure may be provided to users in the form of SaaS (Software as a Service).

[1509] In the above embodiment, an example was given in which the specific processing is performed by one computer 22, but the technology of the present disclosure is not limited to this, and the specific processing may be distributed and performed by a plurality of computers including the computer 22. For example, the data generation model 58 may be provided in an external device of the data processing device 12, and data may be generated in the external device in accordance with input data.

[1510] In the above embodiment, an example in which the specific processing program 56 is stored in the storage 32 has been described, but the technology of the present disclosure is not limited to this. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-transitory storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-transitory storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes the specific processing in accordance with the specific processing program 56.

[1511] 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.

[1512] It is not necessary to store all 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 all of the specific processing program 56 in the storage 32; only a portion of the specific processing program 56 may be stored.

[1513] The hardware resource for executing a specific process can be any of the following processors: An example of a processor is a CPU, which is a general-purpose processor that functions as a hardware resource for executing a specific process by executing software, i.e., a program. Another example of a processor is a dedicated electrical circuit, such as an FPGA (Field-Programmable Gate Array), a PLD (Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit), which is a processor with a circuit configuration designed specifically for executing a specific process. Each processor has built-in or connected memory, and each processor uses the memory to execute the specific process.

[1514] The hardware resource that executes the specific processing may be configured with one of these various processors, or may be configured with 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). Also, the hardware resource that executes the specific processing may be a single processor.

[1515] As an example of a system configured with a single processor, first, one processor is configured by combining one or more CPUs and software, and this processor functions as a hardware resource that executes a specific process. Second, there is a system that uses a processor that realizes the functions of an entire system including multiple hardware resources that execute a specific process on a single IC chip, as typified by SoC (System-on-a-chip). In this way, a specific process is realized using one or more of the above-mentioned various processors as hardware resources.

[1516] Furthermore, the hardware structure of these various processors can be, more specifically, an electric circuit that combines circuit elements such as semiconductor devices. The specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps may be deleted, new steps may be added, or the processing order may be rearranged, without departing from the spirit of the invention.

[1517] The above-described description and illustrations are a detailed explanation of the parts related to the technology of the present disclosure and are merely an example of the technology of the present disclosure. For example, the above description of the configuration, functions, actions, and effects is an explanation of an example of the configuration, functions, actions, and effects of the parts related to the technology of the present disclosure. Therefore, it goes without saying that unnecessary parts may be deleted, new elements may be added, or replacements may be made to the above-described description and illustrations within the scope of the gist of the technology of the present disclosure. Furthermore, to avoid confusion and facilitate understanding of the parts related to the technology of the present disclosure, the above-described description and illustrations omit explanations of common technical knowledge that do not require particular explanation to enable the implementation of the technology of the present disclosure.

[1518] All publications, patent applications, and technical standards mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent application, or technical standard was specifically and individually indicated to be incorporated by reference.

[1519] The following is further disclosed regarding the above embodiment.

[1520] (Claim 1)

[1521] a means for collecting book information from a book database;

[1522] A means to cleanse the collected book information and extract the necessary information;

[1523] A means for vectorizing the book summary text using a natural language processing model;

[1524] A means for acquiring a user's reading history and areas of interest;

[1525] A means for vectorizing the acquired user information;

[1526] A means for calculating the similarity between a user vector and a book vector;

[1527] a means for scoring books based on similarity and generating a recommendation list;

[1528] means for notifying a user of the recommendation list;

[1529] A system including:

[1530] (Claim 2)

[1531] A means for adding books with high scores based on the calculated similarity to a recommendation list;

[1532] Provide a way to add books of different genres and themes to the recommendation list to broaden the user's interests.

[1533] 10. The system of claim 1.

[1534] (Claim 3)

[1535] This includes using natural language processing models to analyze the deep themes and meanings of books, converting them into vectors, and reflecting them in user recommendations.

[1536] 10. The system of claim 1.

[1537] "Example 1"

[1538] (Claim 1)

[1539] a means for collecting book information from a book database;

[1540] A means to cleanse the collected book information and extract the necessary information;

[1541] A means for vectorizing the book summary text using a natural language processing model;

[1542] A means for acquiring a user's reading history and areas of interest;

[1543] A means for vectorizing the acquired user information;

[1544] A means for calculating the similarity between a user vector and a book vector;

[1545] a means for scoring books based on similarity and generating a recommendation list;

[1546] means for notifying a user of the recommendation list;

[1547] A system including:

[1548] (Claim 2)

[1549] A means for adding books with high scores based on the calculated similarity to a recommendation list;

[1550] Provide a way to add books of different genres and themes to the recommendation list to broaden the user's interests.

[1551] 10. The system of claim 1.

[1552] (Claim 3)

[1553] A method to analyze the deep themes and meanings of books using natural language processing models, convert them into vectors, and reflect them in user recommendations.

[1554] including means for utilizing a user-entered reading history;

[1555] 10. The system of claim 1.

[1556] "Application Example 1"

[1557] (Claim 1)

[1558] a means for collecting book information from a book database;

[1559] A means to cleanse the collected book information and extract the necessary information;

[1560] A means for vectorizing the book summary text using a natural language processing model;

[1561] A means for acquiring a user's reading history and areas of interest;

[1562] A means for vectorizing the acquired user information;

[1563] A means for calculating the similarity between a user vector and a book vector;

[1564] a means for scoring books based on similarity and generating a recommendation list;

[1565] means for notifying a user of the recommendation list;

[1566] A means of recommending books in different genres to encourage users to discover new areas of interest;

[1567] A system including:

[1568] (Claim 2)

[1569] A means for adding books with high scores based on the calculated similarity to a recommendation list;

[1570] Provide a way to add books of different genres and themes to the recommendation list to broaden the user's interests.

[1571] 10. The system of claim 1.

[1572] (Claim 3)

[1573] This includes using natural language processing models to analyze the deep themes and meanings of books, converting them into vectors, and reflecting them in user recommendations.

[1574] 10. The system of claim 1.

[1575] (Claim 4)

[1576] means for inputting interest information through a user interface;

[1577] Including means to present recommendations to users via push notifications or in-app notifications,

[1578] 10. The system of claim 1.

[1579] "Example 2: Combining Emotion Engines"

[1580] (Claim 1)

[1581] a means of collecting information from book databases;

[1582] A means of formatting the collected information and extracting the necessary information;

[1583] A means for vectorizing the book summary text using a natural language processing model;

[1584] A means for acquiring a user's reading history and areas of interest;

[1585] A means for vectorizing the acquired user information using a natural language processing model;

[1586] A means for recognizing user emotion information using an emotion engine of the device and expressing the information as a vector;

[1587] A means for integrating the user's emotional information and reading information to generate an integrated vector;

[1588] A means for calculating the similarity between the integrated vector of the user and the vector of the book;

[1589] a means for scoring books based on the calculated similarity and generating a recommendation list;

[1590] means for notifying a user of the recommendation list;

[1591] A system including:

[1592] (Claim 2)

[1593] A means for adding books with high scores based on the calculated similarity to a recommendation list;

[1594] Provide a way to add books of different genres and themes to the recommendation list to broaden the user's interests.

[1595] 10. The system of claim 1.

[1596] (Claim 3)

[1597] This includes using natural language processing models to analyze the deep themes and meanings of books, converting them into vectors, and reflecting them in user recommendations.

[1598] 10. The system of claim 1.

[1599] "Application example 2 when combining emotion engines"

[1600] (Claim 1)

[1601] a means for collecting book information from a book database;

[1602] A means to cleanse the collected book information and extract the necessary information;

[1603] A means for vectorizing the book summary text using a natural language processing model;

[1604] A means for obtaining a user's purchase history and review history;

[1605] A means for vectorizing the acquired user information;

[1606] a means for recognizing and vectorizing the user's emotional state in real time;

[1607] A means for calculating a similarity between a user vector and a product information vector;

[1608] A means for scoring products based on similarity and creating a recommendation list;

[1609] means for notifying a user of the recommendation list;

[1610] A system including:

[1611] (Claim 2)

[1612] A means for adding products with high scores based on the calculated similarity to a recommendation list;

[1613] It also has a means to add vectors of products from different genres to the recommendation list in order to broaden the user's areas of interest.

[1614] 10. The system of claim 1.

[1615] (Claim 3)

[1616] This includes using natural language processing models to analyze the deeper themes and meanings of product description text, vectorizing them, and reflecting them in user recommendations.

[1617] 10. The system of claim 1. [Explanation of symbols]

[1618] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Device 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robot< / url:> < / url:> < / url:> < / url:>

Claims

1. a means for collecting book information from a book database; A means to cleanse the collected book information and extract the necessary information; A means for vectorizing the book summary text using a natural language processing model; A means for acquiring a user's reading history and areas of interest; A means for vectorizing the acquired user information; A means for calculating the similarity between a user vector and a book vector; a means for scoring books based on similarity and generating a recommendation list; means for notifying a user of the recommendation list; A system including:

2. A means for adding books with high scores based on the calculated similarity to a recommendation list; Provide a way to add books of different genres and themes to the recommendation list to broaden the user's interests. The system of claim 1 .

3. This includes using natural language processing models to analyze the deep themes and meanings of books, converting them into vectors, and reflecting them in user recommendations. The system of claim 1 .

Citation Information

Patent Citations

  • Persona chatbot control method and system

    JP2022180282A