Per ottenere un livello avanzato di personalizzazione, è possibile utilizzare l'API REST IBM Match 360 per configurare e ottimizzare l'algoritmo di corrispondenza.
Quando si utilizza l'API, è necessario distribuire esplicitamente l'algoritmo prima di eseguire i lavori corrispondenti. All'interno dell'API del microservizio api-model
, il metodo POST /mdm/v1/algorithms/{record_type}
genera un algoritmo di corrispondenza basato sui campi e gli attributi forniti.
È possibile personalizzare ulteriormente l'algoritmi di corrispondenza utilizzando il metodo PUT /mdm/v1/algorithms/{record_type}
, che consente di fornire un algoritmo di corrispondenza completamente definito nel payload del metodo.
Di seguito è riportato un payload di esempio per POST /mdm/v1/algorithms/{record_type}
che definisce la soglia di collegamento automatico e una serie di attributi e campi corrispondenti:
{"person_entity":{"auto_link_threshold":0.4,"matching_attributes":[{"attributes":["legal_name"]},{"attributes":["primary_residence"]}, {"attributes":["mobile_telephone"]},
{"attributes":["birth_date"]}, {"attributes":["gender"]}, {"attributes":["personal_email"]}]}}
Per ulteriori informazioni su IBM Match 360 REST API e sugli SDK corrispondenti, comprese le istruzioni per l'autenticazione e la documentazione completa di ciascun metodo, vedere il riferimentoIBM Match 360 API.
In questo argomento:
Configurazione di filtri di confronto multidimensionali
Perfezionare ulteriormente l'algoritmo di corrispondenza definendo filtri di confronto multidimensionali. I filtri multidimensionali possono confrontare gli attributi tra i record e regolare i punteggi e i pesi corrispondenti in base ai criteri definiti. I filtri di confronto multidimensionale possono ridurre la quantità di corrispondenze false positive o false negative nei risultati corrispondenti.
È inoltre possibile utilizzare filtri di confronto multidimensionali per includere le proprie regole di corrispondenza deterministiche che sovrascrivono i risultati di corrispondenza basati sull'apprendimento automatico.
Creazione di un filtro di confronto multidimensionale
Per generare un filtro di confronto multidimensionale nell'algoritmo di corrispondenza, aggiornare la configurazione del motore di corrispondenza utilizzando i comandi API REST:
Accedere e autenticarsi all'interfaccia API IBM Match 360 .
Specificare un payload
POST /mdm/v1/algorithms/{record_type}
che definisce un filtro, come nel seguente esempio:{"person_entity":{"auto_link_threshold":0.4,"matching_attributes":[{"attributes":["legal_name"], "post_filter_methods": ["false_positive_filter"]},{"attributes":["primary_residence"], "post_filter_methods": ["false_positive_filter"]}, {"attributes":["mobile_telephone"]}, {"attributes":["birth_date"], "post_filter_methods": ["false_positive_filter"]}, {"attributes":["gender"]}, {"attributes":["personal_email"]}]}}
Nel payload di esempio,
false_positive_filter
è il nome del filtro personalizzato. Si applica a ciascun attributo nel payload che include il nome del filtro.
Il payload API di esempio genererà un algoritmo contenente un false_positive_filter
in cui i pesi e le penalità sono il valore predefinito, che è 0.
Facoltativamente, puoi personalizzare i pesi e le penalità per soddisfare i requisiti della tua organizzazione e quindi distribuire il tuo algoritmo aggiornato utilizzando l'API PUT /mdm/v1/algorithms/{record_type}
.
Comprensione dei parametri che definiscono i filtri
Per comprendere i parametri di configurazione che definiscono i filtri di confronto multidimensionale, considerare l'esempio di false_positive_filter
creato nella sezione precedente.
Richiamare l'algoritmo corrente utilizzando il comando API GET /mdm/v1/algorithms/{record_type}
.
Dopo aver inoltrato la richiesta POST nella precedente sezione, con il payload di esempio corrispondente, è stata generata la seguente sezione nella configurazione dell'algoritmo:
{
"false_positive_filter": {
"filter_recipe": [
{
"method": "FilterMethod.MultiDimFilter",
"inputs": [1,2,3],
"label": "Multi-Dim filter",
"weights": [
{
"distances": [0,0],
"values": [0,0,0,0,0,0]
}
]
}
],
"inputs": [
{"compare_method": "address_compare"},
{"compare_method": "date_compare"},
{"compare_method": "pername_compare"}
],
"label": "false_positive_filter"
}
}
La sezione false_positive_filter
di esempio include i parametri standard che definiscono i filtri di confronto multidimensionale:
filter_recipe
- Questa sezione contiene un array di parametri che forniscono la ricetta necessaria per definire i pesi corrispondenti per ogni input.inputs
. La sezionefilter_recipe.inputs
contiene un indice degli input a cui si applica questa ricetta del filtro. Si tratta di valori numerici che corrispondono all'ordine dei metodi di confronto elencati nella sezioneinputs
. Ad esempio, nell'esempio,1
corrisponde al metodoaddress_compare
,2
corrisponde al metododate_compare
e3
corrisponde al metodopername_compare
.weights
- La sezioneweights
è un array di elementi che definiscono il modo in cui ciascun input viene pesato per il confronto tridimensionale. La sezioneweights
include le definizionidistances
evalues
per gli input. Il peso predefinito è0
per qualsiasi input non definito.
inputs
- Questa sezione contiene i metodi di confronto per gli attributi corrispondenti. Questi metodi utilizzeranno le distanze e i pesi definiti nella sezionefilter_recipe
.max_distance
- Facoltativo (non visualizzato). Questo parametro definisce la distanza massima. La distanza massima predefinita è 5, che indica che il parametrofilter_recipe.weights.values
può includere 6 elementi ("values":[0,1,2,3,4,5]
).
Configurazione di filtri personalizzati
Per personalizzare i metodi di confronto esistenti da utilizzare con un filtro di confronto multidimensionale:
Richiamare l'algoritmo corrente:
GET /mdm/v1/algorithms/{record_type}
Aggiornare l'algoritmo come necessario. Ad esempio, puoi:
- Aggiungere o aggiornare gli elementi nella sezione
weights
per personalizzare i pesi per gli input elencati. - Definire la distanza massima aggiungendo un parametro
max_distance
. - Aggiungere metodi di confronto come input che utilizzeranno questo filtro invece dei pesi corrispondenti predefiniti.
- Aggiungere o aggiornare gli elementi nella sezione
Sovrascrivere l'algoritmo di corrispondenza con la versione aggiornata:
PUT /mdm/v1/algorithms/{record_type}
Esempio 1: utilizzare il seguente payload di esempio se si desidera impostare la distanza massima su 9 e specificare pesi e penalità personalizzati per diverse combinazioni di input e distanze come segue: -input1 distance=0, input2 distance=0, input3 distance = [ 0,1,3,4,5,6,7,8, 9]. In questo caso, la combinazione di distanza [ 0,0, 3] fornisce un punteggio di 15.
- input1 distance=1, input2 distance=0, input3 distance = [ 0,1,3,4,5,6,7,8, 9]. In questo caso, la combinazione di distanza [ 1,0, 9] dà un punteggio penalizzato di -30.
{
"false_positive_filter": {
"filter_recipe": [
{
"method": "FilterMethod.MultiDimFilter",
"max_distance": 9,
"inputs": [1,2,3],
"label": "Multi-Dim filter",
"weights": [
{
"distances": [0,0],
"values": [0,-5,-10,-15,-20,-25,-30,-30,-30,-30]
},
{
"distances": [1,0],
"values": [0,-5,-10,-15,-20,-25,-30,-30,-30,-30]
}
]
}
],
"inputs": [
{"compare_method": "address_compare"},
{"compare_method": "date_compare"},
{"compare_method": "pername_compare"}
],
"label": "false_positive_filter"
}
}
Esempio 2: è possibile aggiungere i propri metodi di confronto personalizzati e configurarli in modo che siano esclusi dal contributo al punteggio di corrispondenza generale, come nel seguente payload di esempio. In questo caso, i metodi personalizzati vengono utilizzati solo dal filtro di confronto multidimensionale.
Nel seguente esempio, il filtro given_name_only_compare
imposta overall_score_contribution
su false
.
{
"given_name_only_compare": {
"methods": [
{
"inputs": [
{
"attributes": [
"legal_name"
],
"fields": [
"given_name"
]
}
],
"compare_recipe": [
{
"comparison_resource": "person_person_entity_person_compare_spec_name",
"method": "CompareMethod.NameCompare",
"inputs": [
1
],
"label": "Given Name Only Match",
"fields": [
"given_name"
]
}
]
}
],
"overall_score_contribution" : false,
"label": "Given Name Only Compare",
"weights": [1,0,0,0,0,0,0,0,0,0,0]
}
}
Commutazione della funzione di modifica della distanza
Il motore di corrispondenza IBM Match 360 calcola la distanza di modifica come una delle funzioni interne durante il confronto e la corrispondenza di vari attributi. La distanza di modifica è una misurazione del modo in cui due stringhe sono diverse l'una dall'altra. Viene calcolato contando il numero di modifiche richieste per trasformare una stringa in un'altra.
È possibile scegliere tra la funzione di modifica della distanza standard o una funzione specializzata. La distanza di modifica standard è la configurazione predefinita per garantire prestazioni più veloci durante la corrispondenza. Per ulteriori informazioni sulla distanza di modifica, consultare IBM Match 360 algoritmi di corrispondenza.
Per modificare la funzione di modifica della distanza attiva, aggiornare la configurazione del motore corrispondente utilizzando i comandi API REST:
Accedere e autenticarsi all'interfaccia API IBM Match 360 .
Richiamare il file JSON di configurazione esistente per la funzione di confronto,
compare_spec_resource
:GET /mdm/v1/compare_spec_resources/{resource_name}
Sulla tua macchina locale, modifica il JSON per aggiungere la linea
"similar_characters_enabled": true
(o rimuoverla se vuoi tornare all'impostazione di modifica della distanza predefinita).Aggiorna la configurazione di IBM Match 360 caricando il tuo JSON modificato:
PUT /mdm/v1/compare_spec_resources/{resource_name}
Configurazione di una soglia di record glue
È possibile definire una soglia di record di incollatura utilizzando i comandi API per aggiornare l'algoritmo di corrispondenza IBM Match 360 .
Quando IBM Match 360 forma le entità tramite la corrispondenza, alcuni record di bassa qualità possono agire come record colla. I dischi di colla hanno il loro nome perché si attaccano a molti altri dischi come la colla. Poiché i record di incollaggio includono pochi o nessun valore di attributo dettagliato, possono sembrare corrispondenti a molti record differenti. Il comportamento di corrispondenza di un record di colla può creare inavvertitamente e in modo non corretto entità molto grandi che hanno in comune solo un record di colla di bassa qualità.
Come esempio semplificato, si consideri un record di bassa qualità che non ha attributi diversi da un nome, ad esempio "John Smith". Un record come questo può facilmente corrispondere a qualsiasi altro "John Smith" nel dataset, causando l'inclusione di altri record che altrimenti non sarebbero associati in una singola entità "John Smith".
Impostando una soglia di record di colla nell'algoritmo di corrispondenza per ogni tipo di entità, i data engineer possono evitare che i record di colla causino la formazione di entità grandi e scarsamente corrispondenti.
Quando viene configurata una soglia di record di incollatura, IBM Match 360 identifica i record di incollatura utilizzando il relativo punteggio di corrispondenza automatica. Un punteggio di corrispondenza automatica è il punteggio di corrispondenza ottenuto confrontando un record con se stesso. Un punteggio di corrispondenza automatica elevato indica che il record ha un buon numero di attributi di corrispondenza di alta qualità.
IBM Match 360 identifica i record di colla controllando se il loro punteggio di corrispondenza automatica più il valore della soglia del record di colla è inferiore al punteggio di corrispondenza automatica del record centrale nell'entità. Se è minore, il record viene considerato un record di colla e non verrà incluso nell'entità.
Le soglie del record Glue sono facoltative e non sono impostate per impostazione predefinita. La soglia del record di incollatura di ciascun tipo di entità deve essere definita separatamente.
Per impostare una soglia di record di incollatura:
Accedere e autenticarsi all'interfaccia API IBM Match 360 .
Richiamare il file JSON dell'algoritmo di corrispondenza della configurazione esistente per il tipo di record fornito:
GET /mdm/v1/algorithms/{record_type}
Sulla tua macchina locale, modifica il JSON per aggiungere il parametro
glue_threshold
sotto il tipo di entità appropriato. Fornire un valore di soglia numerico. (Eliminare il parametro se si desidera rimuovere una soglia di record glue esistente.) Ad esempio:locale: {...} encryption: {...} standardizers: {...} entity_types: person_entity: bucket_generators: {...} auto_link_threshold: 65 clerical_review_threshold: 55 glue_threshold: 20 compare_methods: {...}
Aggiornare l'algoritmo di corrispondenza IBM Match 360 :
PUT /mdm/v1/algorithms/{record_type}
Configurazione delle soglie di corrispondenza specifiche dell'origine
Gli ingegneri dei dati possono definire le soglie di revisione di base e le soglie di collegamento automatico all'interno dell'algoritmo di corrispondenza che sono specifiche di varie fonti di record. Ciò consente alla propria organizzazione di gestire la corrispondenza in modo diverso a seconda di quanto è attendibile l'origine.
La propria organizzazione potrebbe avere record provenienti da origini differenti che utilizzano attributi differenti e hanno livelli di qualità diversi. Configurando le soglie di corrispondenza a livello di origine record, è possibile pesare i dati provenienti da origini attendibili in modo più pesante rispetto ai dati provenienti da origini meno attendibili o anche escludere alcune origini dalla partecipazione alla corrispondenza. Le origini escluse dalla corrispondenza possono essere ancora utilizzate come origini di riferimento nel sistema.
Le soglie a livello di origine sono facoltative e non sono impostate per impostazione predefinita.
Le soglie a livello di origine devono essere definite separatamente per ogni tipo di entità nel modello dati. Come promemoria, ogni tipo di entità ha la propria definizione di algoritmo corrispondente.
Per impostare le soglie di corrispondenza a livello di origine:
Accedi e autentica all'interfaccia API IBM Match 360 .
Richiamare il file di configurazione dell'algoritmo di corrispondenza esistente (in formato JSON) per il tipo di entità che si desidera configurare.
GET /v1/algorithms/{record_type}
Sulla tua macchina locale, modifica il JSON per aggiungere l'oggetto
source_level_thresholds
sotto il tipo di entità appropriato (comeperson_entity
). Ad esempio:"person_entity":{ "auto_link_threshold":150, "clerical_review_threshold":120, "source_level_thresholds": { "src0": { "default":[165, 150], “srcxsrc” : { "src0": [null, null], "src1": [160, 130], "src2": [123, 111], "src3": [null, null] } }, "src1": { “srcxsrc” : { "src1": [160, 130], "src2": [123, 111], "src3": [136, 120], "src4": [120, null] } } } }
Per ulteriori informazioni su questo esempio e su come definire l'oggetto JSON della soglia del livello di origine, vedi Oggetto JSON di esempio che definisce le soglie del livello di origine.
Aggiornare l'algoritmo di corrispondenza IBM Match 360 :
PUT /v1/algorithms/{record_type}
Per ulteriori informazioni sulle soglie del livello di origine, consultare le sezioni secondarie riportate di seguito:
- Oggetto JSON di esempio per soglie a livello di origine
- Valutazione dei risultati della soglia a livello di origine
- Soglie di livello origine e revisioni di coppie
Oggetto JSON di esempio per le soglie a livello di origine
Nel seguente esempio JSON, puoi visualizzare un frammenti del file di configurazione dell'algoritmo corrispondente che definisce le soglie del livello di origine per l'entità Person.
"person_entity":{
"auto_link_threshold":150,
"clerical_review_threshold":120,
"source_level_thresholds": {
"src0": {
"default":[165, 150],
“srcxsrc” : {
"src0": [null, null],
"src1": [160, 130],
"src2": [123, 111],
"src3": [null, null]
}
},
"src1": {
“srcxsrc” : {
"src1": [160, 130],
"src2": [123, 111],
"src3": [136, 120],
"src4": [120, null]
}
}
}
}
Nell'esempio precedente:
- La soglia di collegamento automatico globale predefinita è 150.
- La soglia di revisione di base globale predefinita è 120.
- src0, src1, src2, src3e src4 sono esempi di nomi origine.
- All'interno dell'oggetto
source_level_thresholds
, le soglie origine per origine sono definite per due origini: src0 e src1.
Guida generale:
- In ogni origine nell'oggetto
source_level_thresholds
, è possibile sovrascrivere le soglie di corrispondenza globali predefinite per tale origine utilizzando il parametrodefault
. - In ciascuna origine, è possibile definire un array di soglie di corrispondenza origine - origine nella proprietà
srcxsrc
. Queste soglie sono utilizzate quando si confrontano i record dalle origini elencate. - All'interno dell'array, i valori forniti tra parentesi quadre sono nel seguente formato:
[autolink-threshold, clerical-threshold]
. Quindi,[136, 120]
indica che per il confronto origine - origine fornito, la soglia di collegamento automatico è 136 e la soglia di revisione di base è 120. - Quando vengono forniti entrambi i valori, la soglia di collegamento automatico deve essere sempre superiore alla soglia di revisione di base.
- Se un valore viene fornito come
null
, tale soglia è disabilitata. - Se entrambi i valori in una coppia sono forniti come
null
, la corrispondenza e il collegamento tra le due origini sono disabilitati. - Quando entrambi i valori sono
null
e le due origini fornite sono uguali, l'origine viene considerata solo origine di riferimento . Ad esempio,src0
è l'origine di riferimento persrc0
nel JSON di esempio precedente. Qualsiasi entità che dispone solo di record provenienti da origini di riferimento non è utilizzabile.
Valutazione dei risultati della soglia a livello di origine
Se hai configurato le soglie del livello di origine nel tuo algoritmo di corrispondenza personalizzato, utilizza il seguente metodo API REST per ottenere i dettagli del punteggio.
POST /v1/compare/?details=debug&crn={CRN}&entity_type={entity_type}&record_type={record_type}
Utilizzare le informazioni restituite da questo metodo per valutare i risultati e, se necessario, ottimizzare la configurazione della soglia del livello di origine.
Soglie a livello di origine e revisioni di coppie
Le soglie a livello di origine possono essere sovrascritte se si accettano i suggerimenti di ottimizzazione generati dalle revisioni delle coppie. Se la propria organizzazione utilizza o intende utilizzare la funzionalità di revisione della coppia IBM Match 360 per generare suggerimenti per l'ottimizzazione intelligente, è preferibile completare le attività di revisione della coppia prima di definire le soglie del livello di origine.
Se sono già state definite soglie del livello di origine negli algoritmi di corrispondenza personalizzati, disabilitare la funzione di soglia del livello di origine modificando IBM Match 360 CR (mdm-cr
). Utilizzare il seguente comando per disabilitare le soglie del livello di origine nella CR:
oc patch mdm mdm-cr --type=merge -p '{"spec": {"mdm_matching": {"features": {"source_level_thresholds": {"enabled": false}}}}}'
Dopo aver effettuato una modifica, la CR può impiegare 20-30 minuti per riconciliarsi. Anche i pod del servizio mdm-matching
devono essere riavviati per applicare la configurazione aggiornata. Se necessario, questi pod devono essere riavviati manualmente.
Per riabilitare le soglie del livello di origine, eseguire il seguente comando:
oc patch mdm mdm-cr --type=merge -p '{"spec": {"mdm_matching": {"features": {"source_level_thresholds": {"enabled": true}}}}}'
Passi successivi
Ulteriori informazioni
- IBM Match 360 with Watson algoritmi di corrispondenza
- Servizi API disponibili in IBM Match 360
- Esplorazione dei dati master
- configurazione dei dati master
- Gestione dei dati master
Argomento principale Personalizzazione e rafforzamento dell'algoritmo di corrispondenza