Progetto universitario · Schema matching e data integration
Due ospedali, un paziente, codici leggermente diversi.
Gli ospedali registrano le stesse informazioni in database diversi, con nomi di colonna diversi. Per unirli bisogna prima capire quale colonna dell'uno corrisponde a quale dell'altro: è lo schema matching. Un modo comune per farlo è guardare i valori: se due colonne contengono le stesse cose, probabilmente significano la stessa cosa.
Con i dati clinici è più difficile. Le diagnosi sono codici presi da enormi vocabolari medici, e gli errori di codifica reali raramente sono casuali. Qualcuno registra "insufficienza renale cronica, stadio 5" quando era stadio 4: un concetto vicino, non un refuso. Per un confronto esatto quei due codici sono diversi quanto "malattia renale" e "frattura del braccio".
Il progetto tratta il vocabolario per quello che è, una gerarchia: due codici sono simili se sono vicini nell'albero. Ho costruito un modo per generare errori realistici "di prossimità" su dati OMOP-CDM e un matcher che confronta i valori per significato e non per grafia, e ho misurato entrambi contro il confronto esatto sul framework di benchmark Valentine.
Il codice dietro →