Personalized autonomous spreadsheet
By using natural language processing to autonomously generate and update personalized documents with tabular structures, the system addresses inefficiencies in manual data entry, enhancing accuracy and reducing resource consumption.
Patent Information
- Application Number
- JP2024518729
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-09-24
- Filing Date
- 2022-09-23
- Publication Date
- 2025-07-30
- Estimated Expiration
- 2042-09-23
AI Technical Summary
Existing electronic documents with tabular structures, such as spreadsheets, require manual data entry, which is prone to human error and inefficient in terms of time and computing resources, especially when deriving values from other cells.
A system that utilizes natural language processing to autonomously create personalized documents with tabular structures by obtaining data from external sources, including subjective and objective data sources, and automatically inputting data into cells based on user queries, thereby reducing human error and resource consumption.
Automated data entry in personalized documents reduces human errors and minimizes time and computing resources required, optimizing content updates and improving computational efficiency.
Smart Images

Figure 0007715936000002 
Figure 0007715936000003 
Figure 0007715936000004
Abstract
Description
[Technical Field]
[0001] Aspects and embodiments of the present disclosure relate generally to electronic documents, and more particularly to personalized, autonomous documents having a tabular structure. [Background technology]
[0002] An electronic document (hereinafter, "document") can have a tabular structure containing multiple cells. Such documents are sometimes referred to as "data tables" or simply "tables." Each cell corresponds to an area for entering data in a particular format (e.g., numerical or textual data), and the document can be used to organize, analyze, and / or store the entered data. Each cell can contain non-numeric data input, a formula that assigns a value to the cell, or can be left empty. A formula can include numeric values, references to the values of one or more cells in a spreadsheet, arithmetic operators, relational operators, functions, etc. Additionally, a document can support programming functions. For example, a cell can be derived from one or more other cells in the document. In some implementations, the document can be a spreadsheet. Cells in a spreadsheet can be arranged as an array containing multiple rows and multiple columns, and a particular cell in the spreadsheet can be addressed or referenced relative to its column position in the table and its row position in the table. In some examples, columns are represented by letters (e.g., column A, column B, ...) and rows are represented by numbers (e.g., row 1, row 2, ...). For example, the cell in column D, row 5 can be referenced as cell D5. Summary of the Invention
[0003] The following summary is a simplified overview of the present disclosure to provide a basic understanding of some aspects of the present disclosure. This summary is not an extensive overview of the present disclosure. It is not intended to identify key or critical elements of the disclosure or to delineate the scope of particular embodiments of the disclosure or the scope of the claims. Its sole purpose is to present some concepts of the present disclosure in a simplified form as a prelude to the more detailed description that is presented later.
[0004] In some embodiments, systems and methods are disclosed. In one embodiment, the system includes a memory device and a processing device coupled to the memory device. The processing device is configured to receive a natural language query corresponding to a request to create a personalized document having a tabular structure for a user from a client device associated with the user, determine one or more attribute categories related to the personalized document, identify at least one external data source including at least one subjective data source related to the user, obtain a plurality of data items indicating the one or more attribute categories from the at least one external data source, and generate a personalized document for the user by inputting each of the plurality of data items into a respective cell of a plurality of cells of the personalized document.
[0005] In some embodiments, one or more attribute categories include a primary attribute category corresponding to one or more cells in which one or more primary attributes are input, and a secondary attribute category corresponding to one or more cells in which one or more secondary attributes are input. In some embodiments, at least one external data source further includes an objective data source, and obtaining a plurality of data items from at least one external data source includes obtaining one or more data items corresponding to one or more primary attributes from at least one subjective data source, where at least one subjective data source has content related to a user or a user group associated with the user, and obtaining one or more data items corresponding to one or more secondary attributes from the objective data source.
[0006] In some embodiments, the operation further includes identifying a change in user activity and generating a new version of the personalized document, where the new version includes content that reflects the change in user activity, and the content is related to the user or a user group associated with the user.
[0007] In some embodiments, the operation further includes obtaining one or more additional data items from at least one external data source and updating the personalized document based on the one or more additional data items. In some embodiments, obtaining one or more additional data items further includes receiving an additional natural language query and obtaining one or more additional data items in response to receiving the additional natural language query. In some embodiments, obtaining one or more additional data items further includes identifying a user's interest in new relevant data for the personalized document, determining that the new relevant data has been added to at least one external data source, and obtaining the new relevant data from at least one external data source.
[0008] In another embodiment, the system includes a memory device and a processing device coupled to the memory device. The processing device is configured to receive a plurality of natural language queries from a user, determine that each natural language query of the plurality of natural language queries is associated with a similar topic, send a recommendation to the user to create a personalized document having a tabular structure based on the plurality of natural language queries, and generate a personalized document in response to receiving an instruction to create the personalized document from the user.
[0009] In some embodiments, generating the personalized document includes identifying one or more attribute categories associated with the personalized document, obtaining a plurality of data items corresponding to the one or more attribute categories from at least one external data source, and generating the personalized document by entering each of the plurality of data items into a respective cell of a plurality of cells of the personalized document.
[0010] In some embodiments, the at least one external data source includes a subjective data source and an objective data source.
[0011] In some embodiments, the operations further include obtaining one or more additional data items from at least one external data source and updating the personalized document based on the one or more additional data items. In some embodiments, obtaining the one or more additional data items further includes receiving an additional natural language query and obtaining the one or more additional data items in response to receiving the additional natural language query. In some embodiments, obtaining the one or more additional data items further includes identifying the user's interest in new relevant data for the personalized document, determining that the new relevant data has been added to at least one external data source, and obtaining the new relevant data from at least one external data source.
[0012] Aspects and embodiments of the present disclosure will be more fully understood from the following detailed description and the accompanying drawings of various aspects and embodiments of the present disclosure, but these drawings are not intended to limit the present disclosure to specific aspects or embodiments and are for illustrative and understanding purposes only.
Brief Description of the Drawings
[0013]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Modes for Carrying Out the Invention
[0014] Aspects of the present disclosure relate to personalized autonomous electronic documents having a tabular structure. One of the challenges in creating an electronic document (a “document”) having a tabular structure (e.g., a spreadsheet) is entering data into the document. As an example, the following portion of a spreadsheet including columns A-I and rows 1-3 is shown in Table 1.
Table 1
[0015] Table 1 is a part of a spreadsheet that organizes data related to a set of books. This set of books includes "ABC" by John Doe, "XYZ" by Jane Doe, and the attributes of each book in the set of books. Specifically, each cell in column A defines the name of a book, each cell in column B defines the author of the book defined by the cell in column A in the same row, each cell in column C defines the first publication date of the book defined by the cell in column A in the same row, each cell in column D defines the latest publication date of the book defined by the cell in column A in the same row, each cell in column E defines the sales ranking of the book defined by the cell in column A in the same row, each cell in column F defines the number of copies sold of the book defined by the cell in column A in the same row in 2019, each cell in column G defines the number of copies sold of the book defined by the cell in column A in the same row in 2020, each cell in column H defines the number of copies sold of the book defined by the cell in column A in the same row in 2021, and each cell in column I defines the number of copies sold of the book defined by the cell in column A in the same row from 2019 to 2021. The value of the cell in column I can be derived from the corresponding values of the cells in columns F - H in the same row. For example, the value of cell I2 can be derived as the sum of the values from cell F2 to cell H2.
[0016] Columns A and B can be manually entered into the spreadsheet by the user using a computing device. Since the values in column I are derived from columns F - H, when data is entered into columns F - H, the data will be automatically entered into the cells in column I. In a conventional spreadsheet, cell values can be derived by referring to the values of other cells using formulas (as described above), but in a conventional spreadsheet, usually, the user needs to manually enter a large amount of data. When manually entering data into a spreadsheet, there is a possibility that some cells may contain incorrect values due to human error, and it may require a significant amount of time and computing resources.
[0017] Aspects of the present disclosure address the above and other deficiencies by autonomously creating personalized documents having a tabular structure (e.g., a spreadsheet). A personalized document is a document customized for a particular user or group of users (e.g., including a structure and / or content obtained based on information unique to a particular user or group of users). As described herein, a personalized document may be the entire personalized document or a portion of a fully personalized document. A personalized document can be generated by utilizing natural language queries to obtain data from one or more external data sources.
[0018] Natural language processing can refer to processing natural language to enable interaction between humans and computing devices. For example, natural language processing techniques can be used to perform natural language processing tasks by converting natural language queries having an unstructured natural language format that is not understandable by a computing device into queries having a structured format that is understandable by the computing device. Natural language queries can be text queries, voice queries, etc. Examples of natural language processing tasks include text and voice processing, morphological analysis, syntactic analysis, lexical semantics, relational semantics, etc.
[0019] For example, upon receiving a natural language query from a user corresponding to a request to create a personalized document for the user, a personalized document creation manager of a computing system can convert the natural language query into a data access query for accessing one or more external data sources. The external data source can be an external database or repository, a knowledge graph, a website, etc. The natural language query can include text queries, voice queries, etc. For example, the natural language query can be a voice query received by a voice-controlled digital assistant.
[0020] In some embodiments, one or more external data sources include a user's personal knowledge graph. The personal knowledge graph can be created from various sources such as contacts, emails, search engine history, map searches, electronic calendars, etc. In some embodiments, the personalized document creation manager can further integrate cohort information relevant to the user to create a personal knowledge graph. For example, based on the user's personal knowledge graph, it may be determined that the user belongs to one or more cohorts or groups. For example, a user may be identified as a lawyer from the user's personal knowledge graph and thus may have deeper knowledge about legal issues compared to non-lawyers. The user can be associated with the "lawyer" cohort, and the personalized document can be tailored to users associated with the lawyer cohort. For example, one or more external data sources may include a cohort knowledge graph related to the cohorts with which the user is associated. Thus, the personalized document can be uniquely tailored to a particular user based on the user's personal information and / or other similar users. To supplement information that may not be included in the user's personal knowledge graph, the personalized document creation manager may provide a natural language query as a search engine query to obtain such information.
[0021] Regarding a spreadsheet, a personalized document creation manager can identify one or more attribute categories that define each column of the spreadsheet and several attributes for entering into the cells within each column. Identifying one or more attribute categories can include extracting a primary attribute category from a query, where the primary attribute category is identified as the main topic of the query. The primary attribute category can be assigned to the first column of the spreadsheet (e.g., column A). Identifying one or more attribute categories can further include identifying one or more secondary attribute categories related to the primary attribute category. Each secondary attribute category can be assigned to a corresponding column within the spreadsheet, and a value indicating an attribute is entered into each cell within the column. One or more secondary attribute categories can be identified based on an analysis performed using an external data source (e.g., based on an analysis of the connections between nodes within a personalized knowledge graph).
[0022] The personalized document creation manager can further improve a personalized document after initially creating it. For example, the personalized document creation manager can add data to the personalized document, propose adding new related data to the personalized document, or automatically integrate new related data into the personalized document. Additionally, the personalized document creation manager can propose creating a document personalized for a user based on the history of natural language queries received from the user. For example, if a user asks a series of similar questions, the personalized document creation manager can propose creating a personalized document that provides answers to at least those questions. Details of the operation of the personalized document creation manager are described below.
[0023] By automatically creating personalized documents and automatically inputting data into the personalized documents, human errors that may occur due to manual input can be eliminated, and the time and computing resources required to create and input data into the personalized documents can be reduced. Furthermore, by automatically improving the personalized documents, the computational efficiency is further improved and the usage of computing resources is reduced. For example, when new relevant data is integrated into the personalized document, the need for the user to search for new relevant data and manually input this data into the personalized document is eliminated, the content update of the personalized document is optimized, and the consumption of time and resources is further reduced.
[0024] FIG. 1 shows an example of a system architecture 100 according to an embodiment of the present disclosure. The system architecture 100 (also referred to herein as the "system") includes at least one client device 110 that can be connected to a server such as a document platform 120 (e.g., a server) via a network 130. For simplicity, it is shown that one client device 110 and one document platform 120 are connected to the network 130. In practice, there may be additional client devices and / or document platforms. Also, in some cases, the client device may execute one or more functions of the document platform, and the document platform may execute one or more functions of the client device. The client device 110 may access information from or receive information from the document platform 120. The system architecture 100 may be a cloud-based environment, which enables communication between the server(s) hosting the document platform 120 and the client device 110 via the network 130 and allows for the storage and sharing of electronic documents. Alternatively, the system architecture 100 can also be applied to a locally interconnected system. Further, although some aspects of the present disclosure are described with reference to spreadsheets and document applications that manage spreadsheets, it should be understood by those skilled in the art that the systems, methods, functions, and embodiments of the present disclosure can be applied to any type of electronic document and any type of program or service provided by any type of host application.
[0025] In an embodiment, network 130 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or a wide area network (WAN)), a wired network (e.g., an Ethernet network), a wireless network (e.g., an 802.11 network or a Wi-Fi network), a cellular network (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and / or combinations thereof. Client device 110 may include computing devices such as a personal computer (PC), a laptop, a mobile phone, a smartphone, a tablet computer, a netbook computer, a network-connected television, etc. Client device 110 may be associated with one or more users, and client device 110 may also be referred to as a "user device".
[0026] In the illustrated embodiment, document platform 120 may interact with client device 110, and client device 110 may cooperate with document platform 120 to execute an electronic document ("document") application and manage various documents including documents having a tabular structure. For example, the document application may be an online document application. In some embodiments, the document application may be a spreadsheet application (e.g., an online spreadsheet application). Alternatively, the document application may also provide the functions described herein without using document platform 120. Also, alternatively, document platform 120 may interact with web browser 115 (instead of a specified document application) to, for example, display a document or receive user input related to the document.
[0027] The documents of the users of the client device 110 may be stored by the document platform 120, for example, in the data store 140. Although shown as a single device in FIG. 1, the document platform 120 may be implemented, for example, as a single computing device or as a plurality of distributed computing devices. It is necessary to understand and recognize that whether a device functions as a server or as a client device may vary depending on the specific application being implemented. That is, whether a computing device is operating as a client or as a server may be determined by the context of the role of the computing device within the application. The relationship between the client device and the server may be caused by the programs executed on their respective devices and by having a relationship between the client and the server with each other.
[0028] As described above, interaction between client device 110 and document platform 120 may be implemented through web browser 115 executing on client device 110. The term “web browser” is intended to refer to a program that enables a user to view markup documents (e.g., web documents), regardless of whether the browser program is a standalone program or an embedded program, such as a browser program incorporated as part of an operating system. In some implementations, the document application described herein is implemented as a distributed web application, with portions of the document application executing on one or more client devices 110 and document platform 120. More specifically, client device(s) 110 may request the document application from document platform 120. In response, document platform 120 may transmit portions of the document application for local execution on client 110. Thus, the document application may operate as a distributed application across document platform 120 and one or more client devices 110. In this manner, client device 110 may not need to install the document application locally to use a document application hosted by document platform 120.
[0029] In general, functions described in embodiments as being performed by document platform 120 may also be performed by client device 110 in other embodiments, where appropriate. Additionally, functions assigned to a particular component may be performed by a different component or multiple components working in conjunction. Document platform 120 may also be accessed as a service offered to other systems or devices through appropriate application programming interfaces.
[0030] In embodiments of the present disclosure, a "user" may be represented as a single individual. However, in other embodiments of the present disclosure, a "user" includes an entity that is controlled by a group of users and / or an automated source. For example, a group of individual users integrated as a community within a social network can be regarded as a "user". In another example, an automated user can be an automated ingestion pipeline such as a topic channel of a document platform 120.
[0031] As described herein, a document may be implemented as a distributed web application, with portions of the application running on a plurality of client devices 110 and a document platform 120, and may provide collaboration among multiple users working on a single document. For example, multiple users may edit such a collaborative document simultaneously or jointly, and the edits of each user may be displayed in real time or near real time (e.g., within milliseconds or seconds). When a user edits a document (e.g., a cell of the document), the edit is sent to the document platform 120 and may then be transferred to other collaborating users who are editing or viewing the spreadsheet. For this purpose, the document platform 120 may handle conflicts among collaborating users, such as when two users attempt to edit a particular cell simultaneously. For example, the document platform 120 may accept the first edit received, or may prioritize the collaborating users in some way such that the edit of a higher-priority user is given precedence over the edit of a lower-priority user. If a user's edit is rejected by the document platform 120, the document platform 120 may send a message to the user notifying the user that the edit was rejected. In this way, multiple users may collaborate on a single spreadsheet, sometimes in real time (or near real time). In some embodiments, the parties who view and collaborate on a particular document may be specified by the original creator of the document. For example, if the original creator of the document is given "admin" rights, the creator may specify permissions for each of the other potential collaborators. The original creator may specify that other collaborators be given permission to perform one or more actions, such as editing the spreadsheet, viewing only the spreadsheet, editing a specified portion of the spreadsheet, adding a user to the list of collaborators, etc.For example, a particular user may be able to edit a particular part of a spreadsheet, but other specified cells or cell ranges remain "locked" to those users, and the users can view but not edit the locked cells. In some embodiments, a document may be designated as a "public" document that can be viewed and / or edited by anyone.
[0032] As further shown, the document platform 120 may include a personalized document creator 122 for creating personalized documents (e.g., spreadsheets). In response to receiving a natural language query for creating a personalized document for a user from the client device 110, the personalized document creator 122 can autonomously create or generate a personalized document 124 for the user based on the natural language query by incorporating data from one or more external data sources 150-1 to 150-N into the document 124. The natural language query may include a text query, a voice query, etc. For example, the natural language query may be a voice query received by a voice-controlled digital assistant.
[0033] To determine a method for constructing the personalized document 124, the personalized document creation manager 122 can identify one or more attribute categories related to the personalized document to be constructed. Each attribute category defines a type of attribute. For example, one or more attribute categories may include a primary attribute category that defines a primary attribute. One or more attribute categories can further include one or more additional or secondary attribute categories related to the primary attribute category and defining respective secondary attributes. The secondary attribute categories are related to attributes related to the primary attribute category in which the user may be interested. For example, in the case of a natural language query such as "Create a spreadsheet of my favorite restaurants", the primary attribute category can be identified as "restaurant" based on the context, and examples of secondary attribute categories may include, for example, average price, type of cuisine, business hours, etc.
[0034] The personalized document creation manager 122 can further convert a natural language query into a data access query for accessing at least one of the external data sources 150-1 to 150-N. For example, the personalized document creation manager 122 can convert a natural language query into an appropriate command format (e.g., SQL command format) to obtain data from at least one of the external data sources 150-1 to 150-N. If the natural language query is a voice query (e.g., one received by a voice-controlled digital assistant), the personalized document creation manager 122 first executes an appropriate voice-to-text conversion technique to convert the voice into text format and then convert it into a data access query.
[0035] In some embodiments, at least one of external data sources 150-1 through 150-N includes a first knowledge graph that includes a personal or subjective knowledge graph and a second knowledge graph that includes an objective knowledge graph. Generally, a knowledge graph is a comprehensive collection of structured data regarding a network of entities (e.g., objects, events, concepts), the relationships between each entity, and the attributes or properties regarding each entity, and is a graph-structured data model that provides the same. A knowledge graph can include a plurality of nodes corresponding to each entity and a plurality of edges that define relationships between pairs of nodes (entities). A knowledge graph can be embodied as an undirected graph or a directed graph that defines one-way relationships or links between nodes. A knowledge graph can use an inference mechanism to derive new knowledge.
[0036] A personal knowledge graph can be created from multiple sources that include personal or subjective information about the user, such as contacts, emails, search engine history, electronic map history, etc. A personal knowledge graph can be used to identify the primary attributes of a primary attribute category. For example, with respect to the natural language query "Create a spreadsheet of my favorite restaurants" where the primary attribute category is "restaurant", the personal knowledge graph can be used to identify the names of the user's favorite restaurants. Then, the objective knowledge graph can be used to find the secondary attributes of each restaurant (e.g., average price, type of cuisine, business hours, etc.). To supplement information that may not be included in the objective knowledge graph, a search engine can be used to query for such information.
[0037] To further customize the results of the personalized document 124 for the user, the personalized document creation manager 122 can further integrate cohort information related to the user to create a personal knowledge graph. For example, based on the user's personal knowledge graph, the user may be determined to belong to one or more cohorts or groups. For example, since the user can be identified as a lawyer from the user's personal knowledge graph, the user may have deeper knowledge about legal issues compared to people other than lawyers. The user can be assigned to the "lawyer" cohort, and the personalized document 124 can be adjusted according to the users associated with the lawyer cohort. For example, one or more external data sources may include a cohort knowledge graph related to the cohort to which the user is associated. Therefore, the personalized document can be uniquely adjusted according to a specific user.
[0038] When data is retrieved from at least one of the external data sources 150-1 to 150-N, the personalized document creation manager 122 can create a personalized document 124. For example, if the personalized document 124 includes a spreadsheet, the spreadsheet can be created to include one or more columns assigned to each attribute category, and the rows of the spreadsheet can include one or more cells into which respective values indicating the attributes corresponding to the attribute categories are input. The primary attribute category can be assigned to the first column of the spreadsheet (e.g., column A), and each secondary attribute category (if any) can be assigned to a corresponding additional column within the spreadsheet. The name of the attribute category of the corresponding column can be input into each cell of the first row (e.g., row 1), and the respective value of the attribute category can be input into each cell of the subsequent rows. After the personalized document 124 is created, the user can change the display of the personalized document 124 via the client device 110. For example, if the personalized document 124 is a spreadsheet, the user can use an appropriate spreadsheet tool to rearrange or manipulate the data. An example of the spreadsheet will be described in more detail below with reference to FIG. 2.
[0039] Each secondary attribute category is selected based on a previous natural language query or history analysis of the search history and can identify the most popular attribute categories related to the primary attribute category. For example, the personalized document creation manager 122 can identify information related to the primary attribute category that other users (e.g., other users of one or more cohorts of the user) have queried in the past and can identify information that the current user may be interested in. Using this, the user can create a personalized document 124 that includes information that the user has not directly requested but may be interested in based on the search history.
[0040] For example, with respect to the natural language query "Create a spreadsheet of my favorite restaurants in New York City", the personalized document creator 122 can identify "business hours" as at least one popular attribute category related to the primary attribute category "restaurants in New York City". Further, the personalized document creator 122 can identify "average dinner price" as another popular attribute category that can be included in the personalized document 124. This is because other users have previously provided natural language queries such as "What is the average price of dinner at restaurants in New York City?", and the personalized document creator 122 has determined that although this information is not specifically requested, the current user may be interested in it.
[0041] Furthermore, the personalized document creation manager 122 can provide the user with an ad-hoc interface to information specific to the user. For example, the user can request a spreadsheet of the user's electronic documents stored in the document platform 120, which has attributes such as page length, number of comments, creation date, and last update date. In response, the personalized document creation manager 122 can create the requested spreadsheet based on the user's documents managed by the document platform 120. In some embodiments, the personalized document creation manager 122 collaborates with a personalized document creation agent (not shown) hosted by the client device 110. The personalized document creation agent performs communication with, for example, access to a local data store / database and / or local applications hosted by the client device 110 (such as a user contact application, an email application, a web browser, an electronic map application, an electronic calendar application, a document processing application, etc.), via, for example, inter-process communication, obtains user-specific information, and can use that information to create a document personalized for the user (such as a personalized spreadsheet).
[0042] The personalized document creation manager 122 can provide one or more additional features. In some embodiments, the personalized document creation manager 122 can further provide access back to an external data source (such as a link to an external data source). This allows the user to examine the details of the data entered into the personalized document 124 and provides a way to verify the reliability of the data. For example, if the user has concerns about the accuracy of data from an external data source, the user can access the external data source itself (such as via the provided link) to determine whether to trust the accuracy of the data.
[0043] In some embodiments, the personalized document creation manager 122 can further implement a data reliability function. For example, the data reliability function can be associated with the reliability that data obtained from a specific source is an accurate response to a specific natural language query. In the data reliability function, visual reliability indicators of the data can be utilized, such as the percentage of reliability, symbols (e.g., colors) corresponding to the range of reliability (e.g., a green circle when the reliability exceeds 90%, a red circle when the reliability is less than 50%). The user can set a customizable reliability threshold that needs to be exceeded to enter data into the corresponding cell. For example, in some natural language queries, the user may want only highly reliable data to be used (e.g., set the reliability threshold to 90% reliability), while in other natural language queries, the user may have a wider tolerance for less reliable data (e.g., not set a reliability threshold).
[0044] In some embodiments, the personalized document creation manager 122 can further identify the intent of a natural language query and utilize unstructured data sources and / or structured data sources. For example, when the personalized document 124 is a spreadsheet, the personalized document creation manager can combine column categories with one or more attributes of the spreadsheet to identify the intent of the natural language query.
[0045] In some embodiments, the personalized document creator 122 can process multi-dimensional data. For example, assume that the personalized document 124 is a spreadsheet that includes a list of favorite restaurants. One of the columns in the personalized document 124 may be "Average Meal Price", and the user may be interested in displaying graphs and calculations created based on the average meal price. Each cell in the "Average Meal Price" column can be a one-dimensional value (e.g., the latest data) or a multi-dimensional value (e.g., an array of average meal prices over a certain period). Since the data is input into each cell by a program, the personalized document creator 122 can obtain time-series average meal price data for graphing and / or calculation.
[0046] In some embodiments, the personalized document creator 122 can identify the data type of data obtained in response to a natural language query. For example, the data can have a specific data type such as GPS coordinates, a date, a single integer value, an array of integer values, etc. The personalized document creator 122 can hold metadata regarding the data type that can be used to assist with data operations (e.g., graph creation, calculation).
[0047] In some embodiments, the personalized document creator 122 can provide improvements to the personalized document. With the improvements to the personalized document, the user can use additional natural language queries to expand the personalized document 124. If the personalized document 124 is a spreadsheet, the improvements to the personalized document can be used to increase the columns and / or rows of the personalized document 124. For example, regarding a spreadsheet of favorite restaurants, if the user wants to add information about the types of cuisine to the document 124, the user can provide an additional natural language query to insert a column for the types of cuisine for each restaurant (e.g., "Add the types of cuisine to my spreadsheet of favorite restaurants").
[0048] In some embodiments, the personalized document creator 122 can incorporate trend or virality features to select attributes to input into the personalized document 124. For example, the personalized document creator 122 can use an external data source to identify new relevant data regarding the personalized document 124 and input that new relevant data as an attribute into the personalized document 124. Further, the personalized document creator 122 can detect new relevant data and provide the user with a proposal for incorporating that new relevant data into the document. For example, the personalized document creator 122 can provide the user with a proposal for updating the personalized document using new relevant data related to the content of the document via a graphical user interface (GUI). As another example, instead of providing a proposal, the personalized document creator can identify the user's interest in new relevant data for the personalized document (e.g., based on the user's previous queries regarding the personalized document or manual updates to the personalized document), determine that new relevant data has been added to an external data source, and automatically update the personalized document with the new relevant data from the external data source. For example, if the user creates a personalized document of local restaurants in the user's area and it is determined that a new restaurant is popular in that area (e.g., from online reviews), it may be determined that the new restaurant is likely to draw the user's interest and it may be recommended to incorporate (or automatically incorporate) this restaurant into the personalized document.
[0049] In some embodiments, the personalized document creation manager 122 and / or the personalized document creation agent can identify changes in user activity (e.g., the personalized document creation agent can receive from the user's calendar application information as to whether the user is in transit to or already at a different location), and generate a new version of the personalized spreadsheet. The new version can reflect the changes in user activity and may include content relevant to the user or a user group (cohort) associated with the user. For example, if a user in San Francisco is determined to currently be in Boston (e.g., by the user's calendar or user location information data), the personalized document creation manager can generate a new personalized document regarding restaurant recommendations for the user. The restaurant recommendations can be generated based on the user's personal knowledge graph and / or user cohort information.
[0050] In some embodiments, the personalized document creator 122 can recommend or propose the creation of a personalized document 124 based on one or more natural language queries. The recommendation can be made based on an analysis of the user's question behavior. For example, if the user asks a series of similar questions, the personalized document creator 122 can propose the creation of a personalized document 124 to provide answers to at least those questions. As an example, if the user asks "What are my favorite restaurants in New York City?" and then asks "What are my favorite restaurants in Philadelphia?", the personalized document creator 122 can notify the user that it can create a personalized document 124 listing the user's favorite restaurants in New York City, Philadelphia, and possibly other cities. If the user consents, the data management manager 122 can create a personalized document 124 for the user even if the user has not directly requested the creation of the personalized document 124.
[0051] Through self-regulated document creation, the personalized document 124 can theoretically have a large amount of data (e.g., numerous columns and / or rows in a spreadsheet). This can lead to an increase in resource consumption, an increase in data acquisition costs, etc. To address this, in some embodiments, the personalized document creation manager 122 can set a configurable size limit regarding the size of the personalized document 124. For example, the personalized document creation manager 122 can adjust the size of the personalized document 124 based on user input that defines the number of rows and / or columns to be included in the personalized document 124. As another example, the personalized document creation manager 122 can detect the possibility that the personalized document 124 contains a large amount of data (e.g., a data volume exceeding a threshold data volume) and can notify the user about the large amount of data. The notification can include a request asking the user to define the amount of data to include in the personalized document 124. Additionally, or alternatively, the maximum size of the personalized document 124 can be a user-defined setting or threshold. Thus, the personalized document creation manager 122 can implement a function to improve the efficiency of computing resources.
[0052] In addition to the above description, users may be provided with the right to select whether, and when, the systems, programs, or functions described herein enable the collection of user information (e.g., information regarding the user's social network, social actions, or activities, occupation, user preferences, or user's current location), and whether content or information is transmitted from the server to the user. Further, certain data may be processed in one or more ways such that information that can identify an individual is removed before the data is stored or used. For example, a user's ID may be processed so that it cannot identify the user with information that can identify the individual user. Also, the user's geographical location may be generalized where location information is obtained (such as at the city, zip code, or state level). Therefore, the specific location of the user cannot be determined. Accordingly, the user can manage what information is collected about the user, how that information is used, and what information is provided to the user.
[0053] FIG. 2 shows a diagram for explaining an example of a personalized spreadsheet according to an embodiment of the present disclosure. The personalized spreadsheet 200 is assumed to be generated using a personalized document creation manager (e.g., the personalized document creation manager 122 of FIG. 1) in response to the natural language query "Create a spreadsheet of my favorite restaurants". Although a personalized spreadsheet is shown in FIG. 2, this example should not be considered limiting, and any suitable personalized document having a tabular structure is contemplated.
[0054] As shown in the figure, the spreadsheet 200 includes a plurality of columns 210A to 210E and a plurality of rows 220-1 to 220-4. Although five columns and four rows are shown, the number of columns and rows is not limited. Row 220-1 is an explanatory row indicating the type of data inserted into the cells of the corresponding columns.
[0055] Column 210A is assigned to the attribute category "Restaurant". That is, "Restaurant" is the primary attribute category of the spreadsheet 200A. The text "Restaurant" is entered into the cell having the address defined by row 220-1 and column 210A, indicating that the data held in the other cells of column 210A corresponds to the name of the restaurant (e.g., each cell having the address defined by column 210A and rows 220-2 to 220-4). For example, the cell having the address defined by row 220-2 and column 210A has the coach name "ABC" entered therein, and the cell having the address defined by row 220-3 and column 210A has the coach name "XYZ" entered therein. Accordingly, column 210A is defined as the "Restaurant" column and includes a plurality of cells having values indicating each restaurant name.
[0056] The attributes (e.g., ABC and XYZ) of the primary attribute category "Restaurant" shown in the spreadsheet 200 can be obtained from at least one external data source related to the user. For example, at least one external data source related to the user can include the user's personal knowledge graph. Further, at least one external data source can include at least one external data source related to at least one cohort associated with the user. For example, at least one external data source related to at least one cohort associated with the user can include at least one cohort knowledge graph of at least one cohort.
[0057] As further shown, the spreadsheet 200 has attributes of secondary attribute categories related to restaurants entered therein. Column 210B is assigned to the secondary attribute category "Cuisine". The text "Cuisine" is entered in the cell having the address defined by row 220-1 and column 210B, indicating that the data held in the other cells of column 210B corresponds to the cuisine of each respective restaurant (e.g., each cell having the address defined by column 210B and rows 220-2 to 220-4). For example, the text "Italian cuisine" is entered in the cell having the address defined by row 220-2 and column 210B to indicate that ABC is an Italian cuisine restaurant, and the text "Mexican cuisine" is entered in the cell having the address defined by row 220-3 and column 210B to indicate that XYZ is a Mexican cuisine restaurant. Accordingly, column 210B is defined as the "Cuisine" column and includes a plurality of cells having values indicating the respective cuisine of the restaurants listed in column 210A.
[0058] Column 210C is assigned to the secondary attribute category "Average Price". The text "Average Price" is entered in the cell having the address defined by row 220-1 and column 210C, indicating that the data held in the other cells of column 210C corresponds to the average price of each respective restaurant (e.g., each cell having the address defined by column 210C and rows 220-2 to 220-4). For example, the value "$10" indicating that the average price of a meal at ABC is $10 is entered in the cell having the address defined by row 220-2 and column 210C, and the value "$25" indicating that the average price of a meal at XYZ is $25 is entered in the cell having the address defined by row 220-3 and column 210C. Accordingly, column 210C is defined as the "Average Price" column and includes a plurality of cells having values indicating the average meal price for each of the restaurants listed in column 210A.
[0059] Column 210D is assigned to the secondary attribute category "Opening Time". The text "Opening Time" is entered into the cell having the address defined by row 220-1 and column 210D, indicating that the data held in the other cells of column 210D corresponds to the opening time of each restaurant (for example, each cell having the address defined by column 210D and rows 220-2 to 220-4). For example, the value "11:00 AM" indicating that ABC opens at 11:00 am is entered into the cell having the address defined by row 220-2 and column 210D, and the value "8:00 AM" indicating that XYZ opens at 8:00 am is entered into the cell having the address defined by row 220-3 and column 210D. Accordingly, column 210D is defined as the "Opening Time" column and includes a plurality of cells having values indicating the opening time of each restaurant listed in column 210A.
[0060] Column 210E is assigned to the secondary attribute category "Closing Time". The text "Closing Time" is entered into the cell having the address defined by row 220-1 and column 210E, indicating that the data held in the other cells of column 210E corresponds to the closing time of each restaurant (for example, each cell having the address defined by column 210E and rows 220-2 to 220-4). For example, the value "10:00 PM" indicating that ABC closes at 10:00 pm is entered into the cell having the address defined by row 220-2 and column 210E, and the value "11:00 PM" indicating that XYZ closes at 11:00 pm is entered into the cell having the address defined by row 220-3 and column 210E. Accordingly, column 210E is defined as the "Closing Time" column and includes a plurality of cells having values indicating the closing time of each restaurant listed in column 210A.
[0061] The attributes of the secondary attribute categories (e.g., cuisine, average price, opening time, closing time) displayed in the spreadsheet 200 can be obtained from at least one objective external data source. For example, at least one objective external data source can include at least one objective knowledge graph. For information not found in at least one objective knowledge graph, such information can be retrieved using a search engine or other appropriate entity.
[0062] In response to a request, additional data can be added to the spreadsheet 200. For example, to add information about the location of each restaurant, the user may provide an appropriate natural language query (e.g., "Add the location of each restaurant to the spreadsheet"). In response to receiving the query, a "Location" column indicating the location of each restaurant listed in column 210A can be added to the spreadsheet 200.
[0063] FIG. 3 shows a flowchart of a method 300 for autonomously creating a personalized document according to an embodiment of the present disclosure. The method 300 can be executed by processing logic that can include hardware (circuits, dedicated logic, etc.), software (e.g., instructions executed on a processing device), or a combination thereof. In one embodiment, some or all of the operations of the method 300 may be executed by the personalized document creation manager 122 of FIG. 1.
[0064] In block 310, the processing logic receives a natural language query corresponding to a request to create a personalized document having a tabular structure for the user from a client device associated with the user. In some embodiments, the personalized document is a personalized spreadsheet that includes a column of cells and a row of cells. The natural language query can include at least one of a text natural language query received from the user via a GUI, a voice natural language query received from the user (e.g., via a voice-controlled digital assistant), and the like.
[0065] In block 320, the processing logic determines one or more attribute categories related to the personalized document. Each attribute category corresponds to a type of attribute, and data indicating the attribute can be input into each cell of the personalized document. In some embodiments, the one or more attribute categories include a primary attribute category and one or more secondary attribute categories. The primary attribute category and the one or more secondary attribute categories can be identified based on a semantic analysis of natural language queries using any suitable natural language processing techniques.
[0066] In block 330, the processing logic identifies at least one external data source that includes at least one subjective data source related to the user. The at least one external data source can further include at least one objective data source. The attributes of the primary attribute category can be identified from at least one subjective data source, and the attributes of each of the one or more secondary attribute categories can be identified from at least one objective data source.
[0067] For example, the at least one subjective data source can include a personal knowledge graph associated with the user, and the at least one objective data source can include an objective knowledge graph. Further, the at least one subjective data source can include at least one cohort data source (e.g., at least one cohort knowledge graph) corresponding to at least one cohort associated with the user. Information that does not exist in the at least one external data source can be obtained, for example, from a query of a search engine or other suitable entity. The intent of the natural language query derived using natural language processing can be used to guide the search for data within the at least one external data source.
[0068] A user can associate with a user account that supports multiple applications. Examples of applications that can be supported by the user account include an email application, a calendar application, an electronic map application, a contacts application, and the like. At least one subjective data source related to the user can be constructed based on user data obtained from the applications supported by the user account. For example, a personal knowledge graph of the user can be constructed based on email data from an email application, electronic map data from an electronic map application, calendar data from a calendar application, and the like.
[0069] In block 340, the processing logic obtains a plurality of data items indicating one or more attribute categories from at least one external data source. Each data item corresponds to an attribute of a specific attribute category. For example, a data item corresponds to a primary attribute of a primary attribute category (e.g., obtained from at least one subjective data source), and another data item may correspond to a secondary attribute of a secondary attribute category (e.g., obtained from at least one objective data source).
[0070] Obtaining a plurality of data items can include converting a natural language query into a data access query for obtaining a plurality of data items from at least one external data source. For example, the processing logic can convert a natural language query into an appropriate command format (e.g., SQL command format) for obtaining a plurality of data items from at least one external data source. If the natural language query is a voice query (e.g., as received by a voice-controlled digital assistant), the processing logic first executes an appropriate voice-to-text conversion technique to convert the voice into text format and then converts it into a data access query. Query conversion can be performed using a query conversion mechanism that provides functions related to semantic representation, language understanding, and question answering. By leveraging these functions, the intent of the natural language query can be understood and converted into a data access query used to search for data within at least one external data source. Further, the query conversion mechanism can improve the ability to understand the intent of a natural language query based on the results of previous natural language query conversions and / or searches (e.g., previous web search queries, search results, and user selections of related search results).
[0071] In block 350, the processing logic generates a personalized document for the user by entering each data item of a plurality of data items into each cell of a plurality of cells of the personalized document. For example, if the personalized document is a personalized spreadsheet, the first column of the personalized spreadsheet can be assigned to the primary attribute category, the identifier of the primary attribute category is entered into the first cell of the first column, and values corresponding to the data items related to the attributes of the primary attribute category are entered into the other cells of the first column. The second column of the personalized spreadsheet can be assigned to one of the secondary attribute categories, the identifier of the secondary attribute category is entered into the first cell of the second column, and values corresponding to the data items related to the attributes of the secondary attribute category are entered into the other cells of the second column. The values of the cells in the second column are related to the values of the cells in the first column in the same row.
[0072] For example, at least one external data source can include a primary data source such as a knowledge graph. However, there may be cases where the primary data source does not yet contain specific information to satisfy the query. For example, if the generated document contains data items related to local restaurants, the business hours of at least one restaurant included in the document may not currently exist in the primary data source (e.g., the knowledge graph). In such cases, at least one external data source may further include a secondary data source that supplements the specific information missing from the primary data source. For example, the secondary data source is a website and can be identified using a query in a search engine.
[0073] In some embodiments, personalized documents can be generated according to configurable size limits. For example, a user can provide the personalized document creation manager 122 with hints regarding the size of the personalized document (e.g., the number of rows and / or columns of a spreadsheet). As another example, the processing logic can detect the possibility that a personalized document contains a large amount of data (e.g., an amount of data exceeding a threshold amount of data), and can notify the user about the large amount of data. The notification can include a request asking the user to define the amount of data to include in the personalized document. Additionally, or alternatively, the maximum size of the personalized document can be a user-defined setting or threshold. Further details regarding blocks 310-340 were described above with reference to FIGS. 1-2.
[0074] FIG. 4 shows a flowchart of a method 400 for autonomously improving a personalized document according to an embodiment of the present disclosure. The method 400 can be executed by processing logic that can include hardware (circuits, dedicated logic, etc.), software (e.g., instructions executed on a processing device), or a combination thereof. In one embodiment, some or all of the operations of the method 400 may be executed by the personalized document creation manager 122 of FIG. 1.
[0075] In block 410, the processing logic obtains one or more additional data items from at least one external data source and integrates them into a personalized document having a tabular structure. For example, the personalized document can be a personalized spreadsheet that includes cells in multiple columns and cells in multiple rows. It is assumed that the personalized document has been created prior to receiving the natural language query. In some embodiments, the personalized document is autonomously created according to the method described above with reference to FIG. 3. In some embodiments, at least a portion of the personalized document is manually created by the user.
[0076] In some embodiments, in response to receiving one or more additional natural language queries, one or more additional data items are retrieved. The additional natural language queries can include at least one of a text natural language query received from a user via a GUI, a voice natural language query received from a user (e.g., via a voice-controlled digital assistant), and the like. For example, the processing logic can identify one or more secondary attribute categories related to the personalized document from the additional natural language query and retrieve one or more additional data items from at least one external data source corresponding to the one or more secondary attribute categories in the same manner as the process described above with reference to blocks 320 to 340 of FIG. 3.
[0077] In some embodiments, one or more additional data items are identified as data newly related to the personalized document from at least one external data source. For example, the newly related data may include trend information or viral information that does not currently exist within the personalized document.
[0078] At block 420, the processing logic updates the personalized document based on the one or more additional data items. In some embodiments, updating the personalized document can include one or more attributes of one or more existing cells of the personalized document based on the one or more additional data items.
[0079] In some embodiments, updating a personalized document includes adding one or more cells with one or more attributes entered based on newly relevant data. For example, if the personalized document includes a spreadsheet, updating the personalized document may include adding one or more additional columns to the personalized document and entering, in one or more cells of the one or more additional columns, one or more respective attributes corresponding to one or more specific additional data items. As another example, if the personalized document is a spreadsheet, updating the personalized document can include adding one or more additional cells to one or more existing columns of the personalized document and entering, in one or more cells of the one or more existing columns, one or more respective attributes corresponding to one or more specific additional data items. Further details regarding blocks 410 and 420 were described above with reference to FIGS. 1-3.
[0080] FIG. 5 shows a flowchart of a method 500 for autonomously creating a recommended personalized document according to an embodiment of the present disclosure. Method 500 may be executed by processing logic including hardware (circuits, dedicated logic, etc.), software (e.g., instructions executed on a processing device), or a combination thereof. In one embodiment, some or all of the operations of method 500 may be executed by the personalized document creation manager 122 of FIG. 1.
[0081] At block 510, the processing logic receives a plurality of natural language queries from a user. For example, the natural language queries can include at least a first natural language query and a second natural language query. Each natural language query can include at least one of a text natural language query received from the user via a GUI, a voice natural language query received from the user (e.g., via a voice-controlled digital assistant), etc.
[0082] In block 520, the processing logic determines that natural language queries are associated with similar topics. Determining that natural language queries are associated with similar topics may include identifying that at least the first and second natural language queries are related to similar information requests. For example, the first natural language query may be "Where are my favorite restaurants in New York?" and the second natural language query may be "Where are my favorite restaurants in Philadelphia?".
[0083] In block 530, the processing logic sends a recommendation to the user to create a personalized document having a tabular structure based on the natural language query. For example, if the first natural language query is "Where are my favorite restaurants in New York?" and the second natural language query is "Where are my favorite restaurants in Philadelphia?", the processing logic can generate a proposal to create a personalized document that includes information about the user's favorite restaurants in all states of the United States.
[0084] In block 540, the processing logic receives an instruction from the user to create a personalized document. If the processing logic does not receive an instruction from the user to create a personalized document (for example, if the user provides a negative response to the recommendation), the processing logic does not create a personalized document and the process ends.
[0085] In block 550, the processing logic generates a personalized document. The personalized document can be generated in a manner similar to the method described above with reference to FIG. 3. For example, the processing logic can obtain data items from at least one external data source corresponding to the attribute categories identified from the natural language query (e.g., at least one subjective external data source and at least one objective external data source), and input each data item into each cell of the personalized document. Further details regarding blocks 510 - 550 were described above with reference to FIGS. 1 - 4.
[0086] FIG. 6 is a block diagram showing an exemplary computer system according to an embodiment of the present disclosure. The computer system 600 can be the document platform 120 or the client device 110 of FIG. 1. The machine can operate as a server or an endpoint machine in a network environment of endpoints and servers, or as a peer machine in a peer - to - peer (or distributed) network environment. The machine can be any machine capable of executing (sequentially or otherwise) a set of instructions that specify the actions to be taken by the machine, such as a television, a personal computer (PC), a tablet PC, a set - top box (STB), a personal digital assistant (PDA), a mobile phone, a web appliance, a server, a network router, a switch or a bridge, or any machine capable of executing a set of instructions that specify the actions to be taken by the machine. Further, although only a single machine is illustrated, the term "machine" should also be used to include any collection of machines that, individually or jointly, execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
[0087] The exemplary computer system 600 includes a processing device (processor) 602, a main memory 604 (e.g., dynamic random access memory (DRAM) such as read-only memory (ROM), flash memory, synchronous DRAM (SDRAM), double data rate (DDR SDRAM), or DRAM (RDRAM (registered trademark))), a static memory 606 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 618, which communicate with each other via a bus 640.
[0088] The processor (processing device) 602 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, etc. More specifically, the processor 602 can include a complex instruction set computer (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIM) microprocessor, or a processor implementing other instruction sets, or a processor implementing a combination of instruction sets. The processor 602 can be one or more dedicated processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, etc. The processor 602 is configured to execute instructions 605 (e.g., instructions for predicting the number of viewers in a channel lineup) for performing the operations described herein.
[0089] The computer system 600 can further include a network interface device 608. The computer system 600 can further include a video display unit 610 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an input device 612 (e.g., a keyboard, an alphanumeric keyboard, a motion sensing input device, a touch screen), a cursor control device 614 (e.g., a mouse), and a signal generation device 620 (e.g., a speaker).
[0090] The data storage device 618 can include a non-transitory machine-readable storage medium 624 (which is also a computer-readable storage medium) storing one or more sets of instructions 605 (e.g., for obtaining optimized encoder parameter settings) that embody one or more of the methodologies or functions described herein. The instructions can be wholly or at least partially present in the main memory 604 and / or within the processor 602 while being executed by the computer system 600, and the main memory 604 and the processor 602 also constitute a machine-readable storage medium. The instructions can be further transmitted and received over the network 630 via the network interface device 608.
[0091] In one embodiment, the instructions 605 include instructions for designating an oral statement as a polling question. Although the computer-readable storage medium 624 (machine-readable storage medium) is shown as a single medium in one example embodiment, the terms "computer-readable storage medium" and "machine-readable storage medium" should be interpreted to include a single medium or a plurality of media (e.g., a centralized or distributed database, and / or associated cache and server) storing one or more sets of instructions. The terms "computer-readable storage medium" and "machine-readable storage medium" should be interpreted to include any medium that can store, encode, or carry a set of instructions executable by a machine and cause the machine to execute one or more of the methodologies of the present disclosure. Thus, the terms "computer-readable storage medium" and "machine-readable storage medium" should be interpreted to include, but not be limited to, solid-state memory, optical media, and magnetic media.
[0092] Throughout this specification, the references to "one implementation" or "an implementation" mean that the particular features, structures, or characteristics described in connection with the implementation are included in at least one implementation. Thus, the appearances of the phrases "in one implementation" or "in an implementation" in various places in this specification are not necessarily all referring to the same implementation, although they may be. Furthermore, the particular features, structures, or characteristics may be combined in any suitable way in one or more implementations.
[0093] As used in any detailed description or claims, the terms "includes", "including", "has", "contains", their variations, and other similar terms are intended to be as inclusive as the open-ended term "comprising" without excluding additional elements or other elements.
[0094] As used herein, terms such as "component", "module", "system" are generally intended to refer to any computer-related component, hardware (e.g., circuitry), software, a combination of hardware and software, or a component related to an operable machine having one or more specific functionalities. For example, a component can be, but is not limited to, a process running on a processor (e.g., a digital signal processor), a processor, an object, an executable file, an execution thread, a program, and / or a computer. For illustration purposes, both an application operating on a controller and the controller can be components. One or more components can be present within a process and / or thread of execution, and a component can be localized on one computer and / or distributed between two or more computers. Further, a "device" can be provided in the form of specially designed hardware, general-purpose hardware specialized by the execution of software that enables the hardware to perform a specific function (e.g., generation of points of interest and / or descriptors), software on a computer-readable medium, or a combination thereof.
[0095] The foregoing systems, circuits, modules, etc. have been described with respect to the interactions between multiple components and / or blocks. It is understood that such systems, circuits, components, blocks, etc. may include those components or designated sub-components, a part of the designated components or sub-components, and / or additional components, and may be included according to the various permutations and combinations described above. The sub-components can be implemented not as being included within the parent component (hierarchically), but as components communicatively coupled to other components. Further, it should also be noted that one or more components can be integrated into one component to provide an aggregated function, or dispersed into multiple individual sub-components, and that any one or more intermediate layers, such as a management layer, can be provided to communicatively couple to such sub-components and provide an integrated function. Any component described herein may also interact with one or more other components known to those skilled in the art but not specifically described herein.
[0096] Furthermore, as used herein, the terms "example" or "exemplary" have the meaning of an illustration, instance, or explanation. Any aspect or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, the use of the terms "example" or "exemplary" is intended to present concepts in a concrete fashion. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or". That is, unless otherwise specified or clear from the context, "X employs A or B" is intended to mean a natural inclusive substitution. That is, "X employs A or B" is satisfied under any of the foregoing instances where X employs A, where X employs B, or where X employs both A and B. Additionally, the articles "a" and "an" as used in this application and the appended claims generally are to be construed to mean "one or more" unless otherwise specified or it is clear from the context that they refer to the singular form.
[0097] Finally, the embodiments described herein include the collection of data that describes a user and / or the user's activities. In one embodiment, such data is collected only if the user consents to the collection of this data. In some embodiments, the user is asked to explicitly authorize the collection of data. Additionally, the user may opt in or opt out of participating in such data collection activities. In one embodiment, the data collected is anonymized before performing an analysis to obtain statistical patterns, so that the identity of the user cannot be determined from the data collected.
Claims
1. Receiving, by a processing device, a natural language query corresponding to a request to create a first version of a personalized document having a tabular structure for the user from a client device associated with the user, without requiring further user interaction; Determining, by the processing device, a set of attribute categories associated with the personalized document, the set of attribute categories including a first attribute category corresponding to one or more cells in which one or more first attributes are entered, and a second attribute category corresponding to one or more cells in which one or more second attributes are entered; Identifying, by the processing device, at least one external data source, the at least one external data source including at least one subjective data source associated with the user, the at least one external data source including a personal knowledge graph corresponding to the user; Obtaining, by the processing device, a plurality of data items indicating the set of attribute categories from the at least one external data source; Generating, by the processing device, the first version of the personalized document for the user by entering each of the plurality of data items into a respective cell of a plurality of cells of the personalized document. A method comprising:
2. The method of claim 1, wherein the at least one external data source further includes an objective data source, and obtaining the plurality of data items from the at least one external data source includes: Obtaining, from the at least one subjective data source, one or more data items corresponding to the one or more first attributes, the at least one subjective data source having content related to the user or a user group associated with the user; Obtaining, from the objective data source, one or more data items corresponding to the one or more second attributes.
3. Identifying, by the processing device, a change in user activity; Generating, by the processing device, a new version of the personalized document, the new version including content reflecting the change in the user activity, the content being related to the user or a user group associated with the user, the method according to claim 1 further comprising the generating.
4. Obtaining, by the processing device, one or more additional data items from the at least one external data source, Updating, by the processing device, the personalized document based on the one or more additional data items, the method according to claim 1 further comprising the updating.
5. The obtaining of the one or more additional data items is Receiving additional natural language queries, Obtaining the one or more additional data items in response to the receiving of the additional natural language queries, the method according to claim 4 further comprising the obtaining.
6. The obtaining of the one or more additional data items is Identifying a user's interest in data newly related to the personalized document, Determining that the newly related data has been added to the at least one external data source, Obtaining the newly related data from the at least one external data source, the method according to claim 4 further comprising the obtaining.
7. A memory device, A processing device coupled to the memory device, Receiving, without further user interaction, a natural language query corresponding to a request to create an initial version of a personalized document having a tabular structure for the user from a client device associated with the user, Determining a set of attribute categories related to the personalized document, the set of attribute categories including a first attribute category corresponding to one or more cells in which one or more first attributes are entered and a second attribute category corresponding to one or more cells in which one or more second attributes are entered, Identifying at least one external data source, wherein the at least one external data source includes at least one subjective data source related to the user, and the at least one external data source includes a personal knowledge graph corresponding to the user, Obtaining a plurality of data items indicating the set of attribute categories from the at least one external data source, Generating the first version of the personalized document for the user by inputting each of the plurality of data items into each cell of the plurality of cells of the personalized document, and the processing device that executes the operations including this,
8. The at least one external data source further includes an objective data source, and obtaining the plurality of data items from the at least one external data source is, Obtaining one or more data items corresponding to the one or more first attributes from the at least one subjective data source, wherein the at least one subjective data source has content related to the user or a user group associated with the user, the obtaining, Obtaining one or more data items corresponding to the one or more second attributes from the objective data source, and the system according to claim 7 including this.
9. The operations are, Identifying a change in user activity, Generating a new version of the personalized document, wherein the new version includes content reflecting the change in user activity, and the content is related to the user or a user group associated with the user, the generating, and the system according to claim 7 further including this.
10. The operations are, Obtaining one or more additional data items from the at least one external data source, Updating the personalized document based on the one or more additional data items, and the system according to claim 7 further including this.
11. Obtaining the one or more additional data items is, Receiving an additional natural language query, The system according to claim 10, further comprising: obtaining the one or more additional data items in response to receiving the additional natural language query. **Claim 12** Obtaining the one or more additional data items comprises: Identifying a user's interest in data newly relevant to the personalized document; Determining that the newly relevant data has been added to the at least one external data source; The system according to claim 10, further comprising: obtaining the newly relevant data from the at least one external data source. **Claim 13** A memory device; A processing device coupled to the memory device, the processing device performing operations comprising: Receiving a plurality of natural language queries from a user; Determining that each natural language query of the plurality of natural language queries is associated with a similar topic; Sending a recommendation to the user for creating a first version of a personalized document having a tabular structure based on the plurality of natural language queries; Generating the first version of the personalized document without further user interaction in response to receiving an instruction from the user to create the first version of the personalized document; Generating the first version of the personalized document is performed by inputting each data item of a set of data items obtained from at least one external data source including a subjective data source including a personal knowledge graph corresponding to the user into each cell of a plurality of cells of the document, The set of data items corresponds to a set of attribute categories related to the document, The set of attribute categories includes a first attribute category corresponding to one or more cells into which one or more first attributes are input, and a second attribute category corresponding to one or more cells into which one or more second attributes are input. **Claim 14** Generating the first version of the personalized document comprises: Identifying the set of attribute categories related to the personalized document; The system according to claim 13, further comprising: obtaining the set of data items from the at least one external data source.
15. The system according to claim 13, wherein the at least one external data source further includes an objective data source.
16. The operation further includes obtaining one or more additional data items from the at least one external data source, and updating the personalized document based on the one or more additional data items. The system according to claim 13.
17. Obtaining the one or more additional data items further includes receiving an additional natural language query, and obtaining the one or more additional data items in response to receiving the additional natural language query. The system according to claim 16.
18. Obtaining the one or more additional data items further includes identifying a user's interest in data newly relevant to the personalized document, determining that the newly relevant data has been added to the at least one external data source, and obtaining the newly relevant data from the at least one external data source. The system according to claim 16.
Citation Information
Patent Citations
Information supply device / Method and record medium
JP1999212996A
Performing an operation relative to tabular data based upon voice input
WO2015009586A2