IP Library Granted Patent US 12,619,651
Granted Patent B2
US 12,619,651 · App. 19/010,687 · Granted May 5, 2026

Hierarchical dictionary with statistical filtering based on word frequency

Inventors: Ralph Meier (Rastede, DE); Johannes Hausmann (Corcelles, CH); Harry Urbschat (Oldenburg, DE); Thorsten Wanschura (Oldenburg, DE)
Assignee: HYLAND SWITZERLAND SÁRL
G06F16/36G06F16/313G06F16/335
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,619,651
App. No.
19/010,687
Granted
May 5, 2026
Kind
B2
Abstract

A hierarchical dictionary having methods of storing words based on frequency thereof in one or more documents that includes the steps of identifying a hash value corresponding to an inputted word; storing the word in a first hash map and in a second hash map having a substantially larger word storage capacity than the first hash map based on the identified hash value; clearing the first hash map at every predetermined period or triggering event; determining whether a frequency of the word as stored in the second hash map exceeds a predetermined value; and if so, promoting the word from the second hash map to a third hash map having a substantially larger word storage capacity than the second hash map for long-term storage and later retrieval.

Claims (52)

1 . A method performed by a processor of a computing device for organizing a plurality of words associated with a document, the method comprising:

obtaining, by the processor, the plurality of words;

storing, by the processor, a word in the plurality of words in a first data structure stored in memory accessible to the processor, wherein the first data structure has a first word capacity;

updating, by the processor, a frequency of the word in the first data structure;

storing, by the processor, the word in a second data structure stored in the memory accessible to the processor, wherein the second data structure has a second word capacity that is greater than the first word capacity; and

ranking, by the processor and based upon the frequency, the word relative to each other of the plurality of words;

promoting, by the processor and based upon the ranking, the word to a third data structure at a longer period of time than when stored in second data structure after a predetermined period of time that initiates in response to the word reaching a predetermined frequency limit in the second data structure, wherein the third data structure has a third word capacity that is greater than the second word capacity of the second data structure;

gathering into the second data structure, by the processor based upon the ranking and instructions in the second data structure, statistics on each of the plurality of words in the document, wherein the second data structure comprises the instructions that operate to statistically filter the plurality of words being inputted for gathering the statistics on each of the plurality of words in the document and to filter the plurality of words stored in the first data structure and the third data structure; and

based on the instructions in the second data structure, filtering, by the processor, the plurality of words stored in the first data structure and the third data structure by transferring and removing between the first data structure and the third data structure each of the plurality of words based on the statistics that the second data structure gathered.

2 . The method of claim 1 , wherein the plurality of words are stored in a first hash map stored in the first data structure, wherein the second plurality of words are stored in a second hash map stored in the second data structure.

3 . The method of claim 1 , wherein the first data structure, the second data structure, and the third data structure form layers of a data structure, each of the layers comprising a fixed size hash map that is associated with a different capacity limit, a different frequency limit, and a different period of time from one another among the plurality of words.

4 . The method of claim 1 , wherein the document is a dictionary.

5 . The method of claim 1 , wherein the word includes phrases, images, and sounds.

6 . The method of claim 1 , wherein the plurality of word are input to a first hash map and a second hash map, wherein the first hash map has a first word capacity and the second hash map has a second word capacity, wherein the second word capacity is greater than the first word capacity.

7 . The method of claim 6 , wherein for each word of the plurality of words:

identifying a hash value corresponding to a word in the first hash map and the second hash map, determining whether a bucket associated with the hash value is empty;

upon a determination that the bucket is empty, setting a frequency of the word to a first value and storing the word and the frequency of the word in the bucket; and

upon a determination that the bucket is not empty, updating the frequency of the word in the bucket to a second value.

8 . The method of claim 7 , further comprising:

determining, in the second hash map and after a predetermined period of time has elapsed, whether the frequency of at least one of the plurality of words is equal to or greater than a predetermined limit; and

upon a positive determination that the frequency of the at least one of the plurality of words is equal to or greater than the predetermined limit, promoting each of the at least one of the plurality of words to a third hash map, wherein the third hash map has a third word capacity, wherein the third word capacity is greater than the second word capacity,

