IP Library Granted Patent US 12,293,153
Granted Patent B2
US 12,293,153 · App. 17/892,169 · Granted May 6, 2025

Fuzzy matching of obscure texts with meaningful terms included in a glossary

Inventors: Shlomit Ifergan Shachor (Yokneam Eilit, IL); Natalia Razinkov (Haifa, IL); Micha Gideon Moffie (Zichron Yaakov, IL); Omer Yehuda Boehm (Haifa, IL)
Assignee: International Business Machines Corporation
G06F40/284
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,293,153
App. No.
17/892,169
Granted
May 6, 2025
Kind
B2
Abstract

A method comprising: obtaining multiple glossary terms each comprising one or more words; generating multiple fuzzy tokens from each word of each of the glossary terms; calculating a similarity score for each of the fuzzy tokens, the similarity score denoting a similarity between the respective fuzzy token and its respective word; obtaining multiple input terms to be matched with the multiple glossary terms; separating each of the input terms into multiple input tokens; generating multiple n-grams from each of the input tokens; comparing the n-grams with the fuzzy tokens, to output a list of matching n-grams and fuzzy tokens; based on the list of matching n-grams and fuzzy tokens, identifying, from the glossary terms, candidate glossary term matches for each of the input terms; and calculating one or more scores that quantify the match between each of the candidate glossary term matches and its respective input term.

Claims (57)

1. A computer-implemented method comprising:

obtaining multiple glossary terms each comprising one or more words; automatically operating a fuzzy token generator to generate multiple fuzzy tokens from each word of each of the glossary terms;

automatically calculating a similarity score for each of the fuzzy tokens, wherein the similarity score denotes a similarity between the respective fuzzy token and its respective word;

obtaining multiple input terms to be matched with the multiple glossary terms;

automatically operating a tokenizer to separate each of the input terms into multiple input tokens;

automatically generating multiple n-grams from each of the input tokens;

automatically comparing the n-grams with the fuzzy tokens, to output a list of matching n-grams and fuzzy tokens;

based on the list of matching n-grams and fuzzy tokens, automatically identifying, from the glossary terms, candidate glossary term matches for each of the input terms; and

automatically calculating one or more scores that quantify the match between each of the candidate glossary term matches and its respective input term,

wherein the calculation of the one or more scores that quantify the match comprises:

calculating a match score between each of the input terms and each of its identified candidate glossary term matches, as:

a sum of the similarity scores of the fuzzy tokens associated with the respective candidate glossary term matches,

the sum being normalized to a length of the fuzzy tokens associated with the respective candidate glossary term matches, relative to a total length of the input terms, wherein the normalized sum being factored by a ratio between (a) a number of words in each of the candidate glossary term matches whose fuzzy tokens were matched with the automatically comparing step, and (b) a total number of words in each of the candidate glossary term matches.

2. The computer-implemented method of claim 1 , wherein each of the fuzzy tokens consists of a subset of letters of its respective glossary term.

3. The computer-implemented method of claim 1 , wherein the calculation of the similarity score comprises calculating a distance between the respective fuzzy token and its respective word.

4. The computer-implemented method of claim 3 , wherein, in the calculation of the similarity score, a smaller weight is given to vowel omission than to consonant omission.

5. The computer-implemented method of claim 1 , wherein the separating of each of the input terms into the multiple input tokens is based on a location in the respective input term of at least one selected from a group consisting of: a separator character, a white space, and a medial capital.

6. The computer-implemented method of claim 1 , wherein the generated n-grams are of various lengths, from a length of two letters up to a length of the respective input token.

7. The computer-implemented method of claim 1 , the method further comprising:

filtering out the candidate glossary term matches, based on the similarity scores of the fuzzy tokens.

8. A system comprising:

(a) at least one hardware processor; and

(b) a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by said at least one hardware processor to:

obtain multiple glossary terms each comprising one or more words; automatically operate a fuzzy token generator to generate multiple fuzzy tokens from each word of each of the glossary terms;

automatically calculate a similarity score for each of the fuzzy tokens, wherein the similarity score denotes a similarity between the respective fuzzy token and its respective word;

obtain multiple input terms to be matched with the multiple glossary terms; automatically operate a tokenizer to separate each of the input terms into multiple input tokens;

automatically generate multiple n-grams from each of the input tokens;

automatically compare the n-grams with the fuzzy tokens, to output a list of matching n-grams and fuzzy tokens;

based on the list of matching n-grams and fuzzy tokens, automatically identify, from the glossary terms, candidate glossary term matches for each of the input terms; and

automatically calculate one or more scores that quantify the match between each of the candidate glossary term matches and its respective input term,

wherein the calculation of the one or more scores that quantify the match comprises:

calculating a match score between each of the input terms and each of its identified candidate glossary term matches, as:

a sum of the similarity scores of the fuzzy tokens associated with the respective candidate glossary term matches,

the sum being normalized to a length of the fuzzy tokens associated with the respective candidate glossary term matches, relative to a total length of the input terms, wherein the normalized sum being factored by a ratio between (a) a number of words in each of the candidate glossary term matches whose fuzzy tokens were matched with the automatically comparing step, and (b) a total number of words in each of the candidate glossary term matches.

9. The system of claim 8 , wherein each of the fuzzy tokens consists of a subset of letters of its respective glossary term.

