# US 11,907,190 B1 · Providing suggestions within a document

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,190 B1
- Document ID: US11907190B1
- Status: Granted
- Kind: B1
- Application number: 17/122,827
- Filed: 2020-12-15
- Granted: 2024-02-20
- Earliest claimed: 2014-05-12
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Maxim Gubin; Kenneth W. Dauber; Krishna Bharat; Sang Soo Sung
- Web page: https://patentgrep.com/patent/US11907190B1

## CPC

- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 16/2465: {Query processing support for facilitating data mining operations in structured databases}
- G06F 16/93: Document management systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for providing suggestions within a document. In one aspect, a method includes obtaining textual input provided to a document editing application by a user device, the textual input being provided to the document editing application for inclusion in a document; identifying performance measures associated with the current editing session for the document, each performance measure being based on session data obtained from the user device during a document editing session, the session data being for the textual input and prior text that was included in the document prior to the textual input; providing the performance measures as input to a suggestion model that was trained using historical performance measures identified in performance logs for historical document editing sessions of users; and throttling textual suggestions during the current editing session based on the output of the suggestion model.

## Claims

### Claim 1

A method implemented by one or more processors, the method comprising:
obtaining, during a current editing session of a document at an application, textual input provided by a user associated with a user device;
identifying session data for the current editing session, wherein the session data includes at least data related to the textual input and one or more prior textual inputs that were provided by the user prior to the textual input;
identifying, based on at least the data includes at least data related to the textual input, and one or more of the prior textual inputs, one or more performance measures that are specific to the current editing session, wherein the one or more performance measures include at least one or more of: a latency between the user device and the application during the current editing session, or a typing speed of the user during the current editing session;
determining, based on the textual input and one or more prior textual inputs created in a previous editing session, one or more custom textual suggestions based on the session data for the current editing session, the one or more custom textual suggestions being autocomplete suggestions for completing a phrase or sentence reflected by the textual input, each of the custom textual suggestions including a corresponding plurality of words, and the custom textual suggestions including a particular suggestion that is a prior phrase of the prior textual inputs and that was provided by the user in the previous editing session;
determining, based on the one or more performance measures, whether or when to provide, as part of the current editing session, one or more of the custom textual suggestions; and
in response to determining to provide one or more of the custom textual suggestions as part of the current editing session:
causing one or more of the custom textual suggestions to be provided for presentation to the user at the application.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving an acceptance of one or more of the custom textual suggestions responsive to one or more of the custom textual suggestions being provided for presentation to the user at the application; and
in response to receiving the acceptance of one or more of the custom textual suggestions:
causing one or more of the custom textual suggestions to be incorporated into the document following the phrase or sentence reflected by the textual input.

### Claim 3 (depends on 2)

The method of claim 2, wherein each of the one or more custom textual suggestions include one or more corresponding words or phrases that are suggested for inclusion in the document.

### Claim 4 (depends on 1)

The method of claim 1, wherein the application is an e-mail application, a word processing application, a web-based application, or an SMS application.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
in response to determining not to provide one or more of the custom textual suggestions as part of the current editing session at a first time:
refraining from causing one or more of the custom textual suggestions to be provided for presentation to the user at the application.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
in response to determining to provide one or more of the custom textual suggestions as part of the current editing session at a second time that is subsequent to the first time:
causing one or more of the custom textual suggestions to be provided for presentation to the user at the application.

### Claim 7 (depends on 1)

The method of claim 1, wherein determining whether or when to provide one or more of the custom textual suggestions as part of the editing session comprises:
processing, using a suggestion model, the one or more performance measures to:
generate a respective confidence score associated each of the one or more custom textual suggestions, and
generate a threshold confidence value associated with whether or when to provide one or more of the custom textual suggestions as part of the editing session.

### Claim 8 (depends on 7)

The method of claim 7, wherein determining to provide one or more of the custom textual suggestion as part of the current editing session comprises:
determining the respective confidence value associated with one or more custom textual suggestions satisfies the threshold confidence value.

### Claim 9 (depends on 7)

The method of claim 7, wherein the threshold confidence value is further generated based on processing, using the suggestion model, a historical acceptance rate for one or more previous suggestions presented to the user.

### Claim 10

