Descrizione del problema
Sto lavorando a un progetto di rilevamento dei dati aziendali progettato per analizzare database per informazioni riservate. L'unità di ricerca di base è chiamata classificatore e comprende elementi come "Numero di previdenza sociale", "Cognome", "Licenza di autista", "Numero di carta di credito", ecc.
Attualmente, ogni classificatore è un elemento indipendente con il proprio modello di espressioni regolari, quindi una ricerca di "Patente di guida" produrrà corrispondenze per qualsiasi modello che corrisponde al formato ^ [AZ] \ d {3} - \ d {4} - \ d {4} $.
Vogliamo ridurre i falsi positivi da questo approccio sfruttando i dati dai classificatori correlati. Ad esempio, se il mio cognome e il numero della patente di guida appaiono nello stesso record, dovrei essere in grado di verificare che la prima lettera del mio cognome corrisponda al primo carattere del numero di licenza del conducente invece di fare affidamento solo sul modello regex.
Ecco un altro esempio: supponiamo di cercare "codici zip" su un database e una scansione contrassegna i seguenti record come corrispondenze:
FirstName LastName 123 Fake Street City, Illinois 61234
012345678 01234567 012345678 987654321 1234556 61234
Desidero assegnare una valutazione di fiducia più elevata alla prima corrispondenza, poiché si trova vicino a classificatori correlati come "Indirizzo" e "Stato", mentre la seconda corrispondenza è probabilmente un falso positivo da un flusso di cifre non correlate.
Che tipo di dominio problema è coinvolto qui e quali sono gli algoritmi esistenti? Ho esaminato articoli su linkage record, corrispondenza semantica, estrazione di informazioni e altre cose, ma non riesco a trovare una ricerca sull'esatta idea che sto spiegando.