10. The system of claim 8 , wherein the calculation of the similarity score comprises calculating a distance between the respective fuzzy token and its respective word.

11. The system of claim 10 , wherein, in the calculation of the similarity score, a smaller weight is given to vowel omission than to consonant omission.

12. The system of claim 8 , wherein the separating of each of the input terms into the multiple input tokens is based on a location in the respective input term of at least one of: a separator character, a white space, and a medial capital.

13. The system of claim 8 , wherein the generated n-grams are of various lengths, from a length of two letters up to a length of the respective input token.

14. The system of claim 8 , further comprising filtering out the candidate glossary term matches, based on the similarity scores of the fuzzy tokens.

15. A computer-implemented method comprising:

obtaining multiple glossary terms each comprising one or more words; automatically operating a fuzzy token generator to generate multiple fuzzy tokens from each word of each of the glossary terms;

automatically calculating a similarity score for each of the fuzzy tokens, wherein the similarity score denotes a similarity between the respective fuzzy token and its respective word;

obtaining multiple input terms to be matched with the multiple glossary terms;

automatically operating a tokenizer to separate each of the input terms into multiple input tokens;

automatically generating multiple n-grams from each of the input tokens;

automatically comparing the n-grams with the fuzzy tokens, to output a list of matching n-grams and fuzzy tokens;

based on the list of matching n-grams and fuzzy tokens, automatically identifying, from the glossary terms, candidate glossary term matches for each of the input terms; and

automatically calculating one or more scores that quantify the match between each of the candidate glossary term matches and its respective input term,

wherein the calculation of the one or more scores that quantify the match comprises:

calculating a match score between each of the input terms and each of its identified candidate glossary term matches, as:

a sum of the similarity scores of the fuzzy tokens associated with the respective candidate glossary term matches,

the sum being normalized to a length of the fuzzy tokens associated with the respective candidate glossary term matches, relative to a total length of the input terms; and

calculating a relation score between each of the input terms and each of its identified candidate glossary term matches, as:

a sum of the similarity scores of the fuzzy tokens associated with the respective candidate glossary term matches,

the sum being normalized to a length of the fuzzy tokens associated with the respective candidate glossary term matches, relative to a total length of the input terms that match the words of each of the respective candidate glossary term matches,

the normalized sum being factored by a ratio between (a) a number of words in each of the candidate glossary term matches whose fuzzy tokens were matched with the automatically comparing step, and (b) a total number of words in each of the candidate glossary term matches.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2022
From: SHACHOR, SHLOMIT IFERGAN; RAZINKOV, NATALIA; MOFFIE, MICHA GIDEON; BOEHM, OMER YEHUDA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 060863/0954 →
Continuity (1)
Related Publication 20240062004A1 · Feb 22, 2024
References Cited (25)
US 6718325B1 · Chandra · 2004 [cited by examiner]
US 7296011B2 · Chaudhuri · 2007 [cited by examiner]
US 7870151B2 · Mayer · 2011 [cited by applicant]
US 8073869B2 · Li · 2011 [cited by examiner]
US 8219550B2 · Merz · 2012 [cited by applicant]
US 10191974B2 · Indeck · 2019 [cited by applicant]
US 20040260694A1 · Chaudhuri · 2004 [cited by examiner]
US 20050102303A1 · Russell · 2005 [cited by applicant]
US 20080091413A1 · El-Shishiny · 2008 [cited by examiner]
US 20080120072A1 · Bartz · 2008 [cited by examiner]
US 20090182728A1 · Anderson · 2009 [cited by examiner]
US 20110184893A1 · Paparizos · 2011 [cited by applicant]
US 20120059821A1 · Li · 2012 [cited by applicant]
US 20190018904A1 · Russell · 2019 [cited by applicant]
US 20200210478A1 · Wada · 2020 [cited by applicant]
US 20200327252A1 · McFall · 2020 [cited by applicant]
US 20210020277A1 · Guo · 2021 [cited by examiner]
US 20230086791A1 · Bierner · 2023 [cited by examiner]
US 20240062004A1 · Shachor · 2024 [cited by examiner]
Hiba Khalid et al., “Fuzzy Metadata Strategies for Enhanced Data Integration”; In Proceedings of the 7th International Conference on Data Science, Technology and Applications (DATA 2018), pp. 83-90, 2018. [cited by applicant]
Jiannan Wang et al., “Fast-join: An efficient method for fuzzy token matching based string similarity join”; Conference: Proceedings of the 27th International Conference on Data Engineering, ICDE 2011, Apr. 11-16, 2011. [cited by applicant]
Tao Cheng et al., “Fuzzy matching of Web queries to structured data”; IEEE 26th International Conference on Data Engineering (ICDE 2010), pp. 713-716, Mar. 1-6, 2010. [cited by applicant]
Apache Software Foundation, “Apache Lucene,” Retrieved from: https://lucene.apache. org, Aug. 8, 2022, 2 pages. [cited by applicant]
Apache Software Foundation, “Class FuzzyQuery,” Retrieve from: https://lucene.apache.org/core/8_0_0/core/org/apache/lucene/search/FuzzyQuery.html, Aug. 8, 2022, 7 pages. [cited by applicant]
Apache Software Foundation, “Class SpellChecker,” online at: https://lucene.apache.org/core/6_0_1/suggest/org/apache/lucene/search/spell/SpellChecker.html, Aug. 8, 2022, 10 pages. [cited by applicant]