IP Library Granted Patent US 12,197,406
Granted Patent B1
US 12,197,406 · App. 18/581,179 · Granted Jan 14, 2025

Providing suggestions within a document

Inventors: Maxim Gubin (Danville, CA); Kenneth W. Dauber (Palo Alto, CA); Krishna Bharat (Palo Alto, CA); Sang Soo Sung (Palo Alto, CA)
Assignee: GOOGLE LLC
G06F16/219G06F16/2465
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,197,406
App. No.
18/581,179
Granted
Jan 14, 2025
Kind
B1
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 (67)

1. A method implemented by one or more processors, the method comprising:

obtaining, during a current editing session of a document at an application of a user device, textual input that is based on input of a user of the user device;

identifying session data for the current editing session, wherein the session data includes data related to the textual input and one or more current editing session prior textual inputs that were provided by the user prior to the textual input;

identifying, based on the session data, one or more performance measures, the one or more performance measures including an acceptance rate, of the user, of previous autocomplete suggestions;

determining, based on at least the textual input and one or more previous editing session prior textual inputs, one or more custom textual suggestions, the one or more custom textual suggestions each being a corresponding autocomplete suggestion for completing a phrase or sentence reflected by at least the textual input, wherein each of the one or more custom textual suggestions includes a corresponding plurality of words;

determining, based on the one or more performance measures, whether to provide, as part of the current editing session, at least one of the one or more custom textual suggestions; and

in response to determining to provide at least one of the one or more custom textual suggestions as part of the current editing session:

causing at least at least a given one of the one or more custom textual suggestions to be rendered at the user device.

2. The method of claim 1 , further comprising:

receiving an acceptance of the given one of the one or more custom textual suggestions rendered at the user device; and

in response to receiving the acceptance of the given one of the one or more custom textual suggestions:

causing the given one of the one or more custom textual suggestions to be incorporated into the document following the phrase or sentence reflected by at least the textual input.

3. The method of claim 1 , wherein the application is an e-mail application or an SMS application.

4. The method of claim 1 , wherein the application a word processing application or a web-based application.

5. The method of claim 1 , further comprising:

in response to determining not to provide at least one of the one or more custom textual suggestions as part of the current editing session:

refraining from causing any of the one or more custom textual suggestions to be rendered at the user device.

6. The method of claim 5 , further comprising:

determining, based on the one or more performance measures, to provide at least one of the one or more custom textual suggestions as part of the current editing session at a second time that is subsequent to a first time of refraining from causing any of the one or more custom textual suggestions to be rendered at the user device; and

causing, at the second time, one or more of the one or more custom textual suggestions to be rendered at the user device.

7. The method of claim 1 , wherein determining whether to provide at least one of the one or more custom textual suggestions as part of the current editing session comprises:

processing, using a suggestion model, the one or more performance measures to:

generate a respective confidence score associated with each of the one or more custom textual suggestions; and

determining whether to provide at least one of the one or more custom textual suggestions as part of the current editing session based on the respective confidence scores and a threshold confidence value.

8. The method of claim 7 , wherein determining to provide at least one of the custom textual suggestion as part of the current editing session comprises:

determining the respective confidence value associated with the given one of the one or more custom textual suggestions satisfies the threshold confidence value.

9. The method of claim 7 , wherein the threshold confidence value is generated based on processing, using the suggestion model, latency between the user device and the application during the current editing session, or a typing speed of the user in the current editing session.

10. A system comprising:

one or more computers comprising one or more processors, and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more processors to perform operations comprising:

obtaining, during a current editing session of a document at an application of a user device, textual input that is based on input of a user of the user device;

identifying session data for the current editing session, wherein the session data includes data related to the textual input and one or more current editing session prior textual inputs that were provided by the user prior to the textual input;

identifying, based on the session data, one or more performance measures, the one or more performance measures including an acceptance rate, of the user, of previous autocomplete suggestions;

determining, based on at least the textual input and one or more previous editing session prior textual inputs, one or more custom textual suggestions, the one or more custom textual suggestions each being a corresponding autocomplete suggestion for completing a phrase or sentence reflected by at least the textual input, wherein each of the one or more custom textual suggestions includes a corresponding plurality of words;

determining, based on the one or more performance measures, whether to provide, as part of the current editing session, at least one of the one or more custom textual suggestions; and

in response to determining to provide at least one of the one or more custom textual suggestions as part of the current editing session:

causing at least at least a given one of the one or more custom textual suggestions to be rendered at the user device.

11. The system of claim 10 , the operations further comprising:

receiving an acceptance of the given one of the one or more custom textual suggestions rendered at the user device; and

in response to receiving the acceptance of the given one of the one or more custom textual suggestions:

causing the given one of the one or more custom textual suggestions to be incorporated into the document following the phrase or sentence reflected by at least the textual input.

12. The system of claim 10 , wherein the application is an e-mail application or an SMS application.

13. The system of claim 10 , wherein the application a word processing application or a web-based application.

14. The system of claim 10 , the operations further comprising:

in response to determining not to provide at least one of the one or more custom textual suggestions as part of the current editing session:

