IP Library › Granted Patent US 12,380,722
Granted Patent B2
US 12,380,722 · App. 17/563,848 · Granted Aug 5, 2025

On-device two step approximate string matching

Inventors: Vasyl Pihur (Santa Monica, CA); Scott Thompson (Santa Monica, CA)
Assignee: Snap Inc.
G06V30/1983G06V30/19113G06V30/19167
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,380,722
App. No.
17/563,848
Filed
Dec 28, 2021
Granted
Aug 5, 2025
Kind
B2
Art Unit
2164
USPC
707/706
Abstract

A personalized preview system to receive a request to access a collection of media items from a user of a user device. Responsive to receiving the request to access the collection of media items, the personalized preview system accesses user profile data associated with the user, wherein the user profile data includes an image. For example, the image may comprise a depiction of a face, wherein the face comprises a set of facial landmarks. Based on the image, the personalized preview system generates one or more media previews based on corresponding media templates and the image, and displays the one or more media previews within a presentation of the collection of media items at a client device of the user.

Claims (62)

1. A method comprising:

receiving, from a client device, a query against a corpus of text strings, the query comprising a string of characters received via a keyboard displayed within a graphical user interface (GUI) of the client device;

responsive to the receiving the query against the corpus of text strings, causing the client device to perform operations at the client device that include:

applying a modification to the string of characters;

generating one or more bigrams based on the string of characters that include the modification;

assigning weights to each bigram among the one or more bigrams based on a keyboard type of the keyboard displayed within the GUI of the client device, and an order of the one or more bigrams;

generating a hash-map that comprises a set of values and a key, the set of values including the weights of the one or more bigrams, and the key comprising the one or more bigrams;

determining a bigram distance between each of the one or more bigrams within the hash-map and at least a bigram of a text string from the corpus of text strings;

selecting the text string from the corpus of text strings based on the bigram distance between each of the one or more bigrams within the hash-map and the bigram of the text string; and

causing display of a presentation of a set of search results at the client device, the presentation of the set of search results including at least the text string.

2. The method of claim 1 , wherein the modifying the string of characters further comprises:

adding a space prior to the string of characters.

3. The method of claim 1 , wherein the one or more bigrams include a skip bigram.

4. The method of claim 1 , wherein the selecting the text string from the corpus of text strings based on the bigram distance between each of the one or more bigrams within the hash-map and the bigram of the text string further comprises:

performing a comparison of the bigram distance with a threshold value; and

selecting the text string based on the comparison.

5. The method of claim 1 , wherein the assigning weights to each bigram among the one or more bigrams is based on one or more factors that include a keyboard type associated with the client device.

6. The method of claim 1 , wherein the causing display of the presentation of the set of search results further comprises:

determining a ranking of the text string among the set of search results based on at least the bigram distance; and

displaying the text string among the presentation of the set of search results based on the ranking.

7. The method of claim 1 , wherein the receiving the query of the corpus of text strings further comprises:

receiving a user input that comprises the string of characters;

generating the query based on the string of characters; and

uploading the corpus of text string to the client device.

8. A system comprising:

a memory; and

at least one hardware processor coupled to the memory and comprising instructions that causes the system to perform operations comprising:

receiving, from a client device, a query against a corpus of text strings, the query comprising a string of characters received via a keyboard displayed within a graphical user interface (GUI) of the client device;

responsive to the receiving the query against the corpus of text strings, causing the client device to perform operations at the client device that include:

applying a modification to the string of characters;

generating one or more bigrams based on the string of characters that include the modification;

assigning weights to each bigram among the one or more bigrams based on a keyboard type of the keyboard displayed within the GUI of the client device, and an order of the one or more bigrams;

generating a hash-map that comprises a set of values and a key, the set of values including the weights of the one or more bigrams, and the key comprising the one or more bigrams;

determining a bigram distance between each of the one or more bigrams within the hash-map and at least a bigram of a text string from the corpus of text strings;

selecting the text string from the corpus of text strings based on the bigram distance between each of the one or more bigrams within the hash-map and the bigram of the text string; and

causing display of a presentation of a set of search results at the client device, the presentation of the set of search results including at least the text string.

9. The system of claim 8 , wherein the modifying the string of characters further comprises:

adding a space prior to the string of characters.

10. The system of claim 8 , wherein the one or more bigrams include a skip bigram.

11. The system of claim 8 , wherein the selecting the text string from the corpus of text strings based on the bigram distance between each of the one or more bigrams within the hash-map and the bigram of the text string further comprises:

performing a comparison of the bigram distance with a threshold value; and

selecting the text string based on the comparison.

12. The system of claim 8 , wherein the assigning weights to each bigram among the one or more bigrams is based on one or more factors that include a keyboard type associated with the client device.

13. The system of claim 8 , wherein the causing display of the presentation of the set of search results further comprises:

determining a ranking of the text string among the set of search results based on at least the bigram distance; and

displaying the text string among the presentation of the set of search results based on the ranking.

14. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

receiving, from a client device, a query against a corpus of text strings, the query comprising a string of characters received via a keyboard displayed within a graphical user interface (GUI) of the client device;

responsive to the receiving the query against the corpus of text strings, causing the client device to perform operations at the client device that include:

applying a modification to the string of characters;

generating one or more bigrams based on the string of characters that include the modification;

assigning weights to each bigram among the one or more bigrams based on a keyboard type of the keyboard displayed within the GUI of the client device, and an order of the one or more bigrams;

generating a hash-map that comprises a set of values and a key, the set of values including the weights of the one or more bigrams, and the key comprising the one or more bigrams;

determining a bigram distance between each of the one or more bigrams within the hash-map and at least a bigram of a text string from the corpus of text strings;

selecting the text string from the corpus of text strings based on the bigram distance between each of the one or more bigrams within the hash-map and the bigram of the text string; and

causing display of a presentation of a set of search results at the client device, the presentation of the set of search results including at least the text string.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the modifying the string of characters further comprises:

adding a space prior to the string of characters.

16. The non-transitory machine-readable storage medium of claim 14 , wherein the one or more bigrams include a skip bigram.

17. The non-transitory machine-readable storage medium of claim 14 , wherein the selecting the text string from the corpus of text strings based on the bigram distance between each of the one or more bigrams within the hash-map and the bigram of the text string further comprises:

performing a comparison of the bigram distance with a threshold value; and

selecting the text string based on the comparison.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2022
From: PIHUR, VASYL; THOMPSON, SCOTT
To: SNAP INC.
Reel/Frame 058840/0401 →
Continuity (1)
Related Publication 20230206669A1 · Jun 29, 2023
References Cited (46)
US 5532694A · Mayers · 1996 [cited by examiner]
US 6173298B1 · Smadja · 2001 [cited by applicant]
US 8065311B2 · Wang et al. · 2011 [cited by applicant]
US 8166029B2 · Park · 2012 [cited by examiner]
US 8266169B2 · Bobrow · 2012 [cited by examiner]
US 8768935B2 · Raemy et al. · 2014 [cited by applicant]
US 8930399B1 · Das · 2015 [cited by examiner]
US 9411800B2 · Morin et al. · 2016 [cited by applicant]
US 9465792B2 · Jifroodian-haghighi et al. · 2016 [cited by applicant]
US 9600542B2 · Mueller · 2017 [cited by examiner]
US 10102274B2 · Mittal · 2018 [cited by examiner]
US 10748118B2 · Fang · 2020 [cited by applicant]
US 10762112B2 · Negrea et al. · 2020 [cited by applicant]
US 10911387B1 · Al Majid et al. · 2021 [cited by applicant]
US 10936813B1 · Gupta · 2021 [cited by examiner]
US 10970573B2 · Khitrov et al. · 2021 [cited by applicant]
US 11030789B2 · Chand et al. · 2021 [cited by applicant]
US 11151317B1 · Singh et al. · 2021 [cited by applicant]
US 11194865B2 · Singh et al. · 2021 [cited by applicant]
US 11195018B1 · Cowburn et al. · 2021 [cited by applicant]
US 20070250501A1 · Grubb · 2007 [cited by examiner]
US 20120066214A1 · Nelke · 2012 [cited by examiner]
US 20150193431A1 · Stoytchev · 2015 [cited by examiner]
US 20150355836A1 · Gummadidala · 2015 [cited by examiner]
US 20150379571A1 · Grbovic · 2015 [cited by examiner]
US 20160026258A1 · Ou · 2016 [cited by examiner]
US 20170014682A1 · Mrowka · 2017 [cited by examiner]
US 20190332876A1 · Khitrov · 2019 [cited by examiner]
US 20200183954A1 · Kabra et al. · 2020 [cited by applicant]
US 20200320782A1 · Cowburn et al. · 2020 [cited by applicant]
US 20210149936A1 · Beller et al. · 2021 [cited by applicant]
US 20210150129A1 · Horesh et al. · 2021 [cited by applicant]
US 20210295179A1 · Eyal Altman · 2021 [cited by examiner]
US 20210304469A1 · Heikkinen et al. · 2021 [cited by applicant]
US 20210326526A1 · Yee et al. · 2021 [cited by applicant]
US 20210377200A1 · Heikkinen et al. · 2021 [cited by applicant]
US 20210406471A1 · Kullok et al. · 2021 [cited by applicant]
CN 118475926 · 2024 [cited by applicant]
WO WO2023129927A1 · 2023 [cited by applicant]
“International Application Serial No. PCT/US2022/082427, International Search Report mailed Mar. 14, 2023”, 4 pgs. [cited by applicant]
“International Application Serial No. PCT/US2022/082427, Written Opinion mailed Mar. 14, 2023”, 7 pgs. [cited by applicant]
Cao, Jinkun, et al., “A Novel Fuzzy Search Approach over Encrypted Data with Improved Accuracy and Efficiency”, arxiv.org, Cornell University Library, 201 Olin Library Cornell University Ithaca, NY 14853, (Apr. 27, 2019… [cited by applicant]
Harren, Matthew, et al., “Complex Queries in DHT-based Peer-to-Peer Networks”, Lecture Notes in Computer Science Peer-to-Peer Systems, vol. 2429, [Online]. Retrieved from the Internet: <URL: http://db.cs.berkeley.edu/jm… [cited by applicant]
Jian, Xu, et al., “[Online]. Retrieved from the Internet: <URL: https://aclanthology.org/S12-1075.pdf>”, First Joint Conference on Lexical and Computational Semantics (SEM), [Online]. Retrieved from the Internet: <URL: … [cited by applicant]
Pihur, Vasyl, et al., “On-device Fuzzy Friend Search at Snapchat”, Proceedings of ACM Conference '17, ACM, NY, USA, (2018), 4 pgs. [cited by applicant]
“International Application Serial No. PCT/US2022/082427, International Preliminary Report on Patentability mailed Jul. 11, 2024”, 9 pgs. [cited by applicant]