IP Library Granted Patent US 12,400,076
Granted Patent B2
US 12,400,076 · App. 18/348,342 · Granted Aug 26, 2025

Using domain specific vocabularies to spellcheck input strings

Inventors: Scott Carrier (New Hill, NC); Brendan Bull (Durham, NC); Paul Lewis Felt (Springville, UT)
Assignee: International Business Machines Corporation
G06F40/232G06F21/316G06F40/169G06F40/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,400,076
App. No.
18/348,342
Granted
Aug 26, 2025
Kind
B2
Abstract

Provided are a computer program product, system, and method for using domain specific vocabularies to spellcheck input strings. A determination is made of a determining a domain specific vocabulary comprising domain specific tokens for a user. The input strings in the input text from the user are processed to determine whether the input strings match the domain specific tokens in the domain specific vocabulary. Indication is made that input strings that are determined to match the domain specific tokens in the domain specific vocabulary are not to be spellchecked by a global vocabulary available to users across domains.

Claims (52)

1. A computer program product for spell checking text, wherein the computer program product comprises a computer readable storage medium having computer readable program instructions executed by a processor to perform operations, the operations comprising:

spellchecking input strings in text with a domain specific vocabulary comprising domain specific tokens to output corrected input strings;

caching a pre-corrected input string before an input string is corrected by spellchecking to produce a corrected input string;

providing the pre-corrected input string to a domain specific natural language processor (NLP) annotator to process to produce output on the pre-corrected input string;

determining whether the domain specific NLP annotator outputted NLP annotations indicating the pre-corrected input string is correct within the domain specific vocabulary; and

replacing the corrected input string with the pre-corrected input string in spellchecked strings in response to determining that the domain specific NLP annotator outputted NLP annotations for the pre-corrected input string indicating the pre-corrected input string is correct.

2. The computer program product of claim 1 , wherein the replaced corrected input string is not provided to the domain specific NLP annotator for NLP processing.

3. The computer program product of claim 1 , wherein the operations further comprise:

retaining the corrected input string in the spellchecked strings in response to determining that the domain specific NLP annotator did not output meaningful NLP annotations for the pre-corrected input string.

4. The computer program product of claim 1 , wherein the operations further comprise:

determining whether the domain specific vocabulary is in a white box format or a black box format;

extracting the domain specific tokens from the domain specific vocabulary to use to spellcheck the input strings in response to determining that the domain specific vocabulary is in the white box format; and

in response to determining that the domain specific vocabulary is in the black box format, spellchecking the input strings using the domain specific vocabulary, wherein the operations of the caching the pre-corrected input string, providing the pre-corrected input string to the domain specific NLP annotator, the determining whether the domain specific NLP annotator outputted NLP annotations, the replacing the corrected input string, and the providing the pre-corrected input string to the domain specific NLP annotator are performed after the spellchecking using the domain specific vocabulary in the black box format.

5. The computer program product of claim 4 , wherein the domain specific vocabulary is in the white box format when the domain specific vocabulary is in a plain text format allowing the domain specific tokens to be extracted, and wherein the domain specific vocabulary is in the black box format when the domain specific vocabulary is in a binary format.

6. The computer program product of claim 1 , wherein the operations further comprise:

extracting the domain specific tokens from the domain specific vocabulary to use to spellcheck the input strings; and

wherein the operations of the caching the pre-corrected input string, the providing the pre-corrected input string to the domain specific NLP annotator, the determining whether the domain specific NLP annotator outputted NLP annotations, the replacing the corrected input string, and the providing the pre-corrected input string to the domain specific NLP annotator are performed after the spellchecking using the extracted domain specific tokens.

7. The computer program product of claim 1 , wherein the providing the pre-corrected input string to the domain specific NLP annotator to process comprises inputting the pre-corrected input string to a plurality of domain specific NLP annotators to produce output on the pre-corrected input string, wherein the corrected input string is replaced with the pre-corrected input string in spellchecked strings in response to determining that one of the domain specific NLP annotators outputted NLP annotations for the pre-corrected input string.

