Autonomous spreadsheet creation
Patent Information
- Application Number
- JP2024518726
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-09-24
- Filing Date
- 2022-09-23
- Publication Date
- 2025-03-06
AI Technical Summary
Existing electronic documents with tabular structures, such as spreadsheets, require manual data entry, which is prone to human error and inefficient, consuming significant computational resources.
An autonomous document creation system using natural language processing to populate spreadsheets by retrieving data from external sources based on user queries, identifying attribute categories, and automatically generating and refining documents.
Reduces human error, saves time and computational resources, and enhances efficiency by automatically populating and refining documents with accurate data.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] Aspects and embodiments of the present disclosure relate generally to electronic documents, and more particularly to autonomous creation of electronic documents having a tabular structure. [Background technology]
[0002] An electronic document ("document") may have a tabular structure that includes multiple cells. Such a document may be referred to as a "data table" or simply a "table." Each cell corresponds to an area for entering data in a particular format (e.g., numerical or textual data), and the document may be used to organize, analyze, and / or store the entered data. Each cell may include non-numeric data input, a formula that assigns a value to the cell, or may be left empty. A formula may include numerical values, references to the values of one or more cells in a spreadsheet, arithmetic operators, relational operators, functions, etc. Additionally, a document may support programming functions. For example, the contents of a cell may be derived from the contents of one or more other cells in the document. In some implementations, the document may be a spreadsheet. Cells in a spreadsheet may be arranged as an array that includes multiple rows and multiple columns, and a particular cell of the spreadsheet may be addressed or referenced in terms of its column position in the table and its row position in the table. In some examples, columns may be represented by letters (e.g., column A, column B, ...) and rows may be represented by numbers (e.g., row 1, row 2, ...). For example, the cell in row 5 of column D may be referenced as cell D5. Summary of the Invention
[0003] The following summary is a simplified summary of the disclosure in order to provide a basic understanding of some aspects of the disclosure. This summary is not an exhaustive overview of the disclosure. It is not intended to identify key or critical elements of the disclosure or to define the scope of particular embodiments of the disclosure or any claims. Its sole purpose is to present some concepts of the disclosure in a simplified form as a prelude to the more detailed description that is presented later.
[0004] In some embodiments, a system and method are disclosed. In one embodiment, the system includes a memory device and a processing device coupled to the memory device. The processing device performs operations including receiving a natural language query corresponding to a request to create a document having a tabular structure, identifying one or more attribute categories associated with the document, translating the natural language query into a data access query for accessing at least one external data source, retrieving a plurality of data items corresponding to the one or more attribute categories from the at least one external data source, and generating the document by populating each cell of a plurality of cells of the document with a respective data item of the plurality of data items.
[0005] In some implementations, the one or more attribute categories include a primary attribute category corresponding to one or more cells populated with one or more primary attributes, and a secondary attribute category corresponding to one or more cells populated with one or more secondary attributes.
[0006] In some embodiments, the at least one external data source includes at least one of a knowledge graph or a website.
[0007] In some implementations, generating the personalized document includes generating the personalized document having a size determined according to a size constraint.
[0008] In some embodiments, the method further includes obtaining, by the processing device, one or more additional data items from the at least one external data source, and updating, by the processing device, the 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 newly relevant data for the document from the at least one external data source, and obtaining the newly relevant data from the at least one external data source.
[0009] In another embodiment, a system includes a memory device and a processing device coupled to the memory device, where the processing device performs operations including 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 to create a document having a tabular structure based on the plurality of natural language queries, and generating the document in response to receiving an indication to create the document from the user.
[0010] In some implementations, generating the document includes identifying one or more attribute categories associated with the 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 document by populating each cell of a plurality of cells of the document with a respective data item of the plurality of data items.
[0011] In some embodiments, the at least one external data source includes at least one of a knowledge graph or a website.
[0012] In some implementations, the operations further include obtaining one or more additional data items from at least one external data source and updating the document based on the one or more additional data items. In some implementations, 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 implementations, obtaining the one or more additional data items further includes identifying newly relevant data for the personalized document from the at least one external data source and obtaining the newly relevant data from the at least one external data source.
[0013] Aspects and embodiments of the present disclosure will be more fully understood from the detailed description set forth below and the accompanying drawings of various aspects and embodiments of the present disclosure, which are not intended to limit the disclosure to any particular aspects or embodiments but are for purposes of illustration and understanding only. [Brief description of the drawings]
[0014] [Figure 1] 1 illustrates an example of a system architecture according to an embodiment of the present disclosure. [Diagram 2] FIG. 2 illustrates an autonomously created spreadsheet according to an embodiment of the present disclosure. [Diagram 3] 1 illustrates a flow diagram of a method for autonomous document creation according to an embodiment of the present disclosure. [Figure 4] 1 illustrates a flow diagram of a method for autonomously improving a document according to an embodiment of the present disclosure. [Diagram 5] 1 illustrates a flow diagram of a method for autonomously generating recommendation documents according to an embodiment of the present disclosure. [Figure 6] FIG. 1 is a block diagram illustrating an exemplary computer system according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0015] Aspects of the present disclosure relate to autonomous creation of electronic documents having a tabular structure. One of the challenges in constructing electronic documents ("documents") having a tabular structure (e.g., a spreadsheet) is populating the document with data. As an example, the following portion of a spreadsheet with columns A-I and rows 1-3 is shown in Table 1: [Table 1]
[0016] Table 1 is a portion of a spreadsheet that organizes data related to a set of books, including "ABC" by John Doe and "XYZ" by Jane Doe, as well as attributes of each book in the set. More specifically, each cell in column A defines the name of a book, each cell in column B defines the author of a book defined by a cell in column A in the same row, each cell in column C defines the effective date of the first edition of a book defined by a cell in column A in the same row, each cell in column D defines the date of the latest edition of a book defined by a cell in column A in the same row, each cell in column E defines the sales ranking of a book defined by a cell in column A in the same row, each cell in column F defines the 2019 sales number of a book defined by a cell in column A in the same row, each cell in column G defines the 2020 sales number of a book defined by a cell in column A in the same row, each cell in column H defines the 2021 sales number of a book defined by a cell in column A in the same row, and each cell in column I defines the sales number from 2019 to 2021 of a book defined by a cell in column A in the same row. The values of the cells in column I may be derived from the corresponding values of the cells in columns F-H in the same row. For example, the value of cell I2 may be derived as the sum of the values of cells F2 through H2.
[0017] Columns A and B can be manually entered into the spreadsheet by a user using a computing device. The values in column I are derived from columns F-H, so that when data is entered into columns F-H, the cells in column I are automatically populated with data. Although traditional spreadsheets can use formulas to derive values for cells by referencing values in other cells (as discussed above), traditional spreadsheets typically require users to manually enter large amounts of data. Manually entering data into a spreadsheet can result in human error resulting in incorrect values in some cells and can consume significant amounts of computational resources.
[0018] Aspects of the present disclosure address these and other deficiencies by autonomously creating documents having a tabular structure (e.g., a spreadsheet). As described herein, the documents may be entire documents or portions of complete documents. The documents may be autonomously created or generated using natural language queries to retrieve data from one or more external data sources.
[0019] Natural language processing may refer to processing natural language to enable interaction between humans and computing devices. For example, natural language processing techniques can be used to convert a natural language query having an unstructured natural language form that a computing device cannot understand into a query having a structured form that a computing device can understand to perform a natural language processing task. The natural language query may be a text query, a voice query, etc. Examples of natural language processing tasks include text and voice processing, morphological analysis, syntactic analysis, lexical semantics, relational semantics, etc.
[0020] For example, upon receiving a natural language query from a user, a document creation manager of the computing system can translate the natural language query into a data access query to access one or more external data sources. The external data sources can be external databases or repositories, knowledge graphs, websites, etc. The natural language query can include a text query, a voice query, etc. For example, the natural language query can be a voice query received by a voice-controlled digital assistant.
[0021] With respect to a spreadsheet, the document creation manager can identify one or more attribute categories, each defining a respective column of the spreadsheet, and a number of attributes for populating cells in each column. Identifying the one or more attribute categories can include extracting a primary attribute category from the query, where the primary attribute category is identified as a main topic of the query. The primary attribute category can be assigned to a first column (e.g., column A) of the spreadsheet. Identifying the 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 in the spreadsheet, where each cell in the column is populated with a value indicative of the attribute. The 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 connections between nodes in a knowledge graph).
[0022] The document creation manager allows for further refinement of the document after the document is initially created. For example, the document creation manager can add data to the document, suggest adding newly relevant data to the document, automatically integrate newly relevant data into the document, etc. Additionally, the document creation manager can suggest creation of a document for a user based on a history of natural language queries received from the user. For example, if a user has asked a series of questions that are similar in nature, the document creation manager can suggest creation of a document that provides answers to at least those questions. Further details of the operations performed by the document creation manager are provided herein below.
[0023] Automatically creating documents and automatically populating documents with data eliminates human errors that may occur with manual entry and reduces the time and computing resources required to create documents and populate them with data. Furthermore, automatic document refinement further improves computational efficiency and reduces computing resource usage. For example, integrating newly relevant data into a document eliminates the need for a user to search for newly relevant data and manually enter this data into the document, optimizing document content updates and further reducing time and resource consumption.
[0024] FIG. 1 illustrates an example of a system architecture 100 according to an embodiment of the present disclosure. The system architecture 100 (also referred to herein as a "system") includes at least one client device 110 that can connect to a server, such as a document platform 120 (e.g., a server) via a network 130. For simplicity, one client device 110 and one document platform 120 are shown as connected to the network 130. In practice, there may be more client devices and / or document platforms. Also, in some cases, the client device may perform one or more functions of the document platform, and the document platform may perform one or more functions of the client device. The client device 110 may access or receive information from the document platform 120. The system architecture 100 may represent a cloud-based environment, which allows communication between the server(s) hosting the document platform 120 and the client device 110 via the network 130 to store and share electronic documents. Alternatively, the system architecture 100 may be applied to a locally interconnected system. Additionally, although certain aspects of the present disclosure are described with reference to spreadsheets and document applications that manage spreadsheets, those skilled in the art will understand that the systems, methods, features, and embodiments of the present disclosure may 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, the 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), a router, a hub, a switch, a server computer, and / or combinations thereof. The client devices 110 may include computing devices such as personal computers (PCs), laptops, mobile phones, smartphones, tablet computers, netbook computers, network-connected televisions, and the like. The client devices 110 may be associated with one or more users, and the client devices 110 may also be referred to as "user devices."
[0026] In the illustrated implementation, document platform 120 may interact with client device 110 such that client device 110 can execute an electronic document ("document") application in conjunction with document platform 120 to manage various documents, including documents having a tabular structure. For example, the document application can be an online document application. In some implementations, the document application can be a spreadsheet application (e.g., an online spreadsheet application). Alternatively, the document application can provide the functionality described herein without the use of document platform 120. Still alternatively, document platform 120 can interact with web browser 115 (rather than a designated document application) to, for example, display documents, receive user input related to documents, etc.
[0027] Documents of users of client devices 110 may be stored by document platform 120, for example, in data store 140. Although shown as a single device in FIG. 1, document platform 120 may be implemented, for example, as a single computing device or as multiple distributed computing devices. It should be understood and appreciated that whether a device functions as a server or a client device may depend on the particular application being implemented. That is, whether a computing device is acting as a client or a server may depend on the context of the computing device's role within the application. The relationship of client and server arises by virtue of programs running on each device and having a client-server relationship to each other.
[0028] As discussed above, interaction between client device 110 and document platform 120 may be implemented through a web browser 115 executing on client device 110. The term "web browser" is intended to refer to any program that allows a user to view markup documents (e.g., web documents), regardless of whether the browser program is a stand-alone program or an embedded program, such as a browser program included 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 of client device 110 and document platform 120. More specifically, client device 110(s) 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 execute as a distributed application across document platform 120 and one or more of client device 110. In this manner, client device 110 may not need to locally install any document application to use a document application hosted by document platform 120.
[0029] In general, functionality described in embodiments as being performed by document platform 120 may also be performed by client device 110 in other embodiments, where appropriate. Additionally, functionality attributed 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" may include a set of users and / or an entity controlled by an automated source. For example, a set of individual users integrated as a community in a social network may be considered a "user." In another example, an automated consumer may be an automated ingestion pipeline, such as a topic channel of document platform 120.
[0031] As described herein, a document may be implemented as a distributed web application where parts of the application run on multiple client devices 110 and on document platform 120 to provide collaboration among multiple users working on a single document. For example, multiple users may edit such a collaborative document simultaneously or in parallel, displaying each user's edits in real-time or near real-time (e.g., within milliseconds or seconds). When one user edits a document (e.g., a cell in the document), the edits may be sent to document platform 120 and then forwarded to other collaborating users who are editing or viewing the spreadsheet. To this end, document platform 120 may handle conflicts between collaborating users, such as when two users attempt to edit a particular cell at the same time. For example, document platform 120 may accept the first edits received or in some way prioritize collaborating users such that edits of a higher priority user are prioritized over edits of a lower priority user. If a user's edits are rejected by document platform 120, document platform 120 may send a message back to the user informing the user that the edits were rejected. In this manner, multiple users may potentially collaborate on a spreadsheet in real-time (or near real-time). In some implementations, the parties who will view and collaborate on a particular document may be designated by the original creator of the document. For example, the original creator of a document may be given "administrator" privileges that allow the creator to designate privileges for each of the other potential collaborators. The original creator may designate that other collaborators have privileges to one or more of edit the spreadsheet, view only the spreadsheet, edit designated portions of the spreadsheet, and add additional users to the list of potential collaborators. For example, a particular user may be able to edit certain portions of the spreadsheet, while other designated cells or regions of cells remain "locked" to that user, such that the user can view but not edit the locked cells.In some implementations, a spreadsheet may be designated as a "public" spreadsheet that anyone can view and / or edit.
[0032] As further shown, the document platform 120 may include a document creation manager 122 for creating a document (e.g., a spreadsheet). In response to receiving a natural language query from the client device 110, the document creation manager 122 can autonomously create or generate the document 124 based on the natural language query by populating the document 124 with data from one or more external data sources 150-1 through 150-N. 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 how to construct the document 124, the document creation manager 122 can identify one or more attribute categories associated with the document 124 to be constructed. Each attribute category defines a type of attribute. For example, the one or more attribute categories can include a primary attribute category that defines a primary attribute. The one or more attribute categories can further include one or more additional or secondary attribute categories that are associated with the primary attribute category and define respective secondary attributes. The secondary attribute categories pertain to attributes associated with the primary attribute category that may be of interest to a user. For example, for a natural language query of "create a spreadsheet of state flowers of all states in the United States," the primary attribute category can be identified as "state" based on the context, and the secondary attribute category can be identified as "state flower" based on the context.
[0034] The document creation manager 122 can further convert the natural language query into a data access query for accessing at least one of the external data sources 150-1-150-N. For example, the document creation manager 122 can convert the natural language query into an appropriate command format (e.g., SQL command format) to retrieve data from at least one of the external data sources 150-1-150-N. If the natural language query is a voice query (e.g., received by a voice-controlled digital assistant), the document creation manager 122 can first perform an appropriate speech-to-text conversion technique to convert the speech into text format for conversion to a data access query.
[0035] In some implementations, at least one of the external data sources 150-1 to 150-N includes a knowledge graph. In general, a knowledge graph is a graph-structured data model that provides a comprehensive collection of structured data about a network of entities (e.g., objects, events, concepts) and the relationships between each entity and the attributes or properties associated with each entity. The knowledge graph may include a number of nodes corresponding to respective entities and a number of edges that define relationships between pairs of nodes (entities). The knowledge graph may be embodied as an undirected graph or a directed graph that defines unidirectional relationships or links between the nodes. The knowledge graph may use inference mechanisms to derive new knowledge. As another example, the external data source may be a website. For example, for entities that are not already present in the knowledge graph, a search engine may be used to search the external data source for data.
[0036] Once data is obtained from at least one of the external data sources 150-1 through 150-N, the document creation manager 122 can create the document 124. For example, if the document 124 comprises a spreadsheet, the spreadsheet can be created to include one or more columns, each assigned to a respective attribute category, and the rows of the spreadsheet can include one or more cells, each populated with a respective value indicating an attribute corresponding to the attribute category. A primary attribute category can be assigned to the first column of the spreadsheet (e.g., column A), and each secondary attribute category (if present) can be assigned to a corresponding additional column in the spreadsheet. Each cell in the first row (e.g., row 1) can be populated with the name of the attribute category for the corresponding column, and each cell in subsequent rows can be populated with a respective value for the attribute category. After the document 124 is created, the user can modify the presentation of the document 124 via the client device 110. For example, if the document 124 is a spreadsheet, the user can rearrange or manipulate the data using appropriate spreadsheet tools. An example of this spreadsheet is described in more detail below with reference to FIG. 2.
[0037] Each secondary attribute category may be selected based on a historical analysis of previous natural language queries or search history to identify the most popular attribute categories related to the primary attribute category. For example, the document creation manager 122 may identify information related to the primary attribute category that other users have previously asked about to determine what information may be of interest to the current user. This may be used to create documents 124 that include information not directly requested by the user, but that may be of interest to the user based on search history.
[0038] Illustratively, for the natural language query "Create a spreadsheet of the winningest college basketball coaches of all time," the document creation manager 122 may identify "wins" as at least one popular attribute category related to the primary attribute category "coach." Additionally, the document creation manager 122 may identify "win percentage" as another common attribute category that may be included in the document 124. This may be because other users have previously provided natural language queries such as "Which college basketball coach has the highest winning percentage," and thus the document creation manager 122 has determined that this information, although not specifically requested, may be of interest to the current user.
[0039] The document creation manager 122 can provide one or more additional features. In some implementations, the document creation manager 122 can further provide access back to (e.g., links to) external data sources. This can allow a user to examine the details of the data populated in the document 124 and can provide a way for the user to verify the reliability of the data. For example, if a user is concerned about the accuracy of data from an external data source, the user can access the external data source itself (e.g., via a provided link, etc.) to determine whether to trust the accuracy of the data.
[0040] In some implementations, the document creation manager 122 can further implement a data reliability feature. For example, the data reliability feature can be associated with the confidence that data obtained from a particular source is an accurate response to a particular natural language query. The data reliability feature can utilize a visual reliability indicator of the data, such as a reliability percentage, a symbol (e.g., color) corresponding to a range of reliability (e.g., a green circle if reliability is greater than 90% and a red circle if reliability is less than 50%). A user can set a customizable reliability threshold that must be exceeded to populate the corresponding cell with data. For example, for some natural language queries, a user may want to ensure that only reliable data is used (e.g., set a reliability threshold of 90%), while for some other natural language queries, a user may have a greater tolerance for less reliable data (e.g., do not set a reliability threshold).
[0041] In some implementations, the document creation manager 122 can further identify the intent of the natural language query to leverage unstructured and / or structured data sources. For example, with respect to a spreadsheet, the document creation manager 122 can combine column categories and one or more attributes of the spreadsheet to identify the intent of the natural language query.
[0042] In some implementations, the document creation manager 122 can handle multi-dimensional data. For example, assume the document 124 is a spreadsheet that contains a list of cities in the United States. One of the columns in the spreadsheet is "Population," and a user may be interested in viewing graphs and calculations created based on the population of multiple cities. Each cell in the "Population" column can be a one-dimensional value (e.g., the most recent population) or a multi-dimensional value (e.g., an array of population over time, such as population from each census measurement). Data is programmatically populated into each cell so that the document creation manager 122 has population data over time for graphing and / or calculations.
[0043] In some implementations, the document creation manager 122 can identify a data type for the data retrieved in response to a natural language query. For example, the data may have a particular data type such as a GPS coordinate, a date, a single integer value, an array of integer values, etc. The document creation manager 122 can maintain metadata about the data type that can be used to assist in data manipulation (e.g., graphing, calculations).
[0044] In some implementations, the document creation manager 122 can provide document refinements. Document refinements allow a user to extend the document 124 with additional natural language queries. For spreadsheets created autonomously by the document creation manager 122, document refinements can be used to extend columns of the spreadsheet. For example, with respect to the state flower spreadsheet above, if a user wanted to add a state bird to the spreadsheet, the user could provide an additional natural language query to insert a column of state bird information (e.g., "add state bird to spreadsheet").
[0045] In some implementations, the document creation manager 122 can incorporate trend or virality functionality to select attributes to populate the document 124. For example, the document creation manager 122 can use external data sources to identify newly relevant data for the document 124 and populate the document 124 with the newly relevant data as attributes. Additionally, the document creation manager 122 can detect newly relevant data and provide suggestions to the user for incorporating the newly relevant data within the document 124.
[0046] In some implementations, the document creation manager 122 can recommend or suggest the creation of a document 124 based on one or more natural language queries. Recommendations can be made based on an analysis of a user's questioning behavior. For example, assume a user enters a natural language query of "What is the state flower of Texas?". The user then follows with two similar natural language queries asking for the state flowers of two other states in the United States. The document creation manager 122 can provide the user with a suggestion to generate a document that includes information about the state flowers of all states in the United States. If the user accepts, the data management manager 122 can build the document 124 for the user, even though the user has not directly requested the creation of the document 124.
[0047] In autonomous document creation, the document 124 may theoretically have a large amount of data (e.g., many columns and / or rows in a spreadsheet). This may result in increased resource consumption, increased costs for data acquisition, etc. To address this, in some implementations, the document creation manager 122 may enable configurable size limits on the size of the document 124. For example, the document creation manager 122 may adjust the size of the document 124 based on user input defining the number of rows and / or columns that should be included in the document 124. As another example, the document creation manager 122 may detect that the document 124 has a large amount of data (e.g., an amount of data that exceeds a threshold amount of data) and notify the user that there is a large amount of data. The notification may include a request for the user to define the amount of data to include in the document 124. Additionally or alternatively, the maximum size of the document 124 may be a user-defined setting or threshold. Thus, the document creation manager 122 may implement functionality that improves efficiency of computational resources.
[0048] In addition to the above, a user may be provided with controls that allow the user to make choices about whether and when the systems, programs, or features described herein enable collection of user information (e.g., information about the user's social network, social actions, or activities, occupation, user preferences, or the user's current location), as well as whether content or communications are sent from the server to the user. Additionally, certain data may be processed in one or more ways such that personally identifiable information is removed before it is stored or used. For example, the user's identity may be processed such that the user's personally identifiable information cannot be identified, or if location information is obtained (such as to the city, zip code, or state level), the user's geographic location may be generalized such that the user's specific location cannot be identified. Thus, the user may control what information is collected about the user, how that information is used, and what information is provided to the user.
[0049] Figure 2 illustrates an exemplary spreadsheet 200, according to an embodiment of the present disclosure. Assume spreadsheet 200 has been generated using a document creation manager (e.g., document creation manager 122 of Figure 1) in response to a natural language query: "Create a spreadsheet of the winningest college basketball coaches of all time." Although a spreadsheet is illustrated in Figure 2, such example should not be considered limiting and any suitable document having a tabular structure is contemplated.
[0050] As shown, spreadsheet 200 includes a number of columns 210A-210E and a number of rows 220-1-220-4. Although five columns and four rows are shown, the number of columns and rows is not to be considered limiting. Row 220-1 is a descriptive row that indicates the type of data to be inserted into the cells of the corresponding column.
[0051] Column 210A is assigned to the primary attribute category "Coach." The text "Coach" is entered into a cell having an address defined in row 220-1 and column 210A to indicate that the data held in other cells of column 210A (e.g., the respective cells having addresses defined in column 210A and rows 220-2 through 220-4) correspond to the names of coaches. For example, the cell having an address defined in row 220-2 and column 210A is entered with the coach name "John Doe," and the cell having an address defined in row 220-3 and column 210A is entered with the coach name "Jane Smith." Thus, column 210A is defined as a "Coach" column and includes a number of cells having values indicating respective coach names.
[0052] Column 210B is assigned to the secondary attribute category "WINS." The text "WINS" is entered into a cell having an address defined in row 220-1 and column 210B to indicate that the data held in the other cells of column 210B (e.g., the respective cells having addresses defined in column 210B and rows 220-2 through 220-4) correspond to the number of wins for each of the coaches. For example, the cell having an address defined in row 220-2 and column 210B is entered with the value "1132" indicating that John Doe has a total of 1132 wins, and the cell having an address defined in row 220-3 and column 210B is entered with the value "946" indicating that Jane Smith has a total of 946 wins. Thus, column 210B is defined as a "WINS" column and includes a plurality of cells having values indicating the wins for each of the coaches listed in column 210A.
[0053] Column 210C is assigned to the secondary attribute category "Loss." The text "Loss" is entered into a cell having an address defined in row 220-1 and column 210C to indicate that the data held in the other cells of column 210C (e.g., the respective cells having addresses defined in column 210C and rows 220-2 through 220-4) correspond to the number of losses for each of the coaches. For example, the cell having an address defined in row 220-2 and column 210C is entered with the value "344" to indicate that John Doe's total number of losses is 344, and the cell having an address defined in row 220-3 and column 210C is entered with the value "385" to indicate that Jane Smith's total number of losses is 385. Thus, column 210C is defined as a "Loss" column and includes a plurality of cells having values indicative of the wins for each of the coaches listed in column 210A.
[0054] Column 210D is assigned to the secondary attribute category "Win Rate." The text "Win Rate" is entered into a cell having an address defined in row 220-1 and column 210D to indicate that the data held in the other cells of column 210D (e.g., the respective cells having addresses defined in column 210D and rows 220-2 through 220-4) correspond to the win rates of the respective coaches. For example, the cell having an address defined in row 220-2 and column 210D is entered with a value of "76.7" indicating that John Doe has a win rate of 76.7, and the cell having an address defined in row 220-3 and column 210D is entered with a value of "71.71" indicating that Jane Smith has a win rate of 71.1. Thus, column 210D is defined as a "Win Rate" column and includes a plurality of cells having values indicating the win rates of each of the coaches listed in column 210A.
[0055] Column 210E is assigned to the secondary attribute category "Season." The text "Season" is entered into the cell having an address defined in row 220-1 and column 210E to indicate that the data held in the other cells of column 210E (e.g., the respective cells having addresses defined in column 210E and rows 220-2 through 220-4) corresponds to the number of seasons each coach has coached. For example, the cell having an address defined in row 220-2 and column 210E is entered with the value "44" to indicate that John Doe has coached for 44 seasons, and the cell having an address defined in row 220-3 and column 210D is entered with the value "43" to indicate that Jane Smith has coached for 43 seasons. Thus, column 210E is defined as a "Season" column and includes a plurality of cells having values indicating the number of seasons each of the coaches listed in column 210A has coached.
[0056] Upon request, additional data may be added to spreadsheet 200. For example, to add information regarding the birthdate of each coach, a user may provide an appropriate natural language query (e.g., "Add the birthdate of each coach to the spreadsheet"). In response to receiving the query, a "Birthdate" column may be added to spreadsheet 200 indicating the birthdate of each coach listed in current coaching column 210A.
[0057] 3 illustrates a flow diagram of an autonomous document creation method 300 according to an embodiment of the present disclosure. Method 300 may be performed by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. In one embodiment, some or all of the operations of method 300 may be performed by document creation manager 122 of FIG. 1.
[0058] At block 310, processing logic receives a natural language query corresponding to a request to create a document having a tabular structure. In some implementations, the document is a spreadsheet including multiple columns of cells and multiple rows of cells. The natural language query may include at least one of a textual natural language query received from a user via a GUI, a spoken natural language query received from a user (e.g., via a voice-controlled digital assistant), and the like.
[0059] At block 320, processing logic identifies one or more attribute categories associated with the document from the natural language query. Each attribute category corresponds to a type of attribute, and each cell of the document can be populated with data indicative of the attribute. In some implementations, 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 the natural language query using any suitable natural language processing technique.
[0060] At block 330, the processing logic converts the natural language query into a data access query for accessing at least one external data source. For example, the processing logic can convert the natural language query into an appropriate command format (e.g., SQL command format) for retrieving data from the at least one external data source. If the natural language query is a voice query (e.g., received by a voice-controlled digital assistant), the document 122 first performs an appropriate speech-to-text conversion technique to convert the speech into text format for conversion into a data access query. In some implementations, the at least one external data source includes a knowledge graph. The query conversion can be performed using a query conversion mechanism that provides functionality related to semantic representation, language understanding, and question answering. These capabilities can be leveraged to understand the intent of the natural language query and convert it into a data access query that is used to search for data in the at least one external data source. Additionally, the query conversion mechanism can improve its ability to understand the intent of the natural language query based on previous natural language query conversions and / or results of searches (e.g., previous web search queries, search results, user selection of related search results).
[0061] At block 340, the processing logic retrieves from at least one external data source a number of data items corresponding to one or more attribute categories, and at block 350, populates each cell of the document with the respective data items to generate the document. For example, if the document is a spreadsheet, a first column of the spreadsheet may be assigned to a primary attribute category, a first cell of the first column being populated with an identifier of the primary attribute category, and other cells of the first column being populated with values corresponding to the data items associated with the primary attribute category. A second column of the spreadsheet may be assigned to one of the secondary attribute categories, a first cell of the second column being populated with an identifier of the secondary attribute category, and other cells of the second column being populated with values corresponding to the data items associated with the secondary attribute category. The value of the cell of the second column is related to the value of the cell of the first column in the same row.
[0062] For example, the at least one external data source may include a primary data source, such as a knowledge graph. However, the primary data source may not yet include certain information to satisfy a query. For example, if a document to be generated includes data items about local restaurants, the opening 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 a case, the at least one external data source may further include a secondary data source that supplements certain information missing from the primary data source. For example, the secondary data source may be a website and may be identified utilizing a query in a search engine.
[0063] In some implementations, the document may be generated according to a configurable size limit. For example, the user may provide hints as to how large the document should be (e.g., number of rows and / or columns in a spreadsheet). As another example, the processing logic may detect that the document has a large amount of data (e.g., an amount of data that exceeds a threshold amount of data) and notify the user that there is a large amount of data. The notification may include a request for the user to define the amount of data to include in the document. Additionally or alternatively, the maximum size of the document may be a user-defined setting or threshold. More details regarding blocks 310-340 are described above with reference to FIGS. 1-2.
[0064] 4 illustrates a flow diagram of a method 400 for autonomously improving a document according to an embodiment of the present disclosure. Method 400 may be performed by processing logic that may include hardware (circuitry, 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 400 may be performed by document creation manager 122 of FIG. 1.
[0065] At block 410, processing logic retrieves one or more additional data items from at least one external data source and integrates them into a document having a tabular structure. For example, the document may be a spreadsheet including multiple columns of cells and multiple rows of cells. It is assumed that the document was created prior to receiving the natural language query. In some implementations, the document was created autonomously according to the method described above with reference to FIG. 3. In some implementations, at least a portion of the document was created manually by a user.
[0066] In some implementations, one or more additional data items are retrieved in response to receiving the additional natural language query. The additional natural language query may include at least one of a textual 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 may identify from the additional natural language query one or more secondary attribute categories associated with the document, translate the additional natural language query into a data access query for accessing at least one external data source, and retrieve one or more additional data items from the at least one external data source corresponding to the one or more secondary attribute categories, similar to the process described above with reference to blocks 320-340 of FIG. 3 .
[0067] In some implementations, one or more additional data items are identified from at least one external data source as newly relevant data for the document. For example, the newly relevant data may include trending or viral information not currently present in the document.
[0068] At block 420, processing logic updates the document based on the one or more additional data items. Updating the document may include updating one or more attributes of one or more existing cells of the document based on the one or more additional data items, adding one or more cells with one or more attributes populated based on newly associated data, etc.
[0069] For example, if the document comprises a spreadsheet, updating the document may include adding one or more additional columns to the document and populating one or more cells of the one or more additional columns with one or more respective attributes, each corresponding to a particular additional data item.
[0070] In some implementations, each of the one or more attribute categories is an additional secondary attribute category to the document's primary attribute category. For example, if the document includes a spreadsheet, the primary attribute category may be assigned to a first column of the spreadsheet. An additional column of the spreadsheet may be assigned to one of the additional secondary attribute categories, with a first cell of the additional column being populated with an identifier of the additional secondary attribute category and other cells of the additional column being populated with a value corresponding to a data item associated with the additional secondary attribute category. The value of the cell of the additional column is related to the value of the cell of the first column in the same row. Further details regarding blocks 410 and 420 are described above with reference to Figures 1-3.
[0071] 5 illustrates a flow diagram of a method 500 for autonomously generating recommended documents according to an embodiment of the present disclosure. The method 500 may be performed by processing logic that may include hardware (circuitry, 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 500 may be performed by the document creation manager 122 of FIG. 1.
[0072] At block 510, the processing logic receives a number of natural language queries from a user. For example, the natural language queries may include at least a first natural language query and a second natural language query. Each natural language query may include at least one of a textual 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), etc.
[0073] At block 520, processing logic determines that the natural language queries are associated with similar topics. Determining that the natural language queries are associated with similar topics may include identifying at least the first and second natural language queries as related to similar information requests. For example, the first natural language query may be "What is the state flower of Texas" and the second natural language query may be "What is the state flower of New York."
[0074] At block 530, processing logic sends recommendations to the user to create a document having a tabular structure based on the natural language queries. For example, if the first natural language query is "What is the state flower of Texas" and the second natural language query is "What is the state flower of New York," processing logic may generate suggestions to create a document that includes information about the state flowers of all states in the United States.
[0075] At block 540, processing logic receives an indication from the user to create the document. If processing logic does not receive an indication from the user to create the document (e.g., the user responds negatively to the recommendation), processing logic does not create the document and the process ends.
[0076] At block 550, processing logic generates the document. The document may be generated in a manner similar to that described above with reference to Figure 3. For example, processing logic may retrieve data items from at least one external data source that correspond to attribute categories identified from the natural language query and populate each cell of the document with the respective data items. Further details regarding blocks 510-550 are described above with reference to Figures 1-4.
[0077] FIG. 6 is a block diagram illustrating an exemplary computer system according to an embodiment of the present disclosure. The computer system 600 may be the document platform 120 or the client device 110 of FIG. 1. The machine may operate as a server or an end-point machine in an end-point server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be 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 bridge, or any machine capable of executing (sequentially or otherwise) a set of instructions that specify operations to be performed by the machine. Furthermore, although only a single machine is illustrated, the term "machine" is intended to include any collection of machines that individually or jointly execute a set (or sets) of instructions to perform any one or more of the methodologies discussed herein.
[0078] The exemplary computer system 600 includes a processing device (processor) 602, a main memory 604 (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM), such as synchronous dynamic random access memory (SDRAM), double data rate (DDR SDRAM), or DRAM (RDRAM®)), 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.
[0079] The processor (processing device) 602 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, and the like. More specifically, the processor 602 may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or a combination of instruction sets. The processor 602 may also be one or more special-purpose processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, and the like. The processor 602 is configured to execute instructions 605 for performing operations discussed herein (e.g., instructions for predicting viewership of a channel lineup).
[0080] Computer system 600 may further include a network interface device 608. Computer system 600 may also include a video display unit 610 (e.g., a liquid crystal display (LCD) or cathode ray tube (CRT)), input devices 612 (e.g., a keyboard and alphanumeric keyboard, motion sensor input devices, touch screen), cursor control devices 614 (e.g., a mouse), and signal generation devices 620 (e.g., a speaker).
[0081] The data storage device 618 may include a non-transitory machine-readable storage medium 624 (also a computer-readable storage medium) having stored thereon one or more sets of instructions 605 embodying one or more of the methodologies or functions described herein (e.g., for obtaining optimized encoder parameter settings). The instructions may reside, completely or at least partially, within the main memory 604 and / or within the processor 602 during execution by the computer system 600, with the main memory 604 and the processor 602 also constituting machine-readable storage media. The instructions may further be transmitted or received over a network 630 via the network interface device 608.
[0082] In one embodiment, the instructions 605 include instructions for designating a verbal statement as a voting question. Although the computer-readable storage medium 624 (machine-readable storage medium) is shown as a single medium in the exemplary embodiment, the terms "computer-readable storage medium" and "machine-readable storage medium" should be interpreted to include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) that store one or more sets of instructions. The terms "computer-readable storage medium" and "machine-readable storage medium" should also be interpreted to include any medium that can store, encode, or carry a set of instructions for execution by a machine and cause the machine to perform one or more of the methodologies of the present disclosure. Thus, the terms "computer-readable storage medium" and "machine-readable storage medium" are intended to include, but are not limited to, solid-state memory, optical media, and magnetic media.
[0083] References throughout this specification to "one implementation" or "an implementation" mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the phrases "in one implementation" or "in an implementation" appearing in various places throughout this specification may, but do not necessarily, refer to the same embodiment, depending on the context. Furthermore, particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0084] To the extent that the terms "includes," "including," "has," "contains," variations thereof, and other similar words are used in either the detailed description or the claims, these terms are intended to be inclusive in the same manner as the term "comprising" as an open transition word, without excluding additional or other elements.
[0085] The terms "component," "module," "system," and the like, as used in this application, are intended to generally refer to computer-related entities, either hardware (e.g., circuitry), software, a combination of hardware and software, or entities related to an operating machine having one or more specific functions. For example, a component may 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, a thread of execution, a program, and / or a computer. By way of example, both an application running on a controller and the controller may be a component. One or more components may reside within a process and / or thread of execution, and a component may be localized on one computer and / or distributed among two or more computers. Furthermore, a "device" may be provided in the form of specially designed hardware, general-purpose hardware specialized by execution of software that enables the hardware to perform a specific function (generating points of interest and / or descriptors), software on a computer-readable medium, or a combination thereof.
[0086] The aforementioned systems, circuits, modules, etc., are described with respect to interactions between multiple components and / or blocks. It will be understood that such systems, circuits, components, blocks, etc., may include those components or designated subcomponents, portions of the designated components or subcomponents, and / or additional components, according to various permutations and combinations of the foregoing. Subcomponents may also be implemented as components communicatively coupled to other components, rather than being included in a parent component (hierarchical). Furthermore, it should be noted that one or more components may be combined into a single component providing an integrated function, or may be divided into several separate subcomponents, and that any one or more intermediate layers, such as a management layer, may be provided to communicatively couple such subcomponents to provide an integrated function. Any component described herein may also interact with one or more other components not specifically described herein, but known to those skilled in the art.
[0087] Furthermore, the word "example" or "exemplary" is used herein to mean serving as an example, illustration, or illustration. Any aspect or design described herein as "exemplary" should not necessarily be construed as preferred or advantageous over other aspects or designs. Rather, use of the word "example" or "exemplary" is intended to present concepts in a representative manner. 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 any of the natural inclusive permutations. That is, if X employs A, if X employs B, or if X employs both A and B, then "X employs A or B" is satisfied in any of the foregoing cases. Furthermore, the articles "a" and "an" as used in this application and the appended claims should generally be construed to mean "one or more" unless otherwise specified or clear from the context to refer to the singular form.
[0088] Finally, embodiments described herein include the collection of data describing users and / or user 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 data collection. Additionally, the user may opt-in or opt-out of participating in such data collection activities. In one embodiment, the collected data is anonymized before performing any analysis to obtain any statistical patterns, such that the identity of the user cannot be determined from the collected data.
Claims
1. receiving, by a processing device, a natural language query corresponding to a request to create an original version of the document having a tabular structure, wherein no further user interaction is required; identifying, by the processing device, a set of attribute categories associated with the document, the set of attribute categories including first attribute categories corresponding to one or more cells populated with one or more first attributes and second attribute categories corresponding to one or more cells populated with one or more second attributes; translating, by the processing device, the natural language query into a data access query for accessing at least one external data source including a knowledge graph; obtaining, by the processing device, from the at least one external data source, a plurality of data items corresponding to the set of attribute categories; generating, by the processing device, the original version of the document by populating each cell of a plurality of cells of the document with a respective data item of the plurality of data items; A method comprising:
2. The method of claim 1 , wherein the at least one external data source further comprises a website.
3. The method of claim 1 , wherein generating the original version of the document comprises generating the original version of the document having a size determined according to a size constraint.
4. obtaining, by said processing device, one or more additional data items from said at least one external data source; updating, by the processing device, the document based on the one or more additional data items; The method of claim 1 further comprising:
5. Obtaining the one or more additional data items comprises: receiving an additional natural language query; obtaining the one or more additional data items in response to receiving the additional natural language query; The method of claim 4 further comprising:
6. Obtaining the one or more additional data items comprises: identifying new relevant data about the document from the at least one external data source; obtaining said newly relevant data from said at least one external data source; The method of claim 4 further comprising:
7. A memory device; A processing device coupled to the memory device, the processing device comprising: receiving a natural language query corresponding to a request to create an original version of a document having a tabular structure, the request not requiring further user interaction; identifying a set of attribute categories associated with the document, the set of attribute categories including a first attribute category corresponding to one or more cells populated with one or more first attributes and a second attribute category corresponding to one or more cells populated with one or more second attributes; translating the natural language query into a data access query for accessing at least one external data source including a knowledge graph; obtaining, from the at least one external data source, a plurality of data items corresponding to the set of attribute categories; generating the original version of the document by populating each cell of a plurality of cells of the document with a respective data item of the plurality of data items; A system comprising:
8. The system of claim 7 , wherein the at least one external data source further comprises a website.
9. The system of claim 7 , wherein generating the original version of the document comprises generating the original version of the document having a size determined according to a size constraint.
10. The operation includes: obtaining one or more additional data items from said at least one external data source; updating the document based on the one or more additional data items; The system of claim 7 further comprising:
11. Obtaining the one or more additional data items comprises: receiving an additional natural language query; obtaining the one or more additional data items in response to receiving the additional natural language query; The system of claim 10 further comprising:
12. Obtaining the one or more additional data items comprises: identifying new relevant data about the document from the at least one external data source; obtaining said newly relevant data from said at least one external data source; The system of claim 10 further comprising:
13. A memory device; A processing device coupled to the memory device, the processing device 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 recommendations to the user to create an original version of a document having a tabular structure based on the plurality of natural language queries; in response to receiving an indication from the user to create the original version of the document, generating the original version of the document without further user interaction; Equipped with generating the original version of the document by populating each cell of a plurality of cells of the document with a respective data item of a set of data items obtained from at least one external data source including a knowledge graph; the set of data items corresponding to a set of attribute categories associated with the document; the set of attribute categories includes a first attribute category corresponding to one or more cells populated with one or more first attributes, and a second attribute category corresponding to one or more cells populated with one or more second attributes.
14. Generating the original version of the document includes: identifying the set of attribute categories associated with the document; obtaining said set of data items from said at least one external data source; The system of claim 13 further comprising:
15. The system of claim 13, wherein the at least one external data source further comprises a website.
16. The operation includes: obtaining one or more additional data items from said at least one external data source; updating the document based on the one or more additional data items; The system of claim 13 further comprising:
17. Obtaining the one or more additional data items comprises: receiving an additional natural language query; obtaining the one or more additional data items in response to receiving the additional natural language query; The system of claim 16 further comprising:
18. Obtaining the one or more additional data items comprises: identifying new relevant data about the document from the at least one external data source; obtaining said newly relevant data from said at least one external data source; The system of claim 16 further comprising: