IP Library › Granted Patent US 12,222,911
Granted Patent B1
US 12,222,911 · App. 18/374,131 · Granted Feb 11, 2025

String data error detection and repair

Inventors: Mukul Singh (Delhi, IN); José Pablo Cambronero Sánchez (New Haven, CT); Sumit Gulwani (Sammamish, WA); Vu Minh Le (Redmond, WA); Carina Suzana Negreanu (Cambridge, GB); Gust Ben Anneloes Verbruggen (Keerbergen, BE)
Assignee: Microsoft Technology Licensing, LLC
G06F16/215G06F16/2365G06F40/18G06F40/30G06N3/0455
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,222,911
App. No.
18/374,131
Granted
Feb 11, 2025
Kind
B1
Abstract

Some embodiments perform fully unsupervised string error detection and repair, for strings containing both syntactic errors and semantic errors. In some embodiments, string error mitigation includes learning a regular-expression-based pattern that characterizes at least a predefined fraction of a set of string data values, identifying and masking a semantic substring, deriving edits to repair a string which contains the semantic substring, and replacing a mask value with a replacement substring that conforms to the pattern. Some embodiments utilize a language model. Some embodiments include or utilize a pattern learner, one or more learned significant patterns, and a repair engine. Some embodiments exploit program execution information to generate patterns when significant patterns are not initially found.

Claims (45)

1. A string error mitigation method performed by a computing system, the method comprising:

learning a regular-expression-based pattern that characterizes at least a predefined fraction of a set of string data values, the learning comprising utilizing an inductive synthesis framework;

identifying, and masking out with a mask value, a substring based on a predefined set of semantic data types;

deriving one or more edits to repair a string which contains the mask value, the deriving comprising extracting a minimal sequence of edits through dynamic programming; and

replacing the mask value by a replacement substring which conforms to the regular-expression-based pattern.

2. The method of claim 1 , wherein the method performs fully unsupervised error detection on the set of string data values, and the method performs fully unsupervised error correction on the set of string data values.

3. The method of claim 1 , wherein the method comprises:

getting program execution information of a program which lists a string as an input to the program; and

exploiting at least a portion of the program execution information for error detection or error correction or both.

4. The method of claim 1 , wherein a full performance of the method is performed without reliance during the full performance on any user interaction during the full performance as a source of: a constraint, an example, or an annotation.

5. The method of claim 1 , wherein the method comprises learning a relationship between a non-error value and a significant pattern, and using the relationship as a constraint when predicting a concrete value in the repaired string.

6. The method of claim 1 , wherein the method comprises ranking a set of candidate repairs.

7. The method of claim 1 , wherein the method comprises exploiting outcome information from execution of a string dataset transformation program which received at least part of the set of string data values as input, the exploiting comprising:

learning at least one non-negative-outcome-based pattern which is based solely on string data values which are not associated with any negative outcome from execution of the string dataset transformation program; and

utilizing a learned non-negative-outcome-based pattern to perform string repair.

8. The method of claim 1 , wherein the method comprises submitting a set of one or more prompts to a language model, the set of one or more prompts comprising:

an identification of a semantic type in string data as being a sematic type;

an example with a non-masked example data portion and a corresponding masked example data portion; and

an inference request with a non-masked inference data portion and a request for a corresponding masked inference data portion.

9. The method of claim 1 , wherein the method is further characterized in at least one of the following ways:

the regular-expression-based pattern characterizes at least half of the set of string data values; or

the method comprises modifying a threshold which specifies the predefined fraction of the set of string data values.

10. The method of claim 1 , wherein deriving one or more edits to repair a string which contains the mask value comprises receiving from a language model at least of: a spelling correction, or a correction which changes a semantic type of a corrected substring.

11. The method of claim 1 , wherein the method comprises prompting a language module with a unitary prompt that includes multiple string data values of the set of string data values together in the unitary prompt.

12. The method of claim 1 , wherein the method comprises converting the regular-expression-based pattern into a non-deterministic finite state automaton, forming a directed acyclic graph, and utilizing the directed acyclic graph for calculating an edit cost of a candidate repair of a string data value of the set of string data values.

13. A string error mitigation computing system, comprising:

a digital memory;

a processor set comprising at least one processor, the processor set in operable communication with the digital memory;

a pattern learner interface which upon execution by the processor set sends a set of string data values to a pattern learner, and receives a set of one or more significant patterns from the pattern learner, the set of significant patterns including a set of one or more regular expressions which collectively match a predefined fraction of the string data values, and which also collectively define at least one outlier string data value; and

a repair engine interface which upon execution by the processor set sends a repair engine at least one significant pattern and at least one outlier string data value, and receives at least one edit program from the repair engine which upon edit program performance edits the outlier string data value to produce an edited outlier string data value which conforms to at least one significant pattern.

