Mi trovo in una situazione in cui devo programmare un servizio che può determinare se due oggetti in un enorme database sono gli stessi. Per semplicità, diciamo che sono auto usate e voglio determinare se sono esattamente le stesse, in base a vari attributi, ad es. marca, nome del modello, anno, milage, prezzo, colore ecc. Il problema è che alcuni degli attributi sono significativamente più significativi / critici / importanti di altri, ad es. il nome del marchio / modello deve essere lo stesso, in cui il venditore potrebbe aver erroneamente inserito la milage in modo leggermente diverso. Inoltre, alcune volte informazioni come il colore potrebbero anche essere state lasciate fuori, e quindi devo ricorrere a meno informazioni "identificative univoche" come per esempio la dimensione del motore. A prescindere dal peso / importanza diretti di ciascun attributo, è implicata un'altra dimensione di complessità: l'importanza degli attributi varia tra loro. Quindi diciamo per es. che l'auto che sto confrontando con il resto è molto vecchia, poi all'improvviso l'importanza della miliardaria aumenta di per sé poiché è molto più probabile che sia unica tra le auto simili, rispetto a una macchina più giovane. Ciò è ovviamente dovuto al fatto che la dispersione della milage sulle auto più vecchie è molto più ampia di quella delle auto più giovani.
Come puoi immaginare, modellare questo come un sacco di termini se e poi annidati finisce facilmente in un disordine completo, e completamente illeggibile in seguito, e persino difficile da modellare in primo luogo.
Quindi le mie domande sono:
Che cosa potrebbe essere chiamato questo tipo di problema nella programmazione e come affrontarlo? Quali soluzioni / algoritmi potrebbero essere buone soluzioni? Riferimenti, collegamenti? Buona lettura sull'argomento?