A system comprising:
at least one processor; and
at least one memory storing instructions that, when executed, cause the at least one processor to:
obtain, during a current editing session of an email at an application, textual input provided by a user associated with a user device;
identify session data for the current editing session, wherein the session data includes at least data related to the textual input and one or more prior textual inputs that were provided by the user prior to the textual input;
identify, based on at least data related to the textual input, and one or more of the prior textual inputs, one or more performance measures that are specific to the current editing session, wherein the one or more performance measures include at least a latency between the user device and the application during the current editing session;
determine, based on the textual input and one or more prior textual inputs of a body of a prior email, one or more custom textual suggestions based on the session data for the current editing session, the prior email being in an email thread with the email, and the one or more custom textual suggestions being autocomplete suggestions for completing a phrase or sentence reflected by the textual input, each of the custom textual suggestions including a corresponding plurality of words, and the custom textual suggestions including a particular suggestion that is a prior phrase of the prior textual inputs and that was provided by the user in the body of the prior email;
determine, based on the one or more performance measures, whether or when to provide, as part of the current editing session, one or more of the custom textual suggestions; and
in response to determining to provide one or more of the custom textual suggestions as part of the current editing session:
cause one or more of the custom textual suggestions to be provided for presentation to the user at the application.

### Claim 11 (depends on 10)

The system of claim 10, wherein the instructions further cause the at least one processor to:
receive an acceptance of one or more of the custom textual suggestions responsive to one or more of the custom textual suggestions being provided for presentation to the user at the application; and
in response to receiving the acceptance of one or more of the custom textual suggestions:
cause one or more of the custom textual suggestions to be incorporated into the email following the phrase or sentence reflected by the textual input.

### Claim 12 (depends on 11)

The system of claim 11, wherein each of the one or more custom textual suggestions include one or more corresponding words or phrases that are suggested for inclusion in the email.

### Claim 13 (depends on 10)

The system of claim 10, wherein the application is an e-mail application or a web-based application.

### Claim 14 (depends on 10)

The system of claim 10, wherein the instructions further cause the at least one processor to:
in response to determining not to provide one or more of the custom textual suggestions as part of the current editing session at a first time:
refrain from causing one or more of the custom textual suggestions to be provided for presentation to the user at the application.

### Claim 15 (depends on 14)

The system of claim 14, wherein the instructions further cause the at least one processor to:
in response to determining to provide one or more of the custom textual suggestions as part of the current editing session at a second time that is subsequent to the first time:
cause one or more of the custom textual suggestions to be provided for presentation to the user at the application.

### Claim 16 (depends on 10)

The system of claim 10, wherein the instructions to determine whether or when to provide one or more of the custom textual suggestions as part of the editing session comprise instructions to:
process, using a suggestion model, the one or more performance measures to:
generate a respective confidence score associated each of the one or more custom textual suggestions, and
generate a threshold confidence value associated with whether or when to provide one or more of the custom textual suggestions as part of the editing session.

### Claim 17 (depends on 16)

The system of claim 16, wherein the instructions to determine to provide one or more of the custom textual suggestions as part of the current editing session comprise instructions to:
determine the respective confidence value associated with one or more custom textual suggestions satisfies the threshold confidence value.

### Claim 18 (depends on 16)

The system of claim 16, wherein the threshold confidence value is further generated based on processing, using the suggestion model, a historical acceptance rate for one or more previous suggestions presented to the user.

### Claim 19

A non-transitory computer-readable storage medium storing instructions that, when executed, cause at least one processor to:
obtain, during a current editing session of a document at an application, textual input provided by a user associated with a user device;
identify session data for the current editing session, wherein the session data includes at least data related to the textual input and one or more prior textual inputs that were provided by the user prior to the textual input;
identify, based on at least data related to the textual input, and one or more of the prior textual inputs, one or more performance measures that are specific to the current editing session, wherein the one or more performance measures include at least a latency between the user device and the application during the current editing session;
determine, based on the textual input and one or more prior textual inputs created in a previous editing session, one or more custom textual suggestions based on the session data for the current editing session, the one or more custom textual suggestions being autocomplete suggestions for completing a phrase or sentence reflected by the textual input, each of the custom textual suggestions including a corresponding plurality of words, and the custom textual suggestions including a particular suggestion that is a prior sentence of the prior textual inputs and that was provided by the user in the previous editing session;
determine, based on the one or more performance measures, whether or when to provide, as part of the current editing session, one or more of the custom textual suggestions; and
in response to determining to provide one or more of the custom textual suggestion as part of the current editing session:
cause one or more of the custom textual suggestions to be provided for presentation to the user at the application.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, wherein the instructions to determine whether or when to provide one or more of the custom textual suggestions as part of the editing session comprise instructions to:
process, using a suggestion model, the one or more performance measures to:
generate a respective confidence score associated each of the one or more custom textual suggestions, and
generate a threshold confidence value associated with whether or when to provide one or more of the custom textual suggestions as part of the editing session.