8. A system for spell checking text, comprising:

a processor, and

a computer readable storage medium having computer readable program instructions executed by the processor to perform operations, the operations comprising:

spellchecking input strings in text with a domain specific vocabulary comprising domain specific tokens to output corrected input strings;

caching a pre-corrected input string before an input string is corrected by spellchecking to produce a corrected input string;

providing the pre-corrected input string to a domain specific natural language processor (NLP) annotator to process to produce output on the pre-corrected input string;

determining whether the domain specific NLP annotator outputted NLP annotations indicating the pre-corrected input string is correct within the domain specific vocabulary; and

replacing the corrected input string with the pre-corrected input string in spellchecked strings in response to determining that the domain specific NLP annotator outputted NLP annotations for the pre-corrected input string indicating the pre-corrected input string is correct.

9. The system of claim 8 , wherein the operations further comprise:

retaining the corrected input string in the spellchecked strings in response to determining that the domain specific NLP annotator did not output meaningful NLP annotations for the pre-corrected input string.

10. The system of claim 8 , wherein the operations further comprise:

determining whether the domain specific vocabulary is in a white box format or a black box format;

extracting the domain specific tokens from the domain specific vocabulary to use to spellcheck the input strings in response to determining that the domain specific vocabulary is in the white box format; and

in response to determining that the domain specific vocabulary is in the black box format, spellchecking the input strings using the domain specific vocabulary, wherein the operations of the caching the pre-corrected input string, providing the pre-corrected input string to the domain specific NLP annotator, the determining whether the domain specific NLP annotator outputted NLP annotations, the replacing the corrected input string, and the providing the pre-corrected input string to the domain specific NLP annotator are performed after the spellchecking using the domain specific vocabulary in the black box format.

11. The system of claim 8 , wherein the operations further comprise:

extracting the domain specific tokens from the domain specific vocabulary to use to spellcheck the input strings; and

wherein the operations of the caching the pre-corrected input string, the providing the pre-corrected input string to the domain specific NLP annotator, the determining whether the domain specific NLP annotator outputted NLP annotations, the replacing the corrected input string, and the providing the pre-corrected input string to the domain specific NLP annotator are performed after the spellchecking using the extracted domain specific tokens.

12. The system of claim 8 , wherein the providing the pre-corrected input string to the domain specific NLP annotator to process comprises inputting the pre-corrected input string to a plurality of domain specific NLP annotators to produce output on the pre-corrected input string, wherein the corrected input string is replaced with the pre-corrected input string in spellchecked strings in response to determining that one of the domain specific NLP annotators outputted NLP annotations for the pre-corrected input string.

13. A computer implemented method for spell checking text, comprising:

spellchecking input strings in text with a domain specific vocabulary comprising domain specific tokens to output corrected input strings;

caching a pre-corrected input string before an input string is corrected by spellchecking to produce a corrected input string;

providing the pre-corrected input string to a domain specific natural language processor (NLP) annotator to process to produce output on the pre-corrected input string;

determining whether the domain specific NLP annotator outputted NLP annotations indicating the pre-corrected input string is correct within the domain specific vocabulary; and

replacing the corrected input string with the pre-corrected input string in spellchecked strings in response to determining that the domain specific NLP annotator outputted NLP annotations for the pre-corrected input string indicating the pre-corrected input string is correct.

14. The method of claim 13 , further comprising:

retaining the corrected input string in the spellchecked strings in response to determining that the domain specific NLP annotator did not output meaningful NLP annotations for the pre-corrected input string.

15. The method of claim 13 , further comprising:

determining whether the domain specific vocabulary is in a white box format or a black box format;

extracting the domain specific tokens from the domain specific vocabulary to use to spellcheck the input strings in response to determining that the domain specific vocabulary is in the white box format; and

in response to determining that the domain specific vocabulary is in the black box format, spellchecking the input strings using the domain specific vocabulary, wherein the caching the pre-corrected input string, the providing the pre-corrected input string to the domain specific NLP annotator, the determining whether the domain specific NLP annotator outputted NLP annotations, the replacing the corrected input string, and the providing the pre-corrected input string to the domain specific NLP annotator are performed after the spellchecking using the domain specific vocabulary in the black box format.