14. The system of claim 13 , wherein the pattern learner comprises a language model interface which upon execution by the processor set accesses a language model, the set of significant patterns is learned by the language model, and at least one significant pattern includes a masked substring which is based on a semantic data type.

15. The system of claim 13 , further comprising a ranker which upon execution by the processor set ranks candidate edit programs based on at least respective edit costs of the edit programs.

16. The system of claim 13 , wherein the system comprises:

a cost matrix which represents edit costs of a candidate edit program; and

a move matrix which represents edit actions of the candidate edit program.

17. The system of claim 13 , further comprising a string data transformation program analyzer, which upon execution by the processor set analyzes actual execution outcomes or simulated execution of a string dataset transformation program, or both, and wherein the system utilizes a result of executing the transformation program analyzer as a basis of learning at least one significant pattern.

18. A computer-readable storage device configured with data and instructions which upon execution by a processor cause a computing system to perform a string error mitigation method, the string error mitigation method comprising:

an AI-based regular expression learner means learning a regular-expression-based pattern that characterizes at least a predefined fraction of a set of string data values;

an AI-based semantic substring masker means identifying, and masking out with a mask value, a substring based on a predefined set of semantic data types;

the AI-based regular expression learner means treating the mask value as a placeholder character;

an edit deriver means of the computing system deriving one or more edits to repair a string which contains the mask value;

an AI-based value predictor means predicting a replacement substring; and

the computing system replacing the mask value by the replacement substring.

19. The computer-readable storage device of claim 18 , wherein the method comprises executing a string dataset transformation program on string data values, thereby producing execution outcomes, and learning at least one regular-expression-based pattern based solely on string data values which are not associated with any negative execution outcome.