wherein a first word in the plurality of words has a frequency that is less than the predetermined limit stored in the second hash map and a second word in the plurality of words has a frequency that is equal to or greater than the predetermined limit stored in the third hash map, the second hash map keeping respective frequencies of the plurality of words and including program instructions for performing the promoting from the first hash map to the third hash map.

9 . A computing device, comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the processor to perform acts comprising:

obtaining, by the processor, a plurality of words associated with a document;

storing, by the processor, a word in the plurality of words in a first data structure stored in memory accessible to the processor, wherein the first data structure has a first word capacity;

updating, by the processor, a frequency of the word in the first data structure;

storing, by the processor, the word in a second data structure stored in the memory accessible to the processor, wherein the second data structure has a second word capacity that is greater than the first word capacity; and

ranking, by the processor and based upon the frequency, the word relative to each other of the plurality of words;

promoting, by the processor and based upon the ranking, the word to a third data structure at a longer period of time than when stored in second data structure after a predetermined period of time that initiates in response to the word reaching a predetermined frequency limit in the second data structure, wherein the third data structure has a third word capacity that is greater than the second word capacity and the second data structure;

gathering into the second data structure, by the processor based upon the ranking and instructions in the second data structure, statistics on each of the plurality of words in the document, wherein the second data structure comprises the instructions that operate to statistically filter the plurality of words being inputted for gathering the statistics on each of the plurality of words in the document and to filter the plurality of words stored in the first data structure and the third data structure; and

based on the instructions in the second data structure, filtering, by the processor, the plurality of words stored in the first data structure and the third data structure by transferring and removing between the first data structure and the third data structure each of the plurality of words based on the statistics that the second data structure gathered.

10 . The computing device of claim 9 , wherein the plurality of words are stored in a first hash map stored in the first data structure, wherein the second plurality of words are stored in a second hash map stored in the second data structure.

11 . The computing device of claim 9 , wherein the word is cleared from the third data structure periodically.

12 . The computing device of claim 9 , wherein the document is a dictionary.

13 . The computing device of claim 9 , wherein the word includes phrases, images, and sounds.

14 . The computing device of claim 9 , wherein the plurality of word are input to a first hash map and a second hash map, wherein the first hash map has a first word capacity and the second hash map has a second word capacity, wherein the second word capacity is greater than the first word capacity.

15 . A non-transitory computer-readable storage medium having stored therein a first data structure for storing a plurality of words associated with a document for a predetermined period of time, the first data structure having a first word capacity, a second data structure, wherein the second data structure has a second word capacity that is greater than the first word capacity; the medium further including instructions for performing acts comprising:

obtaining, by a processor, the plurality of words;

storing, by the processor, a word in the plurality of words in a first data structure stored in memory accessible to the processor;

updating, by the processor, a frequency of the word in the first data structure;

storing, by the processor, the word in a second data structure stored in the memory accessible to the processor; and

comparing by the processor and based upon the frequency, the word relative to each other of the plurality of words;

promoting, by the processor and based upon the comparing, the word to a third data structure at a longer period of time than when stored in second data structure after a predetermined period of time that initiates in response to the word reaching a predetermined frequency limit in the second data structure, wherein the third data structure has a third word capacity that is greater than the second word capacity and the second data structure;

gathering into the second data structure, by the processor based upon the comparing and instructions in the second data structure, statistics on each of the plurality of words in the document, wherein the second data structure comprises the instructions that operate to statistically filter the plurality of words being inputted for gathering the statistics on each of the plurality of words in the document and to filter the plurality of words stored in the first data structure and the third data structure; and

based on the instructions in the second data structure, filtering, by the processor, the plurality of words stored in the first data structure and the third data structure by transferring and removing between the first data structure and the third data structure each of the plurality of words based on the statistics that the second data structure gathered.

16 . The non-transitory computer-readable storage medium of claim 15 , wherein the plurality of words are stored in a first hash map stored in the first data structure, wherein the second plurality of words are stored in a second hash map stored in the second data structure.