16. The method of claim 13 , further comprising:

extracting the domain specific tokens from the domain specific vocabulary to use to spellcheck the input strings; and

wherein the caching the pre-corrected input string, the providing the pre-corrected input string to the domain specific NLP annotator, the determining whether the domain specific NLP annotator outputted NLP annotations, the replacing the corrected input string, and the providing the pre-corrected input string to the domain specific NLP annotator are performed after the spellchecking using the extracted domain specific tokens.

17. The method of claim 13 , wherein the providing the pre-corrected input string to the domain specific NLP annotator to process comprises inputting the pre-corrected input string to a plurality of domain specific NLP annotators to produce output on the pre-corrected input string, wherein the corrected input string is replaced with the pre-corrected input string in spellchecked strings in response to determining that one of the domain specific NLP annotators outputted NLP annotations for the pre-corrected input string.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2023
From: CARRIER, SCOTT; BULL, BRENDAN; FELT, PAUL LEWIS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 064184/0882 →
Continuity (2)
Continuation 17182080 · Feb 22, 2021
Related Publication 20230351106A1 · Nov 2, 2023
References Cited (29)
US 7383172B1 · Jamieson · 2008 [cited by examiner]
US 8775931B2 · Fux et al. · 2014 [cited by applicant]
US 8881005B2 · Al Badrashiny et al. · 2014 [cited by applicant]
US 9529863B1 · Gindin et al. · 2016 [cited by applicant]
US 10803057B1 · Goodsitt et al. · 2020 [cited by applicant]
US 20070016625A1 · Berstis · 2007 [cited by applicant]
US 20100325539A1 · Nedzlek et al. · 2010 [cited by applicant]
US 20110106617A1 · Cooper et al. · 2011 [cited by applicant]
US 20120016678A1 · Gruber · 2012 [cited by examiner]
US 20150186355A1 · Baldwin et al. · 2015 [cited by applicant]
US 20160140439A1 · Adderly · 2016 [cited by examiner]
US 20170004204A1 · Bastide · 2017 [cited by examiner]
US 20170263248A1 · Gruber · 2017 [cited by examiner]
US 20190057306A1 · Xue · 2019 [cited by examiner]
US 20200020319A1 · Malhotra et al. · 2020 [cited by applicant]
US 20210074277A1 · Lewis · 2021 [cited by applicant]
US 20210142789A1 · Gurbani · 2021 [cited by examiner]
US 20210365630A1 · Itani · 2021 [cited by examiner]
US 20220035799A1 · Bhutada et al. · 2022 [cited by applicant]
US 20220215170A1 · Yang · 2022 [cited by examiner]
WO 2014182820A2 · 2014 [cited by applicant]
Gupta, P., “A Context Sensitive Real-Time Spell Checker with Language Adaptability”, arXiv:1910.11242v1, [cs.CL], Oct. 23, 2019, 7 pp. [cited by applicant]
U.S. Appl. No. 17/182,080, filed Sep. 3, 2021. [cited by applicant]
Office Action dated Aug. 23, 2022, 23 pp., for U.S. Appl. No. 17/182,080. [cited by applicant]
Amend dated Nov. 20, 2022, 16 pp., to Office Action for U.S. Appl. No. 17/182,080. [cited by applicant]
Final Office Action dated Mar. 6, 2023, 18 pp., for U.S. Appl. No. 17/182,080. [cited by applicant]
Amend dated May 9, 2023, 11 pp. to Final Office Action for U.S. Appl. No. 17/182,080. [cited by applicant]
Notice of Allowance dated May 30, 2023, 19 pp., for U.S. Appl. No. 17/182,080. [cited by applicant]
List of IBM Patents and Applications Treated as Related, dated Jul. 6, 2023, 2 pp. [cited by applicant]
Cited By (1)
US 12,499,248