20. The computer-readable storage device of claim 18 , wherein the method comprises detecting and repairing syntactic errors and semantic errors in the string data values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2023
From: SINGH, MUKUL; CAMBRONERO SÁNCHEZ, JOSÉ PABLO; GULWANI, SUMIT; LE, VU MINH; NEGREANU, CARINA SUZANA; VERBRUGGEN, GUST BEN ANNELOES
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065092/0628 →
References Cited (34)
US 11568423B2 · Miller · 2023 [cited by examiner]
US 20040002994A1 · Brill · 2004 [cited by examiner]
US 20070016616A1 · Brill · 2007 [cited by examiner]
US 20220215948A1 · Bardot · 2022 [cited by examiner]
Singh, et al., “DataVinci: Learning Syntactic and Semantic String Repairs”, arXiv:2308.10922v1 [cs.DB] Aug. 21, 2023, 13 pages. [cited by applicant]
“Data Cleansing Tool”, retrieved from << https://docs.trifacta.com/display/AAC/Data+Cleansing+Tool >>, no later than Aug. 23, 2023, 3 pages. [cited by applicant]
Hiba Abu Ahmad, Hongzhi Wang, “Automatic Weighted Matching Rectifying Rule Discovery for Data Repairing”, retrieved from << https://arxiv.org/abs/1909.09807 >>, Sep. 21, 2019, 24 pages. [cited by applicant]
Tom B. Brown, et al., “Language Models are Few-Shot Learners”, retrieved from << https://proceedings.neurips.cc/paper/2020/file/1457c0d6bfcb4967418bfb8ac142f64a-Paper.pdf >>, no later than Dec. 31, 2020, 25 pages. [cited by applicant]
Chen, et al., “Data Extraction via Semantic Regular Expression Synthesis”, retrieved from << https://arxiv.org/pdf/2305.10401.pdf >>, Aug. 24, 2023, 42 pages. [cited by applicant]
Chu, et al., “Data Cleaning: Overview and Emerging Challenges”, retrieved from << https://dl.acm.org/doi/pdf/10.1145/2882903.2912574 >>, Jun. 26-Jul. 1, 2016, 6 pages. [cited by applicant]
Alireza Heidari, et al., “HoloDetect: Few-Shot Learning for Error Detection”, retrieved from << https://arxiv.org/abs/1904.02285 >>, Apr. 4, 2019, 18 pages. [cited by applicant]
Huang, et al., “Auto-Detect: Data-Driven Error Detection in Tables”, retrieved from << https://dl.acm.org/doi/10.1145/3183713.3196889 >>, Jun. 10-15, 2018, 16 pages. [cited by applicant]
Madelon Hulsebos, et al., “Sherlock: A Deep Learning Approach to Semantic Data Type Detection”, retrieved from << https://vis.csail.mit.edu/pubs/sherlock.pdf >>, Aug. 4-8, 2019, 9 pages. [cited by applicant]
Krishnan, et al., “ActiveClean: interactive data cleaning for statistical modeling”, retrieved from << https://dl.acm.org/doi/10.14778/2994509.2994514 >>, no later than Dec. 31, 2016, 12 pages. [cited by applicant]
Mohammad Mahdavi, et al., “Baran: Effective Error Correction via a Unified Context Representation and Transfer Learning”, retrieved from << http://www.vldb.org/pvldb/vol13/p1948-mahdavi.pdf >>, no later than Dec. 31, 20… [cited by applicant]
Mohammad Mahdavi, et al., “Semi-Supervised Data Cleaning with Raha and Baran”, retrieved from << https://www.cidrdb.org/cidr2021/papers/cidr2021_paper14.pdf >>, Jan. 10-13, 2021, 7 pages. [cited by applicant]
Mohammad Mahdavi, et al., “Raha: A Configuration-Free Error Detection System”, retrieved from << https://dspace.mit.edu/bitstream/handle/1721.1/137524/raha.pdf?sequence=2&isAllowed=y >>, Jun. 30-Jul. 5, 2019, 19 pages. [cited by applicant]
“Clean, transform, and load data in Power BI”, retrieved from << https://learn.microsoft.com/en-us/training/modules/clean-data-power-bi/ >>, no later than Aug. 23, 2023, 2 pages. [cited by applicant]
Avanika Narayan, et al., “Can Foundation Models Wrangle Your Data?”, retrieved from << https://arxiv.org/abs/2205.09911 >>, Dec. 24, 2022, 12 pages. [cited by applicant]
Saswat Padhi, et al., “FlashProfile: A Framework for Synthesizing Data Profiles”, retrieved from << https://arxiv.org/abs/1709.05725 >>, Apr. 16, 2019, 28 pages. [cited by applicant]
Qahtan, et al., “Pattern functional dependencies for data cleaning”, retrieved from << https://dspace.mit.edu/handle/1721.1/133951.2 >>, no later than Dec. 31, 2020, 14 pages. [cited by applicant]
Colin Raffel, et al., “Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer”, retrieved from << https://jmlr.org/papers/v21/20-074.html >>, no later than Dec. 31, 2020, 67 pages. [cited by applicant]
Vijayshankar Raman and Joseph M. Hellerstein, “Potter's Wheel: An Interactive Data Cleaning System”, retrieved from << http://control.cs.berkeley.edu/pwheel-vldb.pdf >>, no later than Dec. 31, 2001, 10 pages. [cited by applicant]
Rekatsinas, et al., “HoloClean: holistic data repairs with probabilistic inference”, retrieved from << https://dl.acm.org/doi/10.14778/3137628.3137631 >>, Aug. 1, 2017, 12 pages. [cited by applicant]
Ristad, et al., “Learning string-edit distance”, retrieved from << http://pnylab.com/papers/sed/sed.pdf >>, no later than Oct. 31, 1997, 34 pages. [cited by applicant]
Singh, et al., “CORNET: Learning Table Formatting Rules by Example”, retrieved from << https://arxiv.org/abs/2208.06032 >>, Dec. 5, 2022, 14 pages. [cited by applicant]
Michael Sipser, “Introduction to the Theory of Computation”, retrieved from << https://dl.acm.org/doi/10.1145/230514.571645 >>, no later than Mar. 31, 1996, 3 pages. [cited by applicant]
“Minimum Edit Distance”, retrieved from << https://web.stanford.edu/class/cs124/lec/med.pdf >>, no later than Dec. 31, 2016, 52 pages. [cited by applicant]
Ashish Vaswani, et al., “Attention Is All You Need”, retrieved from << https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf >>, no later than Dec. 31, 2017, 11 pages. [cited by applicant]
Gust Verbruggen, et al., “Semantic programming by example with pre-trained models”, retrieved from << https://dl.acm.org/doi/10.1145/3485477 >>, Oct. 15, 2021, 25 pages. [cited by applicant]
Wang, et al., “Uni-Detect: A Unified Approach to Automated Error Detection in Tables”, retrieved from << https://dl.acm.org/doi/10.1145/3299869.3319855 >>, Jun. 25, 2019, 18 pages. [cited by applicant]
Wang, et al., “CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and Generation”, retrieved from << https://aclanthology.org/2021.emnlp-main.685/ >>, no later than Nov. 30, 2021,… [cited by applicant]
Martin Breitbach, et al., “DataVinci: Proactive Data Placement for Ad-Hoc Computing”, retrieved from << https://store.computer.org/csdl/proceedings-article/ipdpsw/2021/357700a866/1uHgNOzyiDC >>, no later than Dec. 31, 2… [cited by applicant]
“Analyze Data in Excel”, retrieved from << https://support.microsoft.com/en-us/office/analyze-data-in-excel-3223aab8- 1543-4fda-85ed-76bb0295ffc4 >>, no later than Sep. 27, 2023, 6 pages. [cited by applicant]
Cited By (1)
US 12,688,033