17 . The non-transitory computer-readable storage medium of claim 15 , wherein the word is cleared from the third data structure periodically.

18 . The non-transitory computer-readable storage medium of claim 15 , wherein the document is a dictionary.

19 . The non-transitory computer-readable storage medium of claim 15 , wherein the word includes phrases, images, and sounds.

20 . The non-transitory computer-readable storage medium of claim 15 , wherein the plurality of word are input to a first hash map and a second hash map, wherein the first hash map has a first word capacity and the second hash map has a second word capacity, wherein the second word capacity is greater than the first word capacity.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2025
From: HAUSMANN, JOHANNES; MEIER, RALPH; URBSCHAT, HARRY; WANSCHURA, THORSTEN
To: LEXMARK INTERNATIONAL TECHNOLOGY, SARL
Reel/Frame 069755/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2025
From: LEXMARK INTERNATIONAL TECHNOLOGY SARL
To: KOFAX INTERNATIONAL SWITZERLAND SARL
Reel/Frame 069755/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2025
From: KOFAX INTERNATIONAL SWITZERLAND SARL
To: HYLAND SWITZERLAND SARL
Reel/Frame 069826/0417 →
Continuity (4)
Continuation 17175288 · Feb 12, 2021
Continuation 15395778 · Dec 30, 2016
Provisional Application 62288032 · Jan 28, 2016
Related Publication 20250139150A1 · May 1, 2025
References Cited (51)
US 5704060A · Del Monte · 1997 [cited by applicant]
US 5706462A · Matousek · 1998 [cited by applicant]
US 6292880B1 · Mattis et al. · 2001 [cited by applicant]
US 7058639B1 · Chatterjee et al. · 2006 [cited by applicant]
US 7484092B2 · Rajasekaran · 2009 [cited by examiner]
US 8176031B1 · Rubin · 2012 [cited by examiner]
US 8653993B2 · Bendel et al. · 2014 [cited by applicant]
US 8725779B1 · Grzywinski · 2014 [cited by applicant]
US 10678830B2 · Li · 2020 [cited by examiner]
US 10922347B2 · Meier et al. · 2021 [cited by applicant]
US 20060171588A1 · Chellapilla et al. · 2006 [cited by applicant]
US 20090089048A1 · Pouzin · 2009 [cited by applicant]
US 20100011028A1 · Dade · 2010 [cited by applicant]
US 20100115046A1 · Reddy et al. · 2010 [cited by applicant]
US 20100235606A1 · Oreland et al. · 2010 [cited by applicant]
US 20120173833A1 · Lehr · 2012 [cited by applicant]
US 20130275677A1 · Kpyanagi et al. · 2013 [cited by applicant]
US 20140201126A1 · Zadeh et al. · 2014 [cited by applicant]
US 20140223030A1 · Bhaskar et al. · 2014 [cited by applicant]
US 20160182373A1 · Wang · 2016 [cited by applicant]
US 20170011093A1 · LeCompte · 2017 [cited by applicant]
US 20170024276A1 · Kanno · 2017 [cited by applicant]
US 20180027123A1 · Cartwright et al. · 2018 [cited by applicant]
US 20180336902A1 · Cartwright · 2018 [cited by examiner]
US 20190129972A1 · Borate et al. · 2019 [cited by applicant]
US 20210165813A1 · Meier et al. · 2021 [cited by applicant]
Mansur, Munirul. Analysis of n-gram based text categorization for bangla in a newspaper corpus. Diss. BRAC University, 2006. (Year: 2006). [cited by examiner]
Thorup, Mikkel. “Timeouts with time-reversed linear probing.” 2011 Proceedings IEEE INFOCOM. IEEE, 2011. (Year: 2011). [cited by examiner]
Wang, En Tzu, and Arbee LP Chen. “A novel hash-based approach for mining frequent itemsets over data streams requiring less memory space.” Data Mining and Knowledge Discovery 19.1 (2009): 132-172. (Year: 2009). [cited by examiner]
Zhang, Yongpeng, et al. “Data-intensive document clustering on graphics processing unit (GPU) clusters.” Journal of Parallel and Distributed Computing 71.2 (2011): 211-224. (Year: 2011). [cited by examiner]
Heafield, Kenneth. Efficient Language Modeling Algorithms with Applications to Statistical Machine Translation. Diss. Ph. D. thesis, Carnegie Mellon University, 2013. (Year: 2013). [cited by examiner]
Murphy, P. Pratikakis, et al. “ASAP D2. 2 Programming model and implementation design.” (Year: 2016). [cited by examiner]
Almani, Mohsen, “Office Action for United States U.S. Appl. No. 15/395,778”, Mailed Date: Jan. 27, 2020, 14 pages. [cited by applicant]
Teng, et al., “A Regression-Based Temporal Pattern Mining Scheme for Data Streams”, In Proceedings of the 29th VLDB Conference, 2003, 12 pages. [cited by applicant]
Datar, et al., “Maintaining Stream Statistics Over Sliding Windows”, In Society for Industrial and Applied Mathematics, vol. 31, No. 6, 2002, pp. 1794-1813. [cited by applicant]
Almani, Mohsen, “Notice of Allowance for United States U.S. Appl. No. 15/395,778”, Mailed Date: Oct. 15, 2020, 7 pages. [cited by applicant]
Osca, Alexander, and Elaine PM de Sousa. “An Adaptive Multi-level Hashing Structure for Fast Approximate Similarity Search.” 2010. (Year: 2010). [cited by applicant]
Knott, Gary D. “Expandable open addressing hash table storage and retrieval.” Proceedings of the 1971 Acm Sigfidet (now SIGMOD) Workshop on Data Description, Access and Control. 1971. (Year: 1971). [cited by applicant]
techopedia.com, persistence definition, https://www.techopedia.com/definition/8842/persistence-computing. (Year: 2014). [cited by applicant]
Almani, Mohsen, “Office Action for U.S. Appl. No. 17/175,254”, Mailed Date: Mar. 31, 2022, 19 pages. [cited by applicant]
Almani, Mohsen, “Final Office Action for U.S. Appl. No. 17/175,254”, Mailed Date: Oct. 12, 2022, 20 pages. [cited by applicant]
Almani, Mohsen, “Office Action for U.S. Appl. No. 17/175,254”, Mailed Date: Mar. 20, 2023, 22 pages. [cited by applicant]
Almani, Mohsen, “Final Office Action for U.S. Appl. No. 17/175,254”, Mailed Date: Sep. 26, 2023, 21 pages. [cited by applicant]
Almani, Mohsen, “Office Action for U.S. Appl. No. 17/175,254”, Mailed Date: Feb. 20, 2024, 22 pages. [cited by applicant]
Almani, Mohsen, “Notice of Allowance for U.S. Appl. No. 17/175,254”, Mailed Date: Jul. 3, 2024, 7 pages. [cited by applicant]
Anand, Ashok, et al. “Cheap and Large CAMs for High Performance Data-Intensive Networked Systems.” NSDI. vol. 10. 2010 (Year: 2010). [cited by applicant]
Almani, Mohsen, “Office Action for U.S. Appl. No. 17/175,288”, Mailed Date: Oct. 24, 2022, 18 pages. [cited by applicant]
Almani, Mohsen, “Final Office Action for U.S. Appl. No. 17/175,288”, Mailed Date: Mar. 30, 2023, 18 pages. [cited by applicant]
Almani, Mohsen, “Office Action for U.S. Appl. No. 17/175,288”, Mailed Date: Sep. 14, 2023, 19 pages. [cited by applicant]
Almani, Mohsen, “Final Office Action for U.S. Appl. No. 17/175,288”, Mailed Date: Apr. 3, 2024, 21 pages. [cited by applicant]
Almani, Mohsen, “Notice of Allowance for U.S. Appl. No. 17/175,288”, Mailed Date: Sep. 10, 2024, 8 pages. [cited by applicant]
Cited By (1)
US 12,699,725