IP Library › Granted Patent US 11,252,114
Granted Patent B2
US 11,252,114 · App. 15/844,082 · Granted Feb 15, 2022

Message suggestions

Inventors: Max Benjamin Braun (San Francisco, CA); Nirmal Jitendra Patel (Mountain View, CA)
Assignee: Google LLC
H04L51/046G06N20/00H04L51/02
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 11,252,114
App. No.
15/844,082
Granted
Feb 15, 2022
Kind
B2
Abstract

A method may involve, for each of one or more messages that are selected from a plurality of messages from an account: (a) extracting one or more phrases from a respective selected message; (b) determining that a conversation includes the respective selected message and one or more other messages from the plurality of messages; (c) generating a first feature vector based on the conversation, wherein the first feature vector includes one or more first features, wherein the one or more first features include one or more words from the conversation; and (d) generating, by a computing system, one or more training-data sets, wherein each training-data set comprises one of the phrases and the first feature vector. The method may further involve: training, by the computing system, a machine-learning application with at least a portion of the one or more training-data sets that are generated for the one or more selected messages; applying the trained machine-learning application to process an incoming message to the account; and responsive to applying the trained machine-learning application, determining one or more reply messages corresponding to the incoming message, wherein the one or more reply messages include at least one of the extracted one or more phrases.

Claims (74)

1. A method comprising:

for each of one or more messages that are selected from a plurality of messages from an account:

splitting each of the one or more messages that are selected into one or more normalized phrases;

extracting one or more normalized phrases associated with a respective selected message;

determining that a conversation includes the respective selected message and one or more other messages from the plurality of messages;

generating a first feature vector based on the conversation, wherein the first feature vector includes one or more first features, wherein the one or more first features include one or more words from the conversation; and

generating, by a computing system, one or more training-data sets, wherein each training-data set comprises one of the one or more extracted normalized phrases and the first feature vector;

training, by the computing system, a machine-learning application with at least a portion of the one or more training-data sets that are generated for the one or more selected messages;

applying the trained machine-learning application to process an incoming message to the account; and

responsive to applying the trained machine-learning application, determining one or more reply messages corresponding to the incoming message by mapping particular ones of the extracted one or more normalized phrases with the first feature vector, wherein the one or more reply messages include at least one of the extracted one or more normalized phrases;

ranking the one or more reply messages based on relevance to the incoming message; and

generating an ordered list of the one or more reply messages based on the ranking.

2. The method of claim 1 , further comprising receiving data input indicating a selection of a particular one of the one or more reply messages and, responsively, sending the reply message, wherein the ordered list is arranged in a descending order based on relevance.

3. The method of claim 2 , wherein receiving the data input includes receiving input through one or more of a microphone, a touchpad disposed on a wearable computing device, or an eye-tracking sensor.

4. The method of claim 1 , further comprising initiating a display of one or more cards on a graphic display of a wearable computing device, wherein the one or more cards include at least a portion of the incoming message and the one or more reply messages corresponding to the incoming message.

5. The method of claim 4 , further comprising determining, by the computing system based on one or more of a number of the one or more reply messages or a length of the one or more reply messages, to arrange the one or more reply messages of the one or more cards in a top-level menu format or a submenu format.

6. The method of claim 1 , wherein applying the trained machine-learning application to an incoming message further comprises:

processing, by the computing system, the incoming message to generate a second feature vector based on the incoming message, wherein the second feature vector includes one or more second features of the incoming message, wherein the one or more second features include one or more words;

processing, by the computing system using the trained machine-learning application, the second feature vector to identify one or more of the extracted phrases as the one or more reply messages; and

initiating, by the computing system, the display of the one or more reply messages on a graphic display for selection to reply to the incoming message.

7. The method of claim 6 , wherein generating the first feature vector includes identifying a sender of the one or more other messages in the conversation, wherein the one or more first features include an identity of the sender of the one or more other messages, wherein processing the incoming message includes identifying a sender of the incoming message, and wherein the one or more second features include an identity of the sender of the incoming message.

8. The method of claim 7 , further comprising identifying one or more voice calls from the sender of the one or more other messages in the conversation, wherein the first feature vector includes information regarding the one or more voice calls.

9. The method of claim 1 , wherein splitting each of the one or more messages that are selected into the one or more normalized phrases comprises converting text to lowercase letters and removing punctuation, and using a natural language toolkit sentence tokenizer.