refraining from causing any of the one or more custom textual suggestions to be rendered at the user device.

15. The system of claim 14 , the operations further comprising:

determining, based on the one or more performance measures, to provide at least one of the one or more custom textual suggestions as part of the current editing session at a second time that is subsequent to a first time of refraining from causing any of the one or more custom textual suggestions to be rendered at the user device; and

causing, at the second time, one or more of the one or more custom textual suggestions to be rendered at the user device.

16. The system of claim 10 , wherein determining whether to provide at least one of the one or more custom textual suggestions as part of the current editing session comprises:

processing, using a suggestion model, the one or more performance measures to:

generate a respective confidence score associated with each of the one or more custom textual suggestions; and

determining whether to provide at least one of the one or more custom textual suggestions as part of the current editing session based on the respective confidence scores and a threshold confidence value.

17. The system of claim 16 , wherein determining to provide at least one of the custom textual suggestion as part of the current editing session comprises:

determining the respective confidence value associated with the given one of the one or more custom textual suggestions satisfies the threshold confidence value.

18. The system of claim 16 , wherein the threshold confidence value is generated based on processing, using the suggestion model, latency between the user device and the application during the current editing session, or a typing speed of the user in the current editing session.

19. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:

obtaining, during a current editing session of a document at an application of a user device, textual input that is based on input of a user of the user device;

identifying session data for the current editing session, wherein the session data includes data related to the textual input and one or more current editing session prior textual inputs that were provided by the user prior to the textual input;

identifying, based on the session data, one or more performance measures, the one or more performance measures including an acceptance rate, of the user, of previous autocomplete suggestions;

determining, based on at least the textual input and one or more previous editing session prior textual inputs, one or more custom textual suggestions, the one or more custom textual suggestions each being a corresponding autocomplete suggestion for completing a phrase or sentence reflected by at least the textual input, wherein each of the one or more custom textual suggestions includes a corresponding plurality of words;

determining, based on the one or more performance measures, whether to provide, as part of the current editing session, at least one of the one or more custom textual suggestions; and

in response to determining to provide at least one of the one or more custom textual suggestions as part of the current editing session:

causing at least at least a given one of the one or more custom textual suggestions to be rendered at the user device.

20. The non-transitory computer-readable medium of claim 19 , the operations further comprising:

receiving an acceptance of the given one of the one or more custom textual suggestions rendered at the user device; and

in response to receiving the acceptance of the given one of the one or more custom textual suggestions:

causing the given one of the one or more custom textual suggestions to be incorporated into the document following the phrase or sentence reflected by at least the textual input.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2024
From: GUBIN, MAXIM; DAUBER, KENNETH W.; BHARAT, KRISHNA; SUNG, SANG SOO
To: GOOGLE INC.
Reel/Frame 066806/0884 →
CHANGE OF NAME Recorded Mar 18, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 066817/0069 →
Continuity (4)
Continuation 17122827 · Dec 15, 2020
Continuation 16253416 · Jan 22, 2019
Continuation 15902103 · Feb 22, 2018
Continuation 14275333 · May 12, 2014
References Cited (84)
US 5469538A · Razdow · 1995 [cited by applicant]
US 5557723A · Holt · 1996 [cited by applicant]
US 5754737A · Gipson · 1998 [cited by applicant]
US 6256633B1 · Dharap · 2001 [cited by applicant]
US 6564213B1 · Ortega et al. · 2003 [cited by applicant]
US 6918086B2 · Rogson · 2005 [cited by applicant]
US 7113950B2 · Brill · 2006 [cited by applicant]
US 7249123B2 · Elder · 2007 [cited by applicant]
US 7451397B2 · Weber · 2008 [cited by applicant]
US 7487456B2 · Brooke · 2009 [cited by applicant]
US 7630980B2 · Parikh · 2009 [cited by applicant]
US 7660806B2 · Brill · 2010 [cited by applicant]
US 7672833B2 · Blume et al. · 2010 [cited by applicant]
US 7672927B1 · Borkovsky · 2010 [cited by examiner]
US 7751533B2 · Maekelae · 2010 [cited by applicant]
US 7752148B2 · Yu · 2010 [cited by applicant]
US 7805492B1 · Thatcher · 2010 [cited by applicant]
US 7930302B2 · Bandaru · 2011 [cited by applicant]
US 7984035B2 · Levin · 2011 [cited by applicant]
US 7996419B2 · Pfleger · 2011 [cited by applicant]
US 8073877B2 · Irmak · 2011 [cited by applicant]
US 8185448B1 · Myslinski · 2012 [cited by applicant]
US 8321410B1 · Bharat · 2012 [cited by applicant]
US 8386241B2 · Goud · 2013 [cited by applicant]
US 8386926B1 · Matsuoka · 2013 [cited by applicant]
US 8423424B2 · Myslinski · 2013 [cited by applicant]
US 8429099B1 · Perkowitz · 2013 [cited by applicant]
US 8441377B2 · Liu · 2013 [cited by applicant]
US 8452799B2 · Zhou et al. · 2013 [cited by applicant]
US 8458046B2 · Myslinski · 2013 [cited by applicant]
US 8510173B2 · Myslinski · 2013 [cited by applicant]
US 8521764B2 · Pfleger · 2013 [cited by applicant]
US 8594996B2 · Liang et al. · 2013 [cited by applicant]
US 8645825B1 · Comea et al. · 2014 [cited by applicant]
US 8725756B1 · Garg · 2014 [cited by examiner]
US 8762356B1 · Kogan · 2014 [cited by applicant]
US 9037598B1 · Morton · 2015 [cited by examiner]
US 9959298B2 · Gubin et al. · 2018 [cited by applicant]
US 10223392B1 · Gubin et al. · 2019 [cited by applicant]
US 10901965B1 · Gubin et al. · 2021 [cited by applicant]
US 11907190B1 · Gubin · 2024 [cited by applicant]
US 20020156816A1 · Kantrowitz et al. · 2002 [cited by applicant]
US 20060235873A1 · Thomas · 2006 [cited by applicant]
US 20060248078A1 · Gross et al. · 2006 [cited by applicant]
US 20070174255A1 · Sravanapudi · 2007 [cited by applicant]
US 20070288575A1 · Gillum · 2007 [cited by examiner]
US 20080126075A1 · Thorn · 2008 [cited by applicant]
US 20080195388A1 · Bower · 2008 [cited by examiner]
US 20090083028A1 · Davtchev · 2009 [cited by applicant]
US 20090099901A1 · Sah · 2009 [cited by applicant]
US 20100286979A1 · Zangvil · 2010 [cited by applicant]
US 20110184730A1 · LeBeau · 2011 [cited by examiner]
US 20110201387A1 · Paek · 2011 [cited by examiner]
US 20110202876A1 · Badger · 2011 [cited by applicant]
US 20110246575A1 · Murayama · 2011 [cited by examiner]
US 20120239381A1 · Heidasch · 2012 [cited by applicant]
US 20130031106A1 · Schechter et al. · 2013 [cited by applicant]
US 20130060560A1 · Mahkovec · 2013 [cited by applicant]
US 20130151240A1 · Myslinski · 2013 [cited by applicant]
US 20130173604A1 · Li et al. · 2013 [cited by applicant]
US 20130198115A1 · Paek et al. · 2013 [cited by applicant]
US 20130198163A1 · Slezak · 2013 [cited by applicant]
US 20130212111A1 · Chashchin · 2013 [cited by applicant]
US 20130226935A1 · Bai · 2013 [cited by applicant]
US 20130332822A1 · Willmore · 2013 [cited by applicant]
US 20140104175A1 · Ouyang · 2014 [cited by examiner]
US 20140244621A1 · Lindsay · 2014 [cited by applicant]
US 20140379744A1 · Kuo · 2014 [cited by examiner]
US 20150150090A1 · Carroll · 2015 [cited by examiner]
CA 2711081 · 2011 [cited by applicant]
EP 0843266 · 2000 [cited by applicant]
EP 1887451 · 2008 [cited by applicant]
EP 2053526 · 2009 [cited by applicant]
EP 2280332 · 2011 [cited by applicant]
EP 2639673 · 2013 [cited by applicant]
WO 2004092979 · 2005 [cited by applicant]
WO 2008120042 · 2008 [cited by applicant]
“Lemma What? A Guide to Text Processing and Machine Learning API Terms” [online] [retrieved Apr. 7, 2014]. http://blog.mashape.com/post/50655824209/lemma-what-a-guide-to-text-processing-and-machine, 5 pages. 2014. [cited by applicant]
dunxd.com “Word 2010 Template with Auto-updating fields,” [online] [retrieved on Apr. 7, 2014]. Retrieved from: http://dunxd.com/2012/08/08/word-2010-template-with-auto-updating-fields/, 2 pages. 2014. [cited by applicant]
Lewis, David D. et al, [online] [retrieved on Apr. 7, 2014]. “A Comparison of Two Learning Algorithms for Text Categorization” http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.49.860&rep=rep1&1type=pdf, 14 pages… [cited by applicant]
Microsoft Support, “The Filename field does not automatically update when you open a document in Word” [online] [retreived on Apr. 7, 2014]. Retreived from: http://support.microsoft.com/kb/832897, 2 pages. 2014. [cited by applicant]
Office, “Insert and format field codes in Word 2007,” [online] [retrieved on Apr. 7, 2014]. Retrieved from: http://office.microsoft.com/en-us/word-help/insert-and-format-field-codes-in-word-2007-HA010338798.aspx?CTT=5&o… [cited by applicant]
Ruiz-Casado, et al., “From Wikipedia to Semantic Relationships: a Semi-automated Annotation Approach” [online] [retreived on Apr. 7, 2014]. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.84.899&rep=rep1&type=p… [cited by applicant]
Tran et al., “Automatic Detection of Outdated Information in Wikipedia Infoboxes,” [online] [retreived on Apr. 7, 2014]. Retrieved from: http://pics.cicling.org/2013/rcs/Automatic%20Detection%20of%20Outdated%20Informati… [cited by applicant]