IP Library Granted Patent US 10,713,316
Granted Patent B2
US 10,713,316 · App. 15/299,100 · Granted Jul 14, 2020

Search engine using name clustering

Inventors: Lin Guo (Sunnyvale, CA); Abhimanyu Lad (San Mateo, CA); Ganesh Venkataraman (San Jose, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F16/9535G06F16/35G06F16/9038G06F16/90332G06F40/242G06F40/279
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 10,713,316
App. No.
15/299,100
Granted
Jul 14, 2020
Kind
B2
Abstract

This disclosure relates to systems and methods for searching names using name clusters. A method includes receiving names, generating a plurality of phonetic cluster identifiers, forming a plurality of name clusters by grouping the names having an equivalent cluster id, removing names from the respective name clusters that differ from a root name by more than either a particular spelling of a phonetic sound or a specific member's reformulation according to a reformulation dictionary, and suggesting one or more names by generating a phonetic cluster id for the received name using the database of phonetic associations and returning names found in the name cluster that matches the phonetic cluster id.

Claims (36)

1. A system comprising:

a machine-readable medium having instructions stored thereon, which, when executed by a processor, causes the processor to perform operations comprising:

receiving a plurality of names;

generating a plurality of phonetic cluster identifiers according to a phonetic spelling of the names using a database of phonetic associations and not including vowel sounds;

forming a plurality of name clusters by grouping the names having an equivalent cluster id into a corresponding name cluster of the plurality of name clusters;

removing names from respective name clusters that differ from a root name by more than either particular spelling of a phonetic sound or a specific member's reformulation according to a reformulation dictionary; and

suggesting, in response to receiving a name from a member of an online social networking system, one or more names by generating a phonetic cluster id for the received name and returning names found in the name cluster that matches the phonetic cluster id.

2. The system of claim 1 , wherein the operations further comprise generating the reformulation dictionary and the database of phonetic associations using name spelling reformulations from members of the online social networking service.

3. The system of claim 2 , wherein the operations further comprise removing an entry in the database of phonetic associations in response to the entry being determined from reformulations above a first threshold percentage or below a second threshold percentage.

4. The system of claim 1 , wherein the name clusters are partitioned according to a source language for the names in the name clusters.

5. The system of claim 1 , wherein the name includes multiple terms, the first term matching the name cluster according to the phonetic cluster id and additional terms being stored in additional nodes linked to the first term.

6. The system of claim 1 , wherein the operations further comprise removing a first name from a name cluster based on the first name being less than or equal to a threshold number of characters long and a character difference between the first name and a root name for the respective name cluster being more than or equal to a threshold percentage of the threshold number of characters.

7. The system of claim 1 , wherein the name clusters are structured to include a root name with other names in the respective name clusters linking in a tree structure from the root name.

8. A method comprising:

receiving a plurality of names;

generating a plurality of phonetic cluster identifiers according to a phonetic spelling of the names using a database of phonetic associations and not including vowel sounds;

forming a plurality of name clusters by grouping the names having an equivalent cluster id;

removing names from the respective name clusters that differ from a root name by more than either particular spelling of a phonetic sound or a specific member's reformulation according to a reformulation dictionary; and

suggesting, in response to receiving a name from a member of an online social networking system, one or more names by generating a phonetic cluster id for the received name using the database of phonetic associations and returning names found in the name cluster that match the phonetic cluster id.

9. The method of claim 8 , further comprising generating the reformulation dictionary and a database of phonetic associations using name spelling reformulations from members interactions with an online social networking service.

10. The method of claim 9 , further comprising removing an entry in the database of phonetic associations in response to the entry being generated from reformulations above a first threshold percentage or being below a second threshold percentage.

11. The method of claim 8 , wherein the name clusters are partitioned according to a source language for the names in the name clusters.

12. The method of claim 8 , wherein the name includes multiple terms, the first term matching the name cluster according to the phonetic cluster id and additional terms being stored in additional nodes linked to the first term.

13. The method of claim 8 , further comprising removing a first name from a name cluster based on the first name being less than or equal to a threshold number of characters long and a character difference between the first name and a root name for the respective name cluster being more than or equal to a threshold percentage of the threshold number of characters.

14. The method of claim 8 , wherein the name clusters are structured to include a root name with other names in the respective name clusters linking in a tree structure from the root name.

15. A non-transitory machine-readable medium having instructions stored thereon, which, when executed by a processor, cause the processor to perform:

receiving a plurality of names;

generating a plurality of phonetic cluster identifiers according to a phonetic spelling of the names using a database of phonetic associations and not including vowel sounds;

forming a plurality of name clusters by grouping the names having an equivalent cluster id;

removing names from the respective name clusters that differ from a root name by more than either particular spelling of a phonetic sound or a specific member's reformulation according to a reformulation dictionary; and

suggesting, in response to receiving a name from a member of an online social networking system, one or more names by generating a phonetic cluster id for the received name using the database of phonetic associations and returning names found in the name cluster that matches the phonetic cluster id.

16. The machine-readable hardware medium of claim 15 , wherein the instructions further cause the processor to perform generating the reformulation dictionary and a database of phonetic associations using name spelling reformulations from members' interactions with an online social networking service.

17. The machine-readable hardware medium of claim 16 , wherein the instructions further cause the processor to perform removing an entry in the database of phonetic associations in response to the entry having reformulations above an upper threshold percentage or being below a lower threshold percentage.

18. The machine-readable hardware medium of claim 15 , wherein the name includes multiple terms, the first term matching the name cluster according to the phonetic cluster id and additional terms being stored in additional nodes linked to the first term.

19. The machine-readable hardware medium of claim 15 , wherein the indicating to keep one or more names in each name cluster is further based on the name being more than a threshold number of characters long and a character difference between the name and a root name for the respective name cluster being less than a threshold percentage of the threshold number of characters.

20. The machine-readable hardware medium of claim 15 , wherein the name clusters are partitioned according to a source language for the names in the name clusters.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2016
From: GUO, LIN; LAD, ABHIMANYU; VENKATARAMAN, GANESH
To: LINKEDIN CORPORATION
Reel/Frame 040147/0989 →
Continuity (1)
Related Publication 20180113943A1 · Apr 26, 2018