Conceptual level text editing on productivity applications
Generating new content suggestions for documents through concept-level text editing tools solves the problem of slow progress in document creation and editing, enabling more efficient and organized document creation and editing.
Patent Information
- Application Number
- CN202380087226.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-03-31
- Filing Date
- 2023-12-05
- Publication Date
- 2025-07-29
AI Technical Summary
Existing productivity applications are slow to continue writing in a coherent and organized manner when users continue writing, with existing tools primarily limited to help in grammar and spelling, and lack concept-level text editing support.
Provides concept-level text editing tools to help users create documents by generating suggestions for new content (such as outlines or text) of documents, and improve the quality of existing content, including generating lists of outline item suggestions, text suggestions, and natural language suggestions.
It improves the efficiency and quality of document creation and editing, helps users organize document content in logical order, and provides more comprehensive text editing support.
Smart Images

Figure CN120390933A_ABST
Abstract
Description
Background Art
[0001] Productivity applications can include various tools and information that assist with performing various tasks related to generating content, including creating and editing content within a document. When creating and editing content, a user can start from a blank page or from an existing document. Creating a document from scratch is a well-known challenge for users. Even when some text has been written, users typically experience slow progress when continuing to write the document in a coherent and organized manner. Accordingly, some productivity applications provide text editing tools to assist users with writing. However, existing tools are typically limited to assisting users with grammar and spelling.
[0002] Aspects of the present invention are based on these and other general considerations. Additionally, although relatively specific problems may be discussed, it should be understood that the examples are not limited to solving the specific problems identified elsewhere in the background art or in the present disclosure. Summary of the Invention
[0003] According to an example of the present disclosure, a productivity application provides concept-level text editing tools that assist a user in creating a document by generating suggestions for new content (e.g., an outline or text) for the document, while also improving the quality of the existing content of the document. More specifically, the present disclosure teaches the ability to generate an outline by providing step-by-step suggestions for the next outline item, generate text suggestions based on a selected outline item, generate new outline item suggestions from a selected text, and generate a list of natural language suggestions for existing outlines and / or existing text in a document. It should be understood that any implementation or modification of the document or outline based on the suggestions is reviewed by the user.
[0004] Any one of the above one or more aspects is combined with any other one of the one or more aspects. Any one of the one or more aspects as described herein.
[0005] The Summary of the Invention is provided to introduce a selection of concepts in a simplified form that will be further described in the Detailed Description below. The Summary of the Invention is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Additional aspects, features, and / or advantages of the examples will be set forth in part in the description that follows, and in part will be obvious from the description, or may be learned by practice of the present disclosure. Brief Description of the Drawings
[0006] Non-limiting and non-exhaustive examples are described with reference to the following drawings.
[0007] Figure 1 A block diagram depicting an example of an operating environment in which a concept-level text editing tool may be implemented, according to an example of the present disclosure;
[0008] Figures 2A - 2C Depicts a flowchart of an example method for generating new outline item suggestions for an outline to be used for creating a document - auto - completing the outline;
[0009] Figures 3A - 3C Depicts a flowchart of an example method for generating text suggestions corresponding to one or more outline items according to an example of the present disclosure;
[0010] Figure 4A and 4B Depicts a flowchart of an example method for generating outline item suggestions corresponding to one or more text blocks in a document according to an example of the present disclosure;
[0011] Figure 5 Depicts a flowchart of an example method for generating outline suggestions for improving an existing outline according to an example of the present disclosure;
[0012] Figure 6 Depicts a flowchart of an example method for generating document suggestions for improving an existing document according to an example of the present disclosure;
[0013] Figure 7A and Figure 7B Shows an overview of an example generative machine - learning model that can be used according to an example of the present disclosure;
[0014] Figure 8 Is a block diagram showing example physical components of a computing device in which aspects of the present disclosure can be practiced;
[0015] Figure 9 Is a simplified block diagram of a computing device that can be used to practice aspects of the present disclosure; and
[0016] Figure 10 Is a simplified block diagram of a distributed computing system in which aspects of the present disclosure can be practiced. Detailed Description
[0017] In the following detailed description, reference is made to the accompanying drawings, which form a part of the detailed description, and in which specific aspects or examples are shown by way of illustration. Without departing from the present disclosure, these aspects can be combined, other aspects can be utilized, and structural changes can be made. The aspects can be practiced as a method, system, or device. Accordingly, the aspects can take the form of a hardware implementation, an implementation completely in software, or an implementation combining software and hardware aspects. Thus, the following detailed description should not be considered restrictive, and the scope of the present disclosure is defined by the appended claims and their equivalents.
[0018] Productivity applications can include a variety of tools and information that assist in performing various tasks related to generating content, including creating and editing content within a document. When creating and editing content, a user can start with a blank page or from an existing document. Creating a document from scratch is a well-known challenge for users. Even when some text has been written, users often experience slow progress in continuing to write the document in a coherent and organized manner. Accordingly, some productivity applications provide text editing tools to assist users in writing. However, existing tools are typically limited to helping users with grammar and spelling.
[0019] According to examples of the present disclosure, a productivity application provides concept-level text editing tools that assist a user in creating a document by generating suggestions for new content (e.g., an outline or text) for the document while also improving the quality of the existing content of the document. More specifically, the present disclosure teaches the ability to generate an outline by providing step-by-step suggestions for the next outline item, generate text suggestions based on a selected outline item, generate new outline item suggestions from a selected text, and generate a list of natural language suggestions for existing outlines and / or existing text in a document. It should be understood that any implementation or modification of the document or outline based on the suggestions is reviewed by the user.
[0020] It should be understood that the term "outline" in this application is a hierarchical way to visually organize the ideas and topics in a document in logical order. Each outline item of the outline can represent an idea. The term "outline" in this application is not merely a display that splits all the text in a document based on the format of the text shown in the document (e.g., a heading level, which defines a particular set of formats applied to the text, including font, font size, font color, paragraph alignment, line and paragraph spacing, etc.).
[0021] It should be understood that although, for exemplary purposes, the described embodiments generally relate to productivity applications and, more specifically, to word processing applications, the methods and systems of the present disclosure are not limited thereto. For example, the concept-level text editing tools described herein can also provide text editing in applications other than word processing applications, such as notebook applications, presentation applications, spreadsheet applications, email applications, instant messaging or chat applications, social networking platforms, and the like.
[0022] Figure 1FIG. 0 is a block diagram illustrating an example of an operating environment 90 in which a concept-level text editing tool may be implemented, according to an example of the present disclosure. To that end, the operating environment 90 includes a computing device 120 associated with a user 100. The operating environment 90 may also include one or more remote devices communicatively coupled to the computing device 120 via a network 150, such as a productivity platform server 160. The network 150 may include any type of computing network, including but not limited to a wired or wireless local area network (LAN), a wired or wireless wide area network (WAN), and / or the Internet.
[0023] The computing device 120 includes a productivity application 130 executing on the computing device 120 having a processor 122, a memory 124, and a communication interface 126. The productivity application 130 allows the user 100 to create documents. For example, the productivity application 130 may be a word processing application, such as However, in some aspects, the productivity application 130 may be a notebook application, a presentation application, a spreadsheet application, an email application, an instant messaging or chat application, a social networking application, or any other application capable of creating text.
[0024] The productivity application 130 includes a concept-level text editing tool 132 configured to assist the user 100 in creating a document by generating suggestions for new content (e.g., an outline or text) for the document, while also improving the quality of the existing content of the document. More specifically, the concept-level text editing tool 132 is configured to generate an outline by providing step-by-step suggestions for the next outline item, generate text suggestions based on a selected outline item, generate new outline item suggestions from a selected text, and generate a list of natural language suggestions for the existing outline and / or existing text in the document. To that end, the concept-level text editing tool 132 includes a document manager 134, a text suggestion generator 136, a document improvement suggester 138, an outline manager 140, an outline item suggestion generator 142, and an outline improvement suggester 144.
[0025] The document manager 134 is configured to manage one or more text blocks in the document. A text block may include one or more sentences or one or more paragraphs. For example, the document manager 134 is configured to receive one or more text blocks from the user. The document manager 134 is also configured to update the document based on text suggestions for new text blocks or suggested modifications to existing text blocks generated by the text suggestion generator 136 and / or the document improvement suggester 138. For example, the document manager 134 may be configured to add one or more new text blocks, delete one or more existing text blocks, rearrange one or more existing text blocks, and make edits to one or more existing text blocks. It should be understood that any implementation or modification of the document by the document manager 134 based on text suggestions or suggested modifications is reviewed by the user.
[0026] To this end, the document manager 134 is configured to detect a user's intention to generate a text block based on one or more outline items in the outline. To detect the user's intention to generate a text block, the document manager 134 may be configured to detect the movement of the cursor between the outline panel and the text panel of the productivity application 130 to determine which outline item(s) the user intends to instantiate as text in the document. It should be understood that the text panel is adapted to receive and display text blocks of the document, while the outline panel is adapted to receive and display the outline items of the outline. For example, the document manager 134 may be configured to determine that the user intends to generate a text block corresponding to a specific outline item if the cursor moves from the outline panel to the text panel and then back to the specific outline item in the outline panel. In some aspects, the user may select multiple outline items and move the cursor over the selected multiple outline items in the outline panel to trigger the generation of text suggestions for the selected multiple outline items in the text panel. Additionally or alternatively, the user may use a short key to generate text suggestions. It should be understood that in some aspects, the document manager 134 may also be configured to extract the user's intention from the user's voice or sound. When detecting the user's intention to generate a text block, the document manager 134 is further configured to communicate with the text suggestion generator 136 to trigger the generation of a text block, which will be further described below.
[0027] Additionally, the document manager 134 is further configured to receive a request from the user to improve an existing document. It should be understood that in some aspects, the user may request to improve a part of an existing document by selecting one or more text blocks in the existing document. In some aspects, the user may request to shorten or extend an existing document. It should be understood that in some aspects, the document manager 134 may also be configured to extract the user's request from the user's voice or sound. When receiving the user's request to improve an existing document, the document manager 134 is further configured to communicate with the document improvement suggester 138 to trigger the generation of suggestions for improvement, which will be further described below.
[0028] The text suggestion generator 136 is configured to generate text blocks of a document by generating text block suggestions for new text blocks based on one or more outline items selected by a user. For example, the text suggestion generator 136 is configured to instantiate one or more selected outline items into one or more text suggestions using one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.). The text suggestions can be one or more sentences or one or more paragraphs. For example, when the user moves the cursor from the outline panel to the text panel and back to a specific outline item in the outline panel, and the text suggestion generator 136 is configured to provide text suggestions based on the position where the cursor lands in the outline. In some aspects, the user can select multiple outline items and move the cursor over the selected multiple outline items, and the text suggestion generator 136 is configured to provide text suggestions for the selected multiple outline items.
[0029] The text suggestion generator 136 is also configured to provide text suggestions to the user at an appropriate location in the text panel on the graphical user interface of the user's computing device 120. In some aspects, the text suggestion generator 136 can be configured to identify (e.g., show or highlight in a different color) one or more outline items in the outline panel that correspond to the text suggestions when the text suggestions are presented to the user. Additionally, the text suggestion generator 136 can be configured to identify (e.g., show or highlight in a different color) a specific text block in the text panel if the user moves the cursor to one or more outline items corresponding to the specific text block.
[0030] Additionally, the text suggestion generator 136 is configured to receive an indication that the user accepts a text suggestion corresponding to one or more selected outline items. It should be understood that in some aspects, the text suggestion generator 136 can be configured to provide multiple text suggestions for the selected (s) outline item(s). In such aspects, the user can select a text suggestion from among the multiple text suggestions that will be written in the document. The text suggestion generator 136 is also configured to communicate with the document manager 134 to update the document to add new text blocks from the new text suggestions accepted by the user. Additionally, the text suggestion generator 136 is configured to automatically generate one or more suggestions for the next new text block after the new text block based on the updated document and the existing outline.
[0031] The Document Improvement Advisor 138 is configured to generate a list of natural language suggestions for an existing document to improve the quality of an existing outline associated with the document. Specifically, the Document Improvement Advisor 138 is configured to use one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate one or more document suggestions in natural language based on the existing document. Specifically, the document suggestions describe how to improve the existing document in natural language without showing the actual proposed modifications to the existing document. For example, the document suggestions can include "Use more active verbs" or "Change the sentence length to create a more engaging rhythm". The Document Improvement Advisor 138 is configured to provide one or more natural language document suggestions to the user.
[0032] Additionally, the Document Improvement Advisor 138 is configured to generate a preview of the proposed modifications to the existing document at the appropriate location in the text panel based on the document suggestions selected by the user. For example, the proposed modifications can include adding one or more new text blocks, deleting one or more existing text blocks, rearranging existing text blocks, and editing one or more of the existing text blocks. To this end, the Document Improvement Advisor 138 can be configured to provide all the proposed modifications to the existing document using the track changes in the document panel to allow the user to view and review each proposed modification.
[0033] Furthermore, the Document Improvement Advisor 138 is configured to receive an indication from the user to accept one or more of the proposed modifications to the existing document. The Document Improvement Advisor 138 is also configured to communicate with the Document Manager 134 to update the existing document to implement one or more of the proposed modifications reviewed by the user. If the Document Improvement Advisor 138 determines that there is an existing outline corresponding to the document, the Document Improvement Advisor 138 can also be configured to generate a preview of the proposed modifications to the existing outline to reflect the changes to the existing document.
[0034] The Outline Manager 140 is configured to manage one or more outline items in the outline. As described above, the term "outline" in this application is a hierarchical way to visually organize the ideas and topics in a document in logical order. Each outline item in the outline can represent an idea. It should be understood that the term "outline" in this application is not just a display of splitting all the text in the document based on the format of the text shown in the document (e.g., heading levels, which define a specific set of formats applied to the text, including font, font size, font color, paragraph alignment, line and paragraph spacing, etc.).
[0035] The outline manager 140 is also configured to update the outline based on outline item suggestions for new outline items and / or suggested modifications to existing outline items generated by the outline item suggester 142 and / or the outline improvement suggester 144. For example, the outline manager 140 may be configured to add one or more new outline items, delete one or more existing outline items, rearrange one or more existing outline items, and make edits to one or more existing outline items. It should be understood that any implementation or modification of the outline by the outline manager 140 based on outline item suggestions or suggested modifications is reviewed by the user.
[0036] To this end, the outline manager 140 is configured to receive from the user initial text, additional context data related to the document, and / or one or more outline items via the outline or text panel. The initial text may be one or more words or phrases, one or more sentences, or one or more paragraphs related to the subject matter of the document. The context data may include a description of the purpose for creating the document, a description of the preferred writing style (e.g., writing perspective, writing tense, style tone, word and diction choices, type of document, etc.). In some aspects, the user may indicate that the user wants to mimic the writing style of another author or the style of a particular show. Additionally, the context data may also include a description of the objects, settings, and characters in the scene of the story that the user wants to write. In other words, the context data may include any information related to the user's intent or vision for creating the document. It should be understood that in some aspects, the outline manager 140 may also be configured to extract user input (e.g., initial text, additional context data related to the document, and / or one or more outline items) from the user's speech or voice.
[0037] In other examples, the user may describe the outline of a story, chapter, or scene in a similar manner, which may utilize the settings, objects, and / or characters stored in the context data. This allows the productivity application 130 to generate a complete scene from the description. For example, the outline of a story makes it easier for the user to follow the changes and updates to the story without having to read every word of the fully generated output.
[0038] Additionally, when creating a story outline, the outline manager 140 may be configured to extract settings, objects, and / or characters from the story, as well as make appropriate descriptions and store them as context data. The context data is accessible and can be modified by the user. Such modifications may in turn affect the story outline. For example, if a character is modified to not have legs, the story outline may be updated to change or explain the part where the character runs a marathon.
[0039] In some aspects, the context data may also include any supplementary information that may be required to generate the document but is not generally available or accessible to the public (e.g., information within a company, such as internal projects or code names). It should be understood that such context data can be used to train one or more semantic language models.
[0040] It should be understood that in some aspects, the outline manager 140 may generate a context template or object for the context data, and the template or object can be used and applied to create another outline or document. For example, the context template can be generated using context data including information within the company and can be applied when generating internal documents.
[0041] The outline manager 140 is also configured to detect a user's intention to generate a new outline item based on the initial text. To detect the user's intention to generate a new outline item, the outline manager 140 can be configured to detect the position of the cursor in the outline panel to determine which outline level of item the user intends to generate. For example, the user can initiate the outline view and move the cursor to the outline panel to trigger the generation of a new outline item. In some aspects, the user can use a short key to open the outline panel and initiate one or more suggestions for new outline items. It should be understood that in some aspects, the outline manager 140 can also be configured to extract the user's intention from the user's voice or sound. When detecting the user's intention to generate an outline item, the outline manager 140 is also configured to communicate with the outline item suggester 142 to trigger the generation of the outline item, which will be further described below.
[0042] Additionally, the outline manager 140 is also configured to receive a request from the user to improve an existing outline. It should be understood that in some aspects, the user can request to improve a part of the existing outline by selecting one or more outline items in the existing outline. In some aspects, the user can request to shorten or expand the existing outline. It should be understood that in some aspects, the outline manager 140 can further be configured to extract the user's request from the user's voice or sound. When receiving the user's request to improve the existing document, the outline manager 140 is also configured to communicate with the outline improvement suggester 144 to trigger the generation of suggestions for improvement, which will be further described below.
[0043] The outline item suggestion generator 142 is configured to use one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate outline item suggestions for new outline items. For example, the outline item suggestion generator 142 can be configured to generate outline item suggestions for new outline items from scratch using minimal information about the document the user wishes to create. For example, as described above, the minimal information can include initial text related to the subject of the document (e.g., one or more words, one or more phrases, one or more sentences, or one or more paragraphs). Additionally, in some aspects, the outline item suggestion generator 142 can be configured to generate outline item suggestions for new outline items based on context data that describes the purpose of creating the document, a description of the preferred writing style (e.g., writing perspective, writing tense, style tone, word and diction choices, type of document, etc.). Additionally, the context data can also include a description of the objects, settings, and characters in the scenario of the story the user wants to write. In other words, the context data can include any information related to the user's intent or vision for creating the document. It should be understood that context data may be useful when using one or more semantic language models because the context data can provide information that may not have existed previously (e.g., new characters in the story the user is creating in the current outline or document) and / or information that is not otherwise accessible (e.g., information within a company, such as internal projects or code names).
[0044] To this end, the outline item suggestion generator 142 is configured to use one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate one or more suggestions for new outline items based on the initial text and any existing outline items. The outline item suggestion generator 142 is configured to provide one or more new outline item suggestions at an appropriate location in the outline panel on the user's computing device 120's graphical user interface. In some aspects, the outline item suggestion generator 142 can be configured to identify (e.g., show or highlight in a different color) one or more new outline item suggestions in the outline panel.
[0045] In other examples, the outline item suggestion generator 142 can be configured to use one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate outline item suggestions for new outline items corresponding to text blocks in the document based on the existing text blocks in the document and any existing outline items. The outline item suggestion generator 142 is also configured to provide one or more new outline item suggestions at an appropriate location in the outline panel. The outline item suggestion generator 142 can be configured to identify (e.g., show or highlight in a different color) the corresponding text blocks in the text panel when presenting the outline item suggestions to the user.
[0046] Additionally, the outline item suggestion generator 142 is configured to receive a user selection of a new outline item suggestion from one or more new outline item suggestions. The outline item suggestion generator 142 is also configured to communicate with the outline manager 140 to update the outline to add a new outline item from the selected new outline item suggestion. Additionally, the outline item suggestion generator 142 is configured to automatically generate one or more suggestions for the next new outline item after the new outline item based on the updated outline and the existing text in the document.
[0047] The outline improvement suggester 144 is configured to generate a list of suggestions in natural language for an existing outline to improve the quality of the existing outline. Specifically, the outline improvement suggester 144 is configured to use one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate one or more outline suggestions in natural language based on the existing outline. The outline suggestions describe how to improve the existing outline in natural language without showing the actual suggested modifications to the existing outline. For example, the outline suggestions can include "Use more active verbs" or "Add a call to action at the end". The productivity application 130 is also configured to provide the user with one or more natural language outline suggestions and receive a user selection of one of the natural language outline suggestions.
[0048] Additionally, the outline improvement suggester 144 is configured to generate a preview of the suggested modifications to the existing outline at the appropriate location in the outline panel based on the selected outline suggestion. For example, the suggested modifications can include adding one or more new outline items, deleting one or more existing outline items, rearranging the existing outline items, and one or more edits to the existing outline items. To this end, the outline improvement suggester 144 can be configured to utilize the track changes in the outline panel to provide all the suggested modifications to the existing outline to allow the user to view and review each suggested modification.
[0049] The outline improvement suggester 144 is configured to receive an indication that the user accepts one or more of the suggested modifications to the existing outline. The outline improvement suggester 144 is also configured to communicate with the text suggestion generator 136 to update the existing outline to implement one or more of the suggested modifications reviewed by the user. If the outline improvement suggester 144 determines that there is an existing document corresponding to the existing outline, the outline improvement suggester 144 can also be configured to generate a preview of the suggested modifications to the existing document to reflect the changes to the existing outline.
[0050] Now referring Figures 2A - 2C , a method 200 for generating new outline item suggestions for an outline to be used to create a document according to an example of the present disclosure is provided. Figures 2A - 2CThe general order of the steps of method 200 is shown. Generally, method 200 begins at 202. Method 200 may include more or fewer steps, or the order of the steps may be different from Figures 2A - 2C that shown. In an illustrative aspect, method 200 is performed by a computing device of user 100 (e.g., user device 120). However, it should be understood that one or more steps of method 200 may be performed by another device (e.g., server 160).
[0051] Specifically, in some aspects, method 200 may be performed by a productivity application (e.g., 130) executing on user device 120. For example, productivity application 130 may be or any other productivity application executing on computing device 120. More specifically, method 200 may be performed by a conceptual text editing tool (e.g., 132) of a productivity application (e.g., 130) executing on user device 120. For example, computing device 120 may be, but is not limited to, a computer, notebook, laptop, mobile device, smartphone, tablet, wearable device, or any other suitable computing device capable of executing a productivity application (e.g., 130). For example, server 160 may be any suitable computing device capable of communicating with computing device 120. Method 200 may be performed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer-readable medium. Additionally, method 200 may be performed by gates or circuits associated with a processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system on a chip (SOC), or other hardware device. Hereinafter, method 200 will be explained with reference to Figure 1 and the system, components, modules, software, data structures, user interfaces, etc. described in connection with Figure 10 FIG. 7 -
[0052] Method 200 begins at 202, where productivity application 130 receives initial text from a document of the user. The initial text may be related to the subject matter of the document. For example, when the user opens a new blank document, the user may start with the title of the document the user wants to create. The initial text may be one or more words or phrases, one or more sentences, or one or more paragraphs related to the subject matter of the document.
[0053] Additionally, at 204, the productivity application 130 can also receive additional context data related to the document. For example, the context data can include a description of the purpose for creating the document, a description of the preferred writing style (e.g., writing perspective, writing tense, style tone, word and diction choices, type of the document, etc.). In some aspects, the user can indicate that the user wants to imitate the writing style of another author or the style of a certain program. Additionally, the context data can also include a description of the objects, settings, and characters in the scene of the story that the user wants to write. In other words, the context data can include any information related to the user's intention or vision for creating the document. In some aspects, the context data can be stored as a context template that can be applied to this document.
[0054] At 206, the productivity application 130 detects the user's intention to generate a new outline item. For example, the user can initiate the outline view and move the cursor to the outline panel. Specifically, the productivity application 130 detects the position of the cursor in the outline panel to determine which outline level item the user intends to generate. As described above, the term "outline" in this application is not just a display that splits all the text in the document based on the format of the text shown in the document (e.g., heading levels, which define a specific set of formats applied to the text, including font, font size, font color, paragraph alignment, line and paragraph spacing, etc.). Similarly, the outline level is not based on the style or format (e.g., heading level) of the text that appears in the document.
[0055] For example, if there are no existing outline items, the presence of the cursor in the outline panel can trigger one or more suggestions for a new first outline item based on the initial text. In other examples, the user can initiate the outline view and provide one or more outline items in the outline panel. Subsequently, the user can move the cursor to a specific position in the outline panel to trigger one or more suggestions for a new outline item at the specific outline level corresponding to the cursor position. Additionally or alternatively, the user can use a short key for opening the outline panel and initiating one or more suggestions for new outline items. In some aspects, the user can provide one or more outline items in the outline panel. It should be understood that in some aspects, the productivity application 130 can extract the user's intention from the user's voice or sound.
[0056] In response, at 208, the productivity application 130 uses one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate one or more suggestions for a new outline item based on the initial text and any existing outline items.
[0057] At 210, the productivity application 130 provides one or more suggestions for new outline items at an appropriate location in an outline panel on a graphical user interface of a computing device (e.g., 120) of a user running the productivity application 130. It should be understood that one or more suggestions for new outline items can be identified (e.g., shown or highlighted in a different color) in the outline panel.
[0058] At 212, the productivity application 130 receives a user selection of a new outline item suggestion from one or more new outline item suggestions. In other words, the user is reviewing each new outline suggestion to select a new outline item to be added to the outline of the document. In some aspects, the user can further modify the selected new outline. At 214, the productivity application 130 updates the outline to add a new outline item from the selected new outline item suggestion.
[0059] Subsequently, at Figure 2B 216, the productivity application 130 determines whether there are existing outline items before or after the new outline item. If the productivity application 130 determines at 218 that there are no existing outline items, the method 200 jumps forward to operation 232 to automatically generate one or more suggestions for the next new outline item after the new outline item based on the updated outline and any existing text.
[0060] However, if the productivity application 130 determines at 218 that there are one or more existing outline items, the method 200 proceeds to operation 220 to determine whether there are suggestions for modifying one or more existing outline items based on the addition of the new outline item, thereby improving the overall quality of the outline. It should be understood that not all existing outline items need to be modified based on the addition of the new outline item.
[0061] If the productivity application 130 determines that there are no suggested modifications for any existing outline items, the method 200 jumps forward to operation 232 to automatically generate one or more suggestions for the next new outline item after the new outline item based on the updated outline and any existing text.
[0062] However, if the productivity application 130 determines that there are suggested modifications for one or more existing outline items, the method 200 proceeds to operation 224 to generate the suggested modifications based on the new outline item using one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.). For example, the suggested modifications can include deleting one or more existing outline items, rearranging existing outline items, editing one or more of the existing outline items, and / or adding one or more new outline items.
[0063] Subsequently, at Figure 2CAt 226, the productivity application 130 provides suggested modifications for each applicable existing outline item at an appropriate location in the outline panel. For example, the productivity application 130 can utilize a track change in the outline panel to show all the suggested modifications to the existing outline items. The user can view and review each suggested modification.
[0064] At 228, the productivity application 130 receives acceptance from the user of one or more suggested modifications to the applicable existing outline items. In some aspects, the productivity application 130 can sequentially present the suggested modifications for each applicable existing outline item. In such aspects, the productivity application 130 can receive a selection from the user in response to presenting the suggested modifications for each of the existing outline items in the applicable existing outline items. In other words, the user is reviewing each suggested modification to the existing outline items. Subsequently, at 230, the productivity application 130 updates one or more applicable existing outline items to reflect the suggested modifications accepted by the user.
[0065] At 232, the productivity application 130 automatically generates one or more suggestions for the next new outline item after the new outline item based on the updated outline and the existing text in the document. Subsequently, method 200 loops back to Figure 2A operation 210 to provide the user with suggestions for the next new outline item at the corresponding location in the outline.
[0066] Although not shown in method 200, if the productivity application 130 determines that a complete or final outline has been created, method 200 can end after updating the outline to include the new and / or modified outline items. Additionally or alternatively, method 200 can end when the productivity application 130 receives an indication of end from the user. Alternatively, in some aspects, the user can reject one or more suggestions for new outline items and / or one or more suggested modifications to existing outline items. In such aspects, method 200 can end or jump forward to generate the next new outline item.
[0067] Now referring to Figures 3A - 3C , a method 300 for generating text suggestions corresponding to one or more outline items according to an example of the present disclosure is provided. Figures 3A - 3C The general order of the steps of method 300 is shown in. Generally, method 300 begins at 302. Method 300 can include more or fewer steps, or the order of the steps can be different from the Figures 3A - 3C order shown in. In an illustrative aspect, method 300 is executed by a computing device (e.g., user device 120) of user 100. However, it should be understood that one or more steps of method 300 can be executed by another device (e.g., server 160).
[0068] Specifically, in some aspects, method 300 may be performed by a productivity application (e.g., 130) executing on user device 120. For example, productivity application 130 may be or any other productivity application executing on computing device 120. More specifically, method 300 may be performed by a conceptual text editing tool (e.g., 132) of a productivity application (e.g., 130) executing on user device 120. For example, computing device 120 may be, but is not limited to, a computer, a notebook, a laptop, a mobile device, a smart phone, a tablet, a wearable device, or any other suitable computing device capable of executing a productivity application (e.g., 130). For example, server 160 may be any suitable computing device capable of communicating with computing device 120. Method 300 may be performed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer-readable medium. Additionally, method 300 may be performed by gates or circuits associated with a processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a system on a chip (SOC), or other hardware device. In the following, method 300 will be explained with reference to Figure 1 and the system, components, modules, software, data structures, user interfaces, etc. described in FIG. 7- Figure 10 FIG.
[0069] Method 300 begins at 302, where productivity application 130 detects a user intent to generate a text block in a document corresponding to one or more outline items selected in an outline. The text block may include one or more sentences or one or more paragraphs. To this end, productivity application 130 may detect the movement of the cursor between an outline panel and a text panel to determine which outline item(s) the user intends to instantiate as text in the document. For example, when the user moves the cursor from the outline panel to the text panel and back to a specific outline item in the outline panel, productivity application 130 may determine that the user intends to generate a text block corresponding to the specific outline item. In some aspects, the user may select multiple outline items and move the cursor over the selected multiple outline items to trigger the generation of text suggestions for the selected multiple outline items. Additionally or alternatively, the user may use a shortcut key to generate text suggestions. It should be understood that, in some aspects, productivity application 130 may extract the user intent from the user's voice or sound.
[0070] At 304, the productivity application 130 uses one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to instantiate one or more selected outline items into text suggestions. The text suggestions can be one or more sentences or one or more paragraphs. For example, when the user moves the cursor from the outline panel to the text panel and back to a specific outline item in the outline panel, the productivity application 130 can provide text suggestions based on the position where the cursor lands in the outline. In some aspects, the user can select multiple outline items and move the cursor over the selected multiple outline items, and the productivity application 130 can provide text suggestions for the selected multiple outline items based on the position where the cursor falls into the outline.
[0071] At 306, the productivity application 130 provides the text suggestions to the user at an appropriate location in the text panel on the graphical user interface of the user's computing device (e.g., 120) on which the productivity application 130 is running. It should be understood that when presenting the text suggestions to the user, one or more outline items corresponding to the text suggestions can be identified (e.g., displayed in a different color or highlighted) in the outline panel. Similarly, it should be understood that if the user moves the cursor to a specific outline item in the outline panel, the corresponding text block can be identified (e.g., displayed in a different color or highlighted) in the text panel.
[0072] At 308, the productivity application 130 receives an indication that the user accepts the text suggestions corresponding to one or more selected outline items. It should be understood that in some aspects, the productivity application 130 can provide multiple text suggestions for the selected (multiple) outline items at operation 306. In such aspects, the user can select a text suggestion from the multiple text suggestions that will be written in the document. At 310, the productivity application 130 updates the document to add a new text block from the newly accepted or selected text suggestions by the user.
[0073] Subsequently, at Figure 3B 312, the productivity application 130 determines whether the document includes a pre-existing text block before adding the new text block. If the productivity application 130 determines at 314 that there is no pre-existing text block, the method 300 jumps forward to operation 330 to automatically generate the next new text block after the new text block based on the updated document.
[0074] However, if the productivity application 130 determines at 314 that there is one or more pre - existing text blocks, the method 300 proceeds to operation 316. At 316, the productivity application 130 determines whether there are proposed modifications to one or more of the pre - existing text blocks. If the productivity application 130 determines that there are no proposed modifications to any of the pre - existing text blocks, the method 300 proceeds to jump forward to operation 330 to generate the next new text block after automatically generating new text blocks based on the updated document.
[0075] However, if the productivity application 130 determines that there are proposed modifications to one or more of the pre - existing text blocks, the method 300 proceeds to operation 320 to generate proposed modifications for applicable existing text blocks based on the new text blocks using one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.). For example, the proposed modifications can include deleting one or more existing text blocks, rearranging existing text blocks, editing one or more of the existing text blocks, and / or adding one or more new text blocks.
[0076] Subsequently, at Figure 3C 322, the productivity application 130 provides the proposed modifications for each applicable pre - existing text block at an appropriate location in the text panel. For example, the productivity application 130 can utilize a track change in the text panel to show all the proposed modifications to the pre - existing text blocks. The user can view and review each proposed modification. In some aspects, the productivity application 130 can provide multiple text suggestions for each text block among the applicable pre - existing text blocks at operation 322. In such aspects, the productivity application 130 can sequentially present the proposed modifications for each applicable pre - existing text block.
[0077] At 324, the productivity application 130 receives acceptance from the user of one or more of the proposed modifications for the applicable pre - existing text blocks. As described above, in some aspects, if multiple text suggestions have been generated for each text block among the applicable pre - existing text blocks, the productivity application 130 can receive a selection from the user in response to sequentially presenting the proposed modifications for each text block among the applicable pre - existing text blocks. It should be understood that regardless of how the proposed modifications are provided to the user, the user is reviewing each proposed modification to the pre - existing text blocks. Subsequently, at 326, the productivity application 130 updates one or more of the applicable pre - existing text blocks to reflect the proposed modifications accepted by the user.
[0078] At 328, the productivity application 130 also updates one or more outline items corresponding to one or more pre - existing text blocks that have been modified. It should be understood that not all pre - existing text blocks that have been modified may require updating the corresponding outline items based on the modification. Although not shown in method 300, the modification of the corresponding outline items is also carefully monitored and reviewed by the user.
[0079] At 330, the productivity application 130 automatically generates a suggestion for the next new text block after the new text based on the updated text and outline. Subsequently, method 300 loops back to Figure 3A operation 306 to provide the next new text block suggestion at the corresponding location of the document to the user.
[0080] Although not shown in method 300, if the productivity application 130 determines that a complete or final document has been created based on the outline, method 300 may end after updating the document to include the new and / or modified text blocks. Additionally or alternatively, method 300 may end when the productivity application 130 receives an indication of end from the user. Additionally, in some aspects, the user may reject one or more new text suggestions and / or one or more suggested modifications to pre - existing text blocks. In these aspects, method 300 may end or jump forward to generate the next new text block.
[0081] Now referring to Figure 4A and Figure 4B , a method 400 for generating outline item suggestions corresponding to one or more text blocks in a document according to an example of the present disclosure is provided. Figure 4A and Figure 4B show the general order of the steps of method 400. Generally, method 400 starts at 402 and ends at 420. Method 400 may include more or fewer steps, or the order of the steps may be different from the order shown in Figure 4A and Figure 4B . In an illustrative aspect, method 400 is executed by a computing device (e.g., user device 120) of user 100. However, it should be understood that one or more steps of method 400 may be executed by another device (e.g., server 160).
[0082] Specifically, in some aspects, method 400 may be executed by a productivity application (e.g., 130) executing on user device 120. For example, productivity application 130 may be or any other productivity application executed on computing device 120. More specifically, method 400 may be executed by a conceptual text editing tool (e.g., 132) of a productivity application (e.g., 130) executed on user device 120. For example, computing device 120 may be, but is not limited to, a computer, notebook, laptop, mobile device, smartphone, tablet, wearable device, or any other suitable computing device capable of executing a productivity application (e.g., 130). For example, server 160 may be any suitable computing device capable of communicating with computing device 120. Method 400 may be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer-readable medium. Additionally, method 400 may be executed by gates or circuitry associated with a processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system on a chip (SOC), or other hardware device. Hereinafter, method 400 will be explained with reference to the Figure 1 and FIG. 7- Figure 10 described systems, components, modules, software, data structures, user interfaces, etc.
[0083] Method 400 begins at 402, where the process may proceed to 404. At 404, productivity application 130 detects a user intent to generate a new outline from an existing document. The document includes one or more text blocks, where each text block may be one or more sentences or one or more paragraphs, which productivity application 130 processes to generate new outline items. It should be understood that in some aspects, the user may request an outline to be generated based on a portion of an existing document by selecting one or more text blocks in the existing document.
[0084] At 406, productivity application 130 uses one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate suggestions for new outline items corresponding to the text blocks based on the existing text blocks in the document.
[0085] At 408, productivity application 130 provides one or more suggestions for new outline items at an appropriate location in an outline panel on the graphical user interface of the user's computing device (e.g., 120) on which productivity application 130 is running. It should be understood that when an outline item suggestion is presented to the user, the text block corresponding to the outline item suggestion may be identified (e.g., displayed in a different color or highlighted) in the text panel. Similarly, it should be understood that if the user moves the cursor to a specific text block in the document, the corresponding outline item is identified (e.g., displayed in a different color or highlighted) in the outline panel.
[0086] At 410, the productivity application 130 receives a user selection of one or more new outline item suggestions. In other words, the user is reviewing each new outline suggestion to select new outline items that will be added to the document outline. In some aspects, the user may further modify the selected new outline item suggestions. Subsequently, at Figure 4B 412, the productivity application 130 updates the outline to add new outline items from the selected new outline item suggestions.
[0087] At 414, the productivity application 130 determines whether the outline is complete based on text blocks in the document. For example, the productivity application 130 determines whether outline items have been generated for all text blocks in the document. In other words, the productivity application 130 determines whether the updated outline represents all text blocks in the document. If the productivity application 130 determines at 416 that the outline is complete, method 400 can end at 420.
[0088] However, if the productivity application 130 determines at 416 that the outline is incomplete, method 400 proceeds to operation 418. At 418, the productivity application 130 uses one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate the next outline item after the new outline item. Subsequently, method 400 loops back to Figure 4A operation 408 to provide the user with the next new outline item suggestion at the corresponding position in the outline. As described above, the productivity application 130 can continue to generate the next outline item until the outline is complete.
[0089] It should be understood that in some aspects, the productivity application 130 can receive a document and generate a new complete outline. In such aspects, the productivity application 130 can allow the user to review each outline item of the new complete outline. Additionally, although not shown in method 400, method 400 can end when the productivity application 130 receives an indication of completion from the user. It should be understood that in some aspects, the user can reject one or more new text suggestions and / or one or more proposed modifications to pre - existing text blocks. In this regard, method 400 can end or jump forward to generate the next new text block.
[0090] Now referring to Figure 5 , a method 500 for generating outline suggestions for improving an existing outline according to an example of the present disclosure is provided. Figure 5 The general order of the steps of method 500 is shown in. Generally, method 500 begins at 502 and ends at 518. Method 500 can include more or fewer steps, or the order of the steps can be different from Figure 5in a different order than shown. In an illustrative aspect, method 500 is performed by a computing device of user 100 (e.g., user device 120). However, it should be understood that one or more steps of method 500 may be performed by another device (e.g., server 160).
[0091] Specifically, in some aspects, method 500 may be performed by a productivity application (e.g., 130) executing on user device 120. For example, productivity application 130 may be or any other productivity application executing on computing device 120. More specifically, method 500 may be performed by a conceptual text editing tool (e.g., 132) of a productivity application (e.g., 130) executing on user device 120. For example, computing device 120 may be, but is not limited to, a computer, notebook, laptop, mobile device, smartphone, tablet, wearable device, or any other suitable computing device capable of executing a productivity application (e.g., 130). For example, server 160 may be any suitable computing device capable of communicating with computing device 120. Method 500 may be performed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer-readable medium. Additionally, method 500 may be performed by gates or circuits associated with a processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system on a chip (SOC), or other hardware device. In the following, method 500 will be explained with reference to Figure 1 and FIG. 7- Figure 10 described systems, components, modules, software, data structures, user interfaces, etc.
[0092] Method 500 begins at 502, where the process may proceed to 504. At 504, productivity application 130 detects a request from the user to improve an existing outline. As described above, the outline includes a plurality of outline items. It should be understood that, in some aspects, the user may request to improve a part of the existing outline by selecting one or more outline items in the existing outline. In some aspects, the user may request to shorten or extend the existing outline. It should be understood that, in some aspects, productivity application 130 may extract the user request from the user's speech or voice.
[0093] Subsequently, at 506, the productivity application 130 uses one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate one or more outline suggestions in natural language based on the existing outline. Specifically, the outline suggestions describe how to improve the existing outline in natural language without showing the actual suggested modifications to the existing outline. For example, the outline suggestions can include "using more active verbs" or "adding a call to action at the end". The productivity application 130 provides the user with one or more natural language outline suggestions.
[0094] At 508, the productivity application 130 receives a user selection of one of the natural language outline suggestions. Subsequently, at 510, the productivity application 130 generates a preview of the suggested modifications to the existing outline at the appropriate location in the outline panel based on the selected outline suggestion. For example, the suggested modifications can include adding one or more new outline items, deleting one or more existing outline items, rearranging existing outline items, and editing one or more of the existing outline items. Additionally, the productivity application 130 can utilize the track changes in the outline panel to provide all the suggested modifications to the existing outline. The user can view and review each of the suggested modifications.
[0095] At 512, the productivity application 130 receives an indication from the user to accept one or more of the suggested modifications to the existing outline. Subsequently, at 514, the productivity application 130 updates the existing outline to implement one or more of the suggested modifications reviewed by the user.
[0096] It should be understood that in some aspects, there may be an existing document corresponding to the existing outline. In such aspects, at 516, the productivity application 130 can generate a preview of the suggested modifications to the existing document to reflect the changes to the existing outline. Although not shown in method 500, the user can view and review each of the suggested modifications to the existing document. Method 500 can end at 518.
[0097] Although not shown in method 500, method 500 can loop back to operation 506 to continue generating one or more natural language outline suggestions based on the updated existing outline. Additionally, method 500 can end when the productivity application 130 determines that there are no other outline suggestions for improving the updated existing outline. Additionally or alternatively, method 500 can end when the productivity application 130 receives an indication of end from the user. Additionally, in some aspects, the user can reject one or more of the suggested modifications to the existing outline items and / or the existing text.
[0098] Now referring Figure 6 , a method 600 for generating suggestions for improving an existing document according to an example of the present disclosure is provided.Figure 6 Illustrated therein is the general order of steps of method 600. Generally, method 600 begins at 602 and ends at 616. Method 600 may include more or fewer steps, or the order of steps may be different from Figure 6 that shown therein. In an illustrative aspect, method 600 is executed by a computing device of user 100 (e.g., user device 120). However, it should be understood that one or more steps of method 600 may be executed by another device (e.g., server 160).
[0099] Specifically, in some aspects, method 600 may be executed by a productivity application (e.g., 130) executing on user device 120. For example, productivity application 130 may be or any other productivity application executing on computing device 120. More specifically, method 600 may be executed by a conceptual-level text editing tool (e.g., 132) of a productivity application (e.g., 130) executing on user device 120. For example, computing device 120 may be, but is not limited to, a computer, notebook, laptop, mobile device, smart phone, tablet, wearable device, or any other suitable computing device capable of executing a productivity application (e.g., 130). For example, server 160 may be any suitable computing device capable of communicating with computing device 120. Method 600 may be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer-readable medium. Additionally, method 600 may be executed by gates or circuits associated with a processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system on a chip (SOC), or other hardware device. Hereinafter, method 600 will be explained with reference to Figure 1 and the systems, components, modules, software, data structures, user interfaces, etc. described in connection with Figure 10 FIG. 7 -
[0100] Method 600 begins at 602, where the process may proceed to 604. At 604, productivity application 130 detects a request from the user to improve an existing document. As described above, the document includes a plurality of text blocks, and the text blocks may include one or more sentences or one or more paragraphs. It should be understood that in some aspects, the user may request to improve a portion of an existing document by selecting one or more text blocks in the existing document. In some aspects, the user may request to shorten or extend an existing document. It should be understood that in some aspects, productivity application 130 may extract the user request from the user's voice or sound.
[0101] Subsequently, at 606, the productivity application 130 uses one or more semantic language models (e.g., semantic embedding models, generative large language models, machine learning models, etc.) to generate one or more document suggestions in natural language based on the existing document. Specifically, the document suggestions describe how to improve the existing document in natural language without showing the actual suggested modifications to the existing document. For example, the document suggestions can include "use more active verbs" or "change the sentence length to create a more engaging rhythm". The productivity application 130 provides the user with one or more natural language document suggestions.
[0102] At 608, the productivity application 130 receives a user selection of one of the natural language document suggestions. Subsequently, at 610, the productivity application 130 generates a preview of the suggested modifications to the existing document at the appropriate location in the text panel based on the selected document suggestion. For example, the suggested modifications can include adding one or more new text blocks, deleting one or more existing text blocks, rearranging existing text blocks, and editing one or more of the existing text blocks. Additionally, the productivity application 130 can provide the full suggested modifications to the existing document using the track changes in the document panel. The user can view and review each of the suggested modifications.
[0103] At 612, the productivity application 130 receives an indication from the user to accept one or more of the suggested modifications to the existing document. Subsequently, at 614, the productivity application 130 updates the existing document to implement one or more of the suggested modifications reviewed by the user.
[0104] It should be understood that in some aspects, there may be an existing outline corresponding to the existing document. In such aspects, at 616, the productivity application 130 can generate a preview of the suggested modifications to the existing outline to reflect the changes to the existing document. Although not shown in method 600, the user can view and review each of the suggested modifications to the existing outline. Method 600 can end at 618.
[0105] Although not shown in method 600, method 600 can loop back to operation 606 to continue generating one or more natural language document suggestions based on the updated existing document. Additionally, method 600 can end when the productivity application 130 determines that there are no other document suggestions for improving the document. Additionally or alternatively, method 600 can end when the productivity application 130 receives an indication of end from the user. Additionally, in some aspects, the user can reject one or more of the suggested modifications to the existing document and / or the existing outline.
[0106] Figure 7A and Figure 7Billustrates an overview of an example generative machine learning model that can be used in accordance with aspects described herein. Referring first to Figure 7A , the conceptual diagram 700 depicts an overview of a pre-trained generative model package 704 in accordance with aspects described herein, where the generative model package 704 processes an input 702 to generate a model output for storing an entry in and / or obtaining information from a generative model output 706 (e.g., a suggestion and / or a suggested modification). Examples of the pre-trained generative model package 504 include, but are not limited to, the Megatron-Turing Natural Language Generation Model (MT-NLG), Generative Pretrained Transformer 3 (GPT-3), Generative Pretrained Transformer 4 (GPT-4), BigScience BLOOM (Large Open Science Open Access Multilingual Language Model), DALL-E, DALL-E2, Stable Diffusion, or Jukebox.
[0107] In an example, the generative model package 704 is pre-trained according to various inputs (e.g., various human languages, various programming languages, and / or various content types), and thus does not need to be fine-tuned or trained for a specific scenario. Instead, the generative model package 704 can be pre-trained more generally such that the input 702 includes a prompt word that is generated, selected, or otherwise designed to induce the generative model package 704 to produce a specific generative model output 706. It should be understood that the input 702 and the generative model output 706 can each include any one of various content types, including but not limited to text output, image output, audio output, video output, programmatic output, and / or binary output, etc. In an example, the input 702 and the generative model output 706 can have different content types, as can be the case when the generative model package 704 includes a generative multimodal machine learning model.
[0108] Thus, the generative model package 704 can be used in any of a variety of scenarios, and further, different generative model packages can be used in place of the generative model package 704 with substantially no modification to other associated aspects (e.g., similar to those described herein with respect to Figure 1 FIG. 7). Accordingly, the generative model package 704 operates as a tool for performing machine learning processing, where certain inputs 702 to the generative model package 704 are generated programmatically or otherwise determined such that the generative model package 704 produces a model output 706 that can then be used for further processing.
[0109] The generative model package 704 can be provided or otherwise used according to any of a variety of paradigms. For example, the generative model package 704 can be used on a computing device (e.g.,Figure 1 used locally by the computing device 140), or can be accessed remotely from a machine learning service (e.g., Figure 1 the productivity platform server 160) in ). In other examples, aspects of the generative model package 704 are distributed across multiple computing devices. In some cases, the generative model package 704 can be accessed via an application programming interface (API), such as can be provided by the operating system of the computing device and / or by a machine learning service, etc.
[0110] Referring now to the illustrated aspects of the generative model package 704, the generative model package 704 includes Input Tokenization 708, input embedding 710, model layer 712, output layer 714, and output decoding 716. In an example, the input tokenization 708 processes the input 702 to generate the input embedding 710, and the input embedding 710 includes a sequence of symbolic representations corresponding to the input 702. Accordingly, the input embedding 710 is processed by the model layer 712, the output layer 714, and the output decoding 716 to produce the model output 706. Figure 7B An example architecture corresponding to the generative model package 704 is depicted in, which is further discussed in detail below. Even so, it should be understood that the architectures shown and described herein should not be considered restrictive, and in other examples, any one of a variety of other architectures can be used.
[0111] Figure 7B is a conceptual diagram depicting an example architecture 750 of a pre-trained generative machine learning model that can be used in accordance with the aspects described herein. As described above, without departing from the aspects described herein, any one of a variety of alternative architectures and corresponding ML models can be used in other examples.
[0112] As shown, the architecture 750 processes the input 702 to produce a generative model output 706, aspects of which are discussed above with reference to Figure 7A . The architecture 750 is depicted as a Transformer model including an encoder 752 and a decoder 754. The encoder 752 processes the input embedding 758 (aspects of which can be similar to Figure 7A the input embedding 710 in ), which includes a sequence of symbolic representations corresponding to the input 756. In an example, the input 756 includes input content 702 corresponding to a content type, aspects of which can be similar to any input, request, document, outline, text block, and / or outline item.
[0113] In addition, the positional encoding 760 can introduce information about the relative and / or absolute positions of the tokens of the input embedding 758. Similarly, the output embedding 774 includes a sequence of symbolic representations corresponding to the output 772, and the positional encoding 776 can similarly introduce information about the relative and / or absolute positions of the tokens of the output embedding 774.
[0114] As shown, the encoder 752 includes an example layer 770. It should be understood that any number of such layers may be used, and the depicted architecture is simplified for illustrative purposes. The example layer 770 includes two sub-layers: a multi-head attention layer 762 and a feed-forward layer 766. In the example, residual connections are included around each of the layers 762, 766, followed by a normalization layer 764 and a normalization layer 768, respectively.
[0115] The decoder 754 includes an example layer 790. Similar to the encoder 752, any number of such layers may be used in other examples, and the depicted architecture of the decoder 754 is simplified for illustrative purposes. As shown, the example layer 790 includes three sub-layers: a masked multi-head attention layer 778, a multi-head attention layer 782, and a feed-forward layer 786. Aspects of the multi-head attention layer 782 and the feed-forward layer 786 may be similar to those discussed above with respect to the multi-head attention layer 762 and the feed-forward layer 766, respectively. Additionally, the masked multi-head attention layer 778 performs multi-head attention on the output of the encoder 752 (e.g., the output 772). In the example, the masked multi-head attention layer 778 prevents certain positions from attending to subsequent positions. This masking combined with an offset of the embedding (e.g., offset by one position, as shown in the multi-head attention layer 782) can ensure that the prediction for a given position depends on the known outputs of one or more positions less than that given position. As shown, residual connections are also included around the layers 778, 782, and 786, followed by a normalization layer 780, a normalization layer 784, and a normalization layer 788, respectively.
[0116] The multi-head attention layers 762, 778, and 782 can each linearly project the query, key, and value to corresponding dimensions using a set of linear projections. An attention function (e.g., dot product or additive attention) can be used to process each linear projection, thereby producing an n-dimensional output value for each linear projection. The resulting values can be concatenated and projected again such that the values are then processed as Figure 7B shown (e.g., by the corresponding normalization layer 764, 780, or 784).
[0117] The feed - forward layers 766 and 786 can be fully - connected feed - forward networks applied to each position. In an example, the feed - forward layers 766 and 786 each include multiple linear transformations, with a rectified linear unit activation used between the multiple linear transformations. In an example, each linear transformation is the same across different positions, but may use different parameters compared to other linear transformations of the feed - forward network.
[0118] Additionally, aspects of the linear transformation 792 can be similar to the linear transformations discussed above with respect to the multi - head attention layers 762, 778, and 782, and the feed - forward layers 766 and 786. The Softmax 794 can also convert the output of the linear transformation 792 into predicted next - token probabilities, as shown by the output probabilities 796. It should be understood that the illustrated architecture is provided as an example, and in other examples, any of a variety of other model architectures can be used in accordance with the disclosed aspects.
[0119] Accordingly, the output probabilities 796 can thus form the generative - model output 706 in accordance with the aspects described herein, such that the output of the generative ML model (e.g., which can include a structured output) is used as an input for determining an action in accordance with the aspects described herein. In other examples, the generative - model output 706 is provided as a generated output for updating a document and / or a document outline.
[0120] Figures 8 - 1 1 and the associated description provide a discussion of various operating environments in which aspects of the present disclosure can be practiced. However, the devices and systems shown and discussed with respect to Figures 8 to 1 1 are for purposes of example and illustration, and are not limiting of the numerous computing - device configurations that can be used to practice the aspects of the present disclosure described herein.
[0121] Figure 8 is a block diagram showing the physical components (e.g., hardware) of a computing device 800 in which aspects of the present disclosure can be practiced. The computing - device components described below can be applicable to the computing devices described above, including one or more devices associated with a machine - learning service (e.g., the productivity - platform server 160), and the computing device 140 discussed above with respect to Figure 1 In a basic configuration, the computing device 800 can include at least one processing unit 802 and a system memory 804. Depending on the configuration and type of the computing device, the system memory 804 can include, but is not limited to, volatile storage (e.g., random - access memory), non - volatile storage (e.g., read - only memory), flash memory, or any combination of these memories.
[0122] The system memory 804 may include an operating system 805 and one or more program modules 806 suitable for running software applications 820, such as one or more components supported by the systems described herein. By way of example, the system memory 804 may store a document manager 821, a text suggestion generator 822, a document improvement suggester 823, an outline manager 824, an outline item suggestion generator 825, and / or an outline improvement suggester 826. The operating system 805 may be suitable, for example, for controlling the operation of the computing device 800.
[0123] Additionally, embodiments of the present disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other applications and are not limited to any particular application or system. This basic configuration is shown by those components within the dashed line 808. The computing device 800 may have additional features or functionality. For example, the computing device 800 may also include additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or magnetic tapes. Such additional storage is shown by the removable storage device 809 and the non-removable storage device 810 in Figure 8 FIG. As described above, a number of program modules and data files may be stored in the system memory 804. When executed on the processing unit 802, the program modules 806 (e.g., the applications 820) may perform processes including but not limited to the aspects described herein. Other program modules that may be used in accordance with aspects of the present disclosure may include email and contact applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided applications, etc. Figure 8 FIG.
[0124] In addition, embodiments of the present disclosure may be practiced in a circuit that includes discrete electronic elements, a packaged or integrated electronic chip that contains logic gates, a circuit that utilizes a microprocessor, or a single chip that contains electronic elements or a microprocessor. For example, embodiments of the present disclosure may be practiced via a system on a chip (SOC), where
[0125] each or many of the components shown may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all of which are integrated (or "burned") onto a chip substrate as a single integrated circuit. When operating via an SOC, the functions described herein regarding the capabilities of the client switching protocol may be operated via dedicated logic integrated with other components of the computing device 800 on a single integrated circuit (chip). Embodiments of the present disclosure may also be practiced using other technologies capable of performing logical operations (e.g., AND, OR, and NOT), including but not limited to mechanical, optical, fluidic, and quantum technologies. Additionally, embodiments of the present invention may be practiced within a general purpose computer or in any other circuit or system. Figure 8 FIG.
[0126] The computing device 800 may also have one or more input devices 812, such as a keyboard, mouse, pen, voice or speech input device, touch or swipe input device, etc. It may also include (multiple) output devices 814, such as a display, speaker, printer, etc. The above devices are examples, and other devices may be used. The computing device 800 may include one or more communication connections 816 that allow communication with other computing devices 850. Examples of suitable communication connections 816 include, but are not limited to, radio frequency (RF) transmitter, receiver, and / or transceiver circuitry; universal serial bus (USB), parallel, and / or serial ports.
[0127] As used herein, the term computer-readable medium may include computer storage media. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, or program modules. System memory 804, removable storage device 809, and non-removable storage device 810 are all examples of computer storage media (e.g., memory storage). Computer storage media may include RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic tape cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other article of manufacture that can be used to store information and that can be accessed by the computing device 800. Any such computer storage media may be part of the computing device 800. Computer storage media does not include carrier waves or other propagated or modulated data signals.
[0128] Communication media may be embodied by computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transmission mechanism, and includes any information delivery media. The term "modulated data signal" may describe a signal having one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
[0129] Figure 9System 900 is shown, which can be, for example, a mobile computing device such as a mobile phone, smartphone, wearable computer (such as a smartwatch), tablet computer, laptop computer, etc., by means of which embodiments of the present disclosure can be practiced. In one embodiment, system 900 is implemented as a "smartphone" capable of running one or more applications (e.g., browser, email, calendar, contact manager, communication client, game, and media client / player). In some aspects, system 900 is integrated as a computing device, such as an integrated personal digital assistant (PDA) and wireless phone.
[0130] In a basic configuration, such a mobile computing device is a handheld computer having both input and output elements. System 900 generally includes a display 905 and one or more input buttons that allow a user to input information into system 900. The display 905 can also be used as an input device (e.g., a touchscreen display).
[0131] If side input elements are included, the optional side input elements allow for further user input. For example, the side input element can be a rotary switch, button, or any other type of manual input element. In alternative aspects, system 900 can include more or fewer input elements. For example, in some embodiments, the display 905 may not be a touchscreen. In another example, an optional keypad 935 can also be included, which can be a physical keypad or a "soft" keypad generated on a touchscreen display.
[0132] In various embodiments, the output elements include a display 905 for presenting a graphical user interface (GUI), visual indicators (e.g., light-emitting diode 920), and / or audio transducers 925 (e.g., speakers). In some aspects, a vibration transducer is included to provide tactile feedback to the user. In yet another aspect, input and / or output ports are included, such as an audio input (e.g., microphone jack) for sending signals to or receiving signals from an external device, an audio output (e.g., headphone jack), and a video output (e.g., HDMI port).
[0133] One or more applications 966 may be loaded into the memory 962 and run on or associated with the operating system 964. Examples of applications include a phone dialer, an email program, a personal information management (PIM) program, a word processing program, a spreadsheet program, an Internet browser program, a messaging program, and the like. The system 900 also includes a non-volatile storage area 968 within the memory 962. The non-volatile storage area 968 may be used to store persistent information that should not be lost even if the system 900 is powered off. The applications 966 may use and store information in the non-volatile storage area 968, such as emails or other messages used by an email application. A synchronization application (not shown) also resides on the system 900 and is programmed to interact with a corresponding synchronization application residing on a host computer to keep the information stored in the non-volatile storage area 968 synchronized with the corresponding information stored at the host computer. It should be understood that other applications may be loaded into the memory 962 and run on the system 900 described herein (e.g., a document manager, a text suggestion generator, a document improvement suggester, an outline manager, an outline item suggestion generator, an outline improvement suggester, etc.).
[0134] The system 900 has a power supply 970, which may be implemented as one or more batteries. The power supply 970 may also include an external power supply, such as an AC adapter or a powered docking station that supplements or recharges the battery.
[0135] The system 900 may also include a radio interface layer 972 that performs the functions of sending and receiving radio frequency communications. The radio interface layer 972 supports a wireless connection between the system 900 and the "outside world" via a communication carrier or service provider. Transmissions to and from the radio interface layer 972 are under the control of the operating system 964. In other words, communications received by the radio interface layer 972 may be propagated to the applications 966 via the operating system 964, and vice versa.
[0136] The visual indicator 920 can be used to provide visual notifications, and / or the audio interface 974 can be used to generate audible notifications via the audio transducer 925. In the illustrated embodiment, the visual indicator 920 is a light-emitting diode (LED), and the audio transducer 925 is a speaker. These devices can be directly coupled to the power supply 970 such that when activated, they remain on for a period of time determined by the notification mechanism even if the processor 960 and other components may be shut down to conserve battery power. The LED can be programmed to remain on indefinitely until the user takes an action to indicate the powered-on state of the device. The audio interface 974 is used to provide audible signals to the user and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 925, the audio interface 974 can also be coupled to a microphone to receive audible input, such as to support a telephone conversation. According to an embodiment of the present disclosure, the microphone can also be used as an audio sensor to support control of the notifications, as will be described below. The system 900 can also include a video interface 976 that enables operation of the on-board camera 930 to record still images, video streams, etc.
[0137] It should be understood that the system 900 can have additional features or functionality. For example, the system 900 can also include additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or magnetic tapes. Such additional storage is Figure 9 illustrated by the non-volatile storage area 968.
[0138] As described above, the data / information generated or captured and stored via the system 900 can be stored locally, or the data can be stored on any number of storage media that can be accessed by the device via the radio interface layer 972 or via a wired connection between the system 900 and a separate computing device associated with the system 900 (e.g., a server computer in a distributed computing network such as the Internet). It should be understood that such data / information can be accessed via the radio interface layer 972 or via a distributed computing network. Similarly, such data / information can be easily transmitted between computing devices for storage and use according to any of a variety of data / information transfer and storage modules, including email and collaborative data / information sharing systems.
[0139] Figure 10Shows an aspect of the architecture of a system for processing data received at a computing system from remote sources such as a personal computer 1004, a tablet computing device 1006, or a mobile computing device 1008, as described above. The content displayed at the server device 1002 can be stored in different communication channels or other storage types. For example, a directory service 1024, a web portal 1025, a mailbox service 1026, an instant messaging store 1028, or a social networking site 1030 can be used to store various documents.
[0140] Clients communicating with the server device 1002 can employ an application 1020 (e.g., similar to application 820). Additionally or alternatively, the server device 1002 can employ a document manager 1091, a text suggestion generator 1092, a document improvement suggester 1093, an outline manager 1094, an outline item suggestion generator 1095, and / or an outline improvement suggester 1096. The server device 1002 can provide data to and from client computing devices such as a personal computer 1004, a tablet computing device 1006, and / or a mobile computing device 1008 (e.g., a smart phone) via the network 1015. As an example, the computer system described above can be embodied in a personal computer 1004, a tablet computing device 1006, and / or a mobile computing device 1008 (e.g., a smart phone). In addition to receiving graphical data that can be used for preprocessing in a graphics generation system or postprocessing in a receiving computing system, any of these examples of computing devices can obtain content from the storage 1016.
[0141] It should be understood that the aspects and functions described herein can operate on a distributed system (e.g., a cloud-based computing system) where application functions, memory, data storage and retrieval, and various processing functions can operate remotely from each other via a distributed computing network such as the Internet or an intranet. Various types of user interfaces and information can be displayed via an on-board computing device display or via a remote display unit associated with one or more computing devices. For example, a user interface and various types of information can be displayed on and interacted with a wall surface on which various types of user interfaces and information are projected. Interaction with the numerous computing systems that can be used to practice the embodiments of the present invention includes keystroke input, touchscreen input, voice or other audio input, gesture input (where the associated computing device is equipped with detection capabilities such as a camera for capturing and interpreting user gestures to control the functions of the computing device).
[0142] For example, aspects of the present disclosure have been described above with reference to block diagrams and / or operational illustrations of methods, systems, and computer program products according to various aspects of the present disclosure. The functions / actions noted in the blocks may occur out of the order shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order depending upon the functionality / action involved.
[0143] The description and illustration of one or more aspects provided in this application are not intended to limit or restrict the scope of the present disclosure in any way. The aspects, examples, and details provided in this application are considered sufficient to convey ownership and enable others to make and use the claimed aspects of the present disclosure. The claimed disclosure should not be construed as limited to any aspect, example, or detail provided in this application. Whether various features (structures and methods) are shown and described combinatorially or individually, they are intended to be selectively included or omitted to yield embodiments having a particular set of features. Having provided the description and illustration of this application, those skilled in the art can envision variations, modifications, and alternative aspects that fall within the spirit of the broader aspects embodied in this application, which do not depart from the broader scope of the claimed disclosure.
[0144] Additionally, the aspects and functions described herein may operate on a distributed system (e.g., a cloud-based computing system), where application functions, memory, data storage and retrieval, and various processing functions may operate remotely from each other via a distributed computing network such as the Internet or an intranet. Various types of user interfaces and information may be displayed via an on-board computing device display or via a remote display unit associated with one or more computing devices. For example, various types of user interfaces and information may be displayed on and interacted with a wall onto which they are projected. Interaction with the numerous computing systems that may be used to practice aspects of the present invention includes keystroke input, touchscreen input, voice or other audio input, and gesture input (where the associated computing device is equipped with detection functionality such as a camera for capturing and interpreting user gestures to control the functionality of the computing device).
[0145] The phrases “at least one,” “one or more,” “or,” and “and / or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the statements “at least one of A, B, and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” “A, B, and / or C,” and “A, B, or C” means either A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together.
[0146] The term "a" or "an" entity refers to one or more of that entity. Thus, the terms "a", "one or more", and "at least one" are used interchangeably herein. It should also be noted that the terms "comprising", "including", and "having" are used interchangeably.
[0147] As used herein, the term "automatically" and its variations refer to any process or operation that is typically continuous or semi - continuous and that is performed without substantial human input to complete the process or operation. However, a process or operation can be automatic if input is received before the process or operation is performed, even if the execution of the process or operation uses substantial or insubstantial human input. Human input is considered substantial if such input affects the manner in which the process or operation is executed. Human input that consents to the execution of the process or operation is not considered "substantial" input.
[0148] Any steps, functions, and operations discussed herein can be performed continuously and automatically.
[0149] Example systems and methods of the present disclosure have been described with respect to computing devices. However, to avoid unnecessarily obscuring the present disclosure, the foregoing description omits several known structures and devices. Such omissions should not be construed as limitations. Specific details are set forth to provide an understanding of the present disclosure. However, it should be understood that the present disclosure can be practiced in various ways beyond the specific details set forth herein.
[0150] In addition, although the example aspects shown herein illustrate various components of a collocated system, certain components of the system can be located at remote, distributed network (such as a LAN and / or the Internet) distal portions, or within a dedicated system. Thus, it should be understood that the components of the system can be combined into one or more devices, such as servers, communication devices, or collocated on specific nodes of a distributed network, such as an analog and / or digital telecommunications network, a packet - switched network, or a circuit - switched network. From the foregoing description, it will be understood that, for reasons of computational efficiency, the components of the system can be arranged anywhere within the distributed network of components without affecting the operation of the system.
[0151] In addition, it should be understood that the various links of the connection elements can be wired or wireless links, or any combination thereof, or any other known or later - developed element capable of providing data to and / or transmitting data from the connected elements. These wired or wireless links can also be secure links and capable of transmitting encrypted information. The transmission medium used as a link can be, for example, any suitable carrier for electrical signals, including coaxial cables, copper wires, and optical fibers, and can take the form of acoustic or light waves, such as the waves generated during radio wave and infrared data communication.
[0152] Although a flowchart has been discussed and shown with respect to a particular sequence of events, it should be understood that changes, additions, and omissions to that sequence will not materially affect the operation of the disclosed configurations and aspects.
[0153] Several variations and modifications of the present disclosure can be used. Some features of the present disclosure can be provided without providing other features.
[0154] In yet another configuration, the systems and methods of the present disclosure can be implemented in conjunction with a dedicated computer, a programmed microprocessor or microcontroller and (one or more) peripheral integrated circuit elements, an ASIC or other integrated circuit, a digital signal processor, hard-wired electronic or logic circuitry (such as discrete element circuitry), a programmable logic device or gate array (such as a PLD, PLA, FPGA, PAL), a dedicated computer, any similar device, etc. Generally, any device or apparatus capable of implementing the methods described herein can be used to implement various aspects of the present invention. Example hardware that can be used for the present disclosure includes computers, handheld devices, telephones (e.g., cellular, Internet-enabled, digital, analog, hybrid, etc.), and other hardware known in the art. Some of these devices include a processor (e.g., a single or multiple microprocessors), a memory, non-volatile storage, an input device, and an output device. Additionally, alternative software implementations including, but not limited to, distributed processing or component / object distributed processing, parallel processing, or virtual machine processing can be constructed to implement the methods described herein.
[0155] In yet another configuration, the disclosed methods can be readily implemented in conjunction with software using an object or object-oriented software development environment that provides portable source code that can be used on various computer or workstation platforms. Alternatively, the disclosed systems can be implemented in whole or in part using standard logic circuitry or VLSI design. Whether software or hardware is used to implement the systems according to the present disclosure depends on the speed and / or efficiency requirements of the system, the particular functions, and the particular software or hardware system or microprocessor or microcomputer system utilized.
[0156] In yet another configuration, the disclosed methods can be implemented in part in software that can be stored on a storage medium and executed through the cooperation of a controller and a memory, a dedicated computer, a microprocessor, etc. on a programmed general computer. In these cases, the systems and methods of the present disclosure can be implemented as a program (such as an applet, or a CGI script) embedded in a personal computer, a resource resident on a server or computer workstation, a routine embedded in a dedicated measurement system, system components, etc. The system can also be implemented by physically integrating the system and / or method into a software and / or hardware system.
[0157] The present disclosure is not limited to the described standards and protocols. Other similar standards and protocols not mentioned herein already exist and are incorporated in the present invention. In addition, the standards and protocols mentioned herein and other similar standards and protocols not mentioned herein are periodically replaced by faster or more efficient equivalent standards and protocols having substantially the same functions. Such alternative standards and protocols having the same functions are considered to be equivalent content included in the present disclosure.
[0158] According to an example of the present disclosure, a productivity application provides a concept-level text editing tool that helps a user create a document by generating suggestions for new content of the document (e.g., an outline or text), while also improving the quality of the existing content of the document. More specifically, the present disclosure teaches the ability to generate an outline by providing step-by-step suggestions for the next outline item, generate text suggestions based on a selected outline item, generate new outline item suggestions from a selected text, and generate a list of natural language suggestions for the existing outline and / or existing text in a document. It should be understood that any implementation or modification of the document or outline based on the suggestions is reviewed by the user.
[0159] In various configurations and aspects, the present disclosure includes components, methods, processes, systems, and / or apparatuses substantially as depicted and described herein, including various combinations, sub-combinations, and subsets thereof. After understanding the present disclosure, those skilled in the art will understand how to manufacture and use the systems and methods disclosed herein. In various configurations and aspects, the present disclosure includes providing devices and processes without items not depicted and / or described herein, including without such items that may have been used in prior devices or processes (e.g., to improve performance, achieve simplicity, and / or reduce implementation costs).
Claims
1. A method for generating suggestions for new outline items, the new outline item suggestions being used to generate an outline that will be used to create a document, the method comprising: Receiving initial text from a user in a text panel; Detecting an intention to generate a new outline item; Using one or more semantic language models to generate suggestions for new outline items based on the initial text and any existing outline items; Providing the suggestions for new outline items to the user in an outline panel; Receiving a user selection of one of the suggestions for new outline items; And Updating the outline to add the new outline item from the selected suggestion for a new outline item.
2. The method according to claim 1, further comprising: Automatically generating a suggestion for the next outline item for the next new outline item after the new outline item based on the updated outline and any existing outline items.
3. The method according to claim 1, further comprising: Determining whether there is an existing outline item before or after the new outline item; In response to determining that there is an existing outline item, using the one or more semantic language models to generate one or more proposed modifications to the existing outline item based on the updated outline; Providing the one or more proposed modifications to the existing outline item in a corresponding position in the updated outline; Receiving user acceptance of the one or more proposed modifications; And In response to receiving the user acceptance, updating the updated outline to reflect the accepted proposed modifications to the existing outline item.
4. The method according to claim 2, wherein generating the one or more proposed modifications to the existing outline item based on the updated outline comprises: In response to determining that there is an existing outline item, determining whether there is a proposed modification to the existing outline item based on the updated outline; And In response to determining that there is a proposed modification to the existing outline item, generating the one or more proposed modifications to the existing outline item based on the updated outline.
5. The method according to claim 2, wherein the proposed modifications include deleting the existing outline item, rearranging the existing outline item, one or more edits to the existing outline item, and / or adding one or more new outline items.
6. The method according to claim 1, wherein detecting the intention to generate the new outline item comprises: Detecting the position of the cursor in the outline panel to determine which outline item the user intends to generate, or Detecting the presence of the cursor in the outline panel to trigger the generation of one or more suggestions for new outline items for the new outline item.
7. The method according to claim 1, wherein detecting the intention to generate the new outline item comprises: Detecting the receipt of an associated short key press, or Extracting the intention from the user's speech or voice.
8. The method according to claim 1, further comprising: Receiving context data, the context data including information related to the document, and Using the context data to train the one or more semantic language models.
9. A method for generating one or more text blocks of a document based on one or more outline items of an outline, the method comprising: Detecting an intention to generate a new text block of the document, the new text block corresponding to one or more outline items selected in the outline; Using one or more semantic language models to instantiate one or more selected outline items into text suggestions; Providing the text suggestions to a user at a corresponding location in the document; Receiving an indication that the user accepts the text suggestions; And Updating the document to add the new text block from the text suggestions.
10. The method according to claim 9, further comprising: Automatically generating a next text suggestion for a next new text block after the new text block based on the updated document and the outline.
11. The method according to claim 9, further comprising: Determining whether there are existing text blocks in the document before or after the new text block; In response to determining that there are existing text blocks, using the one or more semantic language models to generate one or more proposed modifications for the existing text blocks based on the updated document; Providing the one or more proposed modifications for the existing text blocks at corresponding locations in the updated document; Receiving user acceptance of the one or more proposed modifications; And In response to receiving the user acceptance, updating the updated document to reflect the accepted proposed modifications to the existing text blocks.
12. The method according to claim 11, wherein generating one or more proposed modifications for the existing text blocks based on the updated document comprises: In response to determining that there are existing text blocks, determining whether there are proposed modifications to the existing text blocks based on the updated document; And In response to determining that there are proposed modifications to the existing text blocks, generating one or more proposed modifications for the existing text blocks based on the updated document.
13. The method according to claim 11, wherein the proposed modifications include deleting the existing text blocks, rearranging the existing text blocks, one or more edits to the existing text blocks, and / or adding one or more new text blocks.
14. The method according to claim 9, wherein the one or more semantic language models include a generative large language model (LLM).
15. A method for generating new outline items, the new outline items generating one or more suggestions for improving the natural language of existing content, the method comprising: Receiving a user request to improve the existing content; Using one or more semantic language models to generate the one or more suggestions that describe in natural language how to improve the existing content; Providing the one or more suggestions to the user; Receiving a selection from the one or more suggestions; Generating a preview of the proposed modifications that are applied to the existing content associated with the selected suggestion; Receiving an indication that the user accepts the proposed modifications; And Updating the existing content to implement the proposed modifications.