10. The method of claim 1 , wherein generating the first feature vector includes normalizing the one or more other messages in the conversation by converting words to lowercase letters, removing punctuation, removing stop words, removing hash (#) characters, converting ASCII emoticons into respective Unicode forms, and categorizing images and Internet links as a generic feature, and wherein the one or more first features include Unicode forms of ASCII emoticons and the generic feature corresponding to images and Internet links.

11. The method of claim 1 , wherein generating the first feature vector includes identifying one or more times that correspond to when one or more other messages in the conversation were sent or received, and wherein the one or more first features include the identified one or more times.

12. The method of claim 1 , further comprising removing, before training, one or more phrases from the training-data sets that appear fewer than a threshold number of times.

13. The method of claim 1 , further comprising using metrics to determine the one or more reply messages corresponding to the incoming message, and wherein the metrics relate to one or more of how often a reply message is selected to respond to an incoming message or how often the one or more reply responses are provided for selection.

14. The method of claim 1 , further comprising:

processing, by the computing system, a message to be sent from the account to create a third feature vector that includes an identity of a recipient of the message to be sent as a feature;

processing, by the computing system using the trained machine-learning application, the third feature vector to determine one or more second messages that may be included in the message to be sent; and

initiating a display of the one or more second messages on a graphic display.

15. A system comprising:

a non-transitory computer-readable medium; and

program instructions stored on the non-transitory computer-readable medium and executable by at least one processor to:

for each of one or more messages that are selected from a plurality of messages from an account:

split each of the one or more messages that are selected into one or more normalized phrases;

extract one or more normalized phrases associated with a respective selected message;

determine that a conversation includes the selected message and one or more other messages from the plurality of messages;

generate a first feature vector based on the conversation, wherein the first feature vector includes one or more first features, wherein the one or more first features include one or more words from the conversation; and

generate one or more training-data sets, wherein each training-data set comprises one of the one or more extracted normalized phrases and the first feature vector;

train a machine-learning application with at least a portion of the one or more training-data sets that are generated for the one or more selected messages;

apply the trained machine-learning application to process an incoming message to the account; and

responsive to applying the trained machine-learning application, determine one or more reply messages corresponding to the incoming message by mapping particular ones of the extracted one or more normalized phrases with the first feature vector, wherein the one or more reply messages include at least one of the extracted one or more normalized phrases;

ranking the one or more reply messages based on relevance to the incoming message; and

generating an ordered list of the one or more reply messages based on the ranking.

16. The system of claim 15 , wherein the program instructions stored on the non-transitory computer-readable medium and executable by at least one processor to apply the trained machine-learning application to process an incoming message further include instructions to:

process the incoming message to create a second feature vector based on the incoming message, wherein the second feature vector includes one or more second features of the incoming message, wherein the one or more second features include one or more words;

process, using the trained machine-learning application, the second feature vector to identify one or more of the extracted phrases as the one or more reply messages; and

provide the one or more reply messages for selection to reply to the incoming message.

17. The system of claim 15 , further comprising program instructions stored on the non-transitory computer-readable medium and executable by at least one processor to:

process a message to be sent from the account to create a third feature vector that includes an identity of a recipient of the message to be sent as a feature;

process, using the trained machine-learning application, the third feature vector to determine one or more second messages that may be included in the message to be sent; and

initiate a display of the one or more second messages on a graphic display.

18. A non-transitory computer-readable medium having stored thereon instructions executable by a computing device to cause the computing device to perform functions comprising:

for each of one or more messages that are selected from a plurality of messages from an account:

splitting each of the one or more messages that are selected into one or more normalized phrases;

extracting one or more normalized phrases associated with a respective selected message;

determining that a conversation includes the selected message and one or more other messages from the plurality of messages;

generating a first feature vector based on the conversation, wherein the first feature vector includes one or more first features, wherein the one or more first features include one or more words from the conversation; and

generating, by the computing system, one or more training-data sets, wherein each training-data set comprises one of the one or more extracted normalized phrases and the first feature vector;

training, by the computing system, a machine-learning application with at least a portion of the one or more training-data sets that are generated for the one or more selected messages;

applying the trained machine-learning application to process an incoming message to the account;

responsive to applying the trained machine-learning application, determining one or more reply messages corresponding to the incoming message by mapping particular ones of the extracted one or more normalized phrases with the first feature vector, wherein the one or more reply messages include at least one of the extracted one or more normalized phrases;

ranking the one or more reply messages based on relevance to the incoming message;

generating an ordered list of the one or more reply messages based on the ranking; and

initiating a display of the ordered list of the one or more reply messages on a graphic display.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions for applying the trained machine-learning application to an incoming message further comprises instructions executable by the computing device to cause the computing device to perform functions comprising:

processing the incoming message to create a second feature vector based on the incoming message, wherein the second feature vector includes one or more second features of the incoming message, wherein the one or more second features include one or more words;

processing, using the trained machine-learning application, the second feature vector to identify one or more of the extracted phrases as the one or more reply messages; and

providing the one or more reply messages for selection to reply to the incoming message.

20. The non-transitory computer-readable medium of claim 18 , further comprising instructions executable by the computing device to cause the computing device to perform functions including:

processing a message to be sent from the account to create a third feature vector that includes an identity of a recipient of the message to be sent as a feature;

processing, using the trained machine-learning application, the third feature vector to determine one or more second messages that may be included in the message to be sent; and

initiating a display of the one or more second messages on the graphic display.

Assignments (2)
CHANGE OF NAME Recorded Dec 21, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044939/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2017
From: BRAUN, MAX BENJAMIN; PATEL, NIRMAL JITENDRA
To: GOOGLE INC.
Reel/Frame 044431/0876 →
Continuity (2)
Continuation 14470904 · Aug 27, 2014
Related Publication 20180109476A1 · Apr 19, 2018