IP Library Granted Patent US 9,602,444
Granted Patent B2
US 9,602,444 · App. 12/770,654 · Granted Mar 21, 2017

Participant suggestion system

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 9,602,444
App. No.
12/770,654
Granted
Mar 21, 2017
Kind
B2
Abstract

A server system hosts a plurality of conversations, each having an identified set of participants. For a respective conversation, the server accesses the conversation in which a user is a participant. The server obtains a conversation profile for the conversation, the conversation profile based on information including content of the conversation and user-specific term weights for at least a plurality of terms in the content of the conversation. The server accesses a plurality of entity profiles that are based on content and/or structure in other conversations in which the user is a participant. The server compares at least a subset of the entity profiles to the conversation profile to identify a set of entities having entity profiles that best match the conversation profile, generates a suggestion for the user including a suggested entity from the identified set of entities; and sends the suggestion to the client system for display to the user.

Claims (50)

1. A method comprising:

at a computing system having one or more processors and a memory storing one or more programs for execution by the one or more processors so as to perform the method of:

identifying an ongoing conversation including a first user and a second user, wherein both the first user and the second user are conversation participants in the ongoing conversation, wherein the first user has delivered at least one message to the second user in the ongoing conversation;

generating, without user intervention, a conversation profile that is specific to the first user for the ongoing conversation, wherein the conversation profile includes (i) a set of terms specific to the first user that are included in messages of the ongoing conversation, and (ii) context weights that correspond to the set of terms specific to the first user that are included in the messages, wherein the context weights are based on user-specific term weights included in a user profile of the first user;

using content of other ongoing conversations in which the first user is an active participant to generate user profiles of other users not included in the ongoing conversation, wherein the user profiles are further individualized to the first user by adjusting respective counted occurrences of one or more terms based on the user-specific term weights corresponding to the first user;

comparing, during the ongoing conversation, the generated user profiles to the generated conversation profile to identify a third user not currently participating in the ongoing conversation whose generated user profile matches the conversation profile to a threshold degree;

generating, without user intervention, a suggestion for the first user to add the third user to the ongoing conversation; and

formatting the suggestion for display to the first user.

2. The method of claim 1 , further comprising: generating, without user intervention, a suggestion for a file to be included as part of the ongoing conversation in accordance with content of at least one instant message delivered to the second user.

3. The method of claim 1 , wherein the method is repeated in response to editing of the ongoing conversation by a participant in the ongoing conversation.

4. The method of claim 1 , wherein identifying the third user whose generated user profile matches the conversation profile to the threshold degree includes calculating a similarity score between the generated user profile of the third user and the conversation profile.

5. The method of claim 1 , wherein generating user profiles comprises generating a user profile for a respective user at least by counting occurrences of at least one term in a plurality of conversations for which the first user and the respective user are participants.

6. The method of claim 5 , wherein generating the user profile for the respective user includes:

selecting a subset of conversations in which the first user is a participant so as to include only conversations associated with the respective user; and

generating a user vector that includes a plurality of elements, wherein an element in the user vector is associated with a respective term and corresponds to a number of instances of the respective term in the set of conversations.

7. The method of claim 6 , wherein the conversation includes a plurality of terms, wherein generating the conversation profile comprises:

generating a conversation vector including a plurality of elements, wherein each element in the conversation vector is associated with a respective term and corresponds to a number of instances of the respective term in the conversation.

8. The method of claim 7 , wherein comparing the generated user profiles to the generated conversation profile comprises comparing the user profile for the respective user to the conversation profile at least by calculating a dot product of the user vector of the user profile with the conversation vector.

9. The method of claim 5 , wherein generating the user profile for the respective user includes evaluating a frequency of messages sent to the respective user from the first user.

10. The method of claim 5 , wherein generating the user profile for the respective user includes evaluating a staleness metric with respect to conversations in which the respective user is present.

11. The method of claim 5 , wherein a single term includes a first word and a second word, wherein the first word is a synonym of the second word.

12. The method of claim 5 , wherein counting occurrences includes adjusting the counted occurrences based on an internal structure of a respective conversation of the plurality of conversations.

13. The method of claim 12 , further comprising:

when the internal structure of the respective conversation indicates a strong connection between the respective user and the first user for a subset of the conversation, the counted occurrences of terms in the subset of the conversation are given greater weight than a predefined normal weight.

14. The method of claim 13 , wherein:

the respective user represents a contact of the first user; and

the internal structure of the respective conversation indicates a strong connection between the contact and the first user for a subset of the conversation when the subset of the conversation includes one or more of:

a contribution by the contact to a subset of the respective conversation that was created by the first user,

a contribution by the first user to a subset of the respective conversation created by the contact, and

a subset of the conversation that was concurrently edited by the first user and the contact.

15. A system, comprising:

one or more processors;

a memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions to:

identify an ongoing conversation including a first user and a second user, wherein both the first user and the second user are messaging participants in the ongoing conversation, wherein the first user has delivered at least one message to the second user in the ongoing conversation;

generate, without user intervention, a conversation profile that is specific to the first user for the ongoing conversation, wherein the conversation profile includes (i) a set of terms specific to the first user that are included in messages of the ongoing conversation and (ii) context weights that correspond to the set of terms specific to the first user that are included in the messages, wherein the context weights are based on user-specific term weights included in a user profile of the first user;

use content of other ongoing conversations in which the first user is an active participant to generate user profiles of other users not included in the ongoing conversation, wherein the user profiles are further individualized to the first user by adjusting respective counted occurrences of one or more terms based on the user-specific term weights corresponding to the first user;

compare, during the ongoing conversation, the generated user profiles to the generated conversation profile to identify a third user not currently participating in the ongoing conversation whose generated user profile matches the conversation profile to a threshold degree;

generate, without user intervention, a suggestion for the first user to add the third user to the ongoing the conversation; and

format the suggestion for display to the first user.

16. A non-transitory computer readable storage medium and one or more computer programs embedded therein, the one or more computer programs comprising instructions, which when executed by a computing system, cause the computing system to:

identify an ongoing conversation including a first user and a second user, wherein both the first user and the second user are messaging participants in the ongoing conversation, wherein the first user has delivered at least one message to the second user in the ongoing conversation;

obtain, without user intervention, a conversation profile that is specific to the first user for the ongoing conversation, wherein the conversation profile includes (i) a set of terms specific to the first user that are included in messages of the ongoing conversation and (ii) context weights that correspond to the set of terms specific to the first user that are included in the messages, wherein the context weights are based on user-specific term weights included in a user profile of the first user;

use content of other ongoing conversations in which the first user is an active participant to generate user profiles of other users not included in the ongoing conversation, wherein the user profiles are further individualized to the first user by adjusting respective counted occurrences of one or more terms based on the user-specific term weights corresponding to the first user;

compare, during the ongoing conversation, the generated user profiles to the generated conversation profile to identify a third user not currently participating in the ongoing conversation whose generated user profile matches the conversation profile to a threshold degree;

generate, without user intervention, a suggestion for the first user to add the third user to the ongoing conversation; and

format the suggestion for display to the first user.

17. The method of claim 1 , further comprising:

receiving selection of the suggestion by the first user; and

in response to receiving the selection from the first user, adding the third user to the ongoing conversation.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2012
From: WALKWAY TECHNOLOGIES US LLC
To: GOOGLE INC.
Reel/Frame 028189/0114 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2010
From: HAWKER, TOBIAS ALEXANDER; WHITELAW, CASEY STUART
To: WALKWAY TECHNOLOGIES US LLC
Reel/Frame 024821/0617 →