C'è questo progetto laterale a cui sto lavorando dove devo strutturare una soluzione al seguente problema.
Ho due gruppi di persone (clienti). Il gruppo A
intende acquistare e il gruppo B
intende vendere un determinato prodotto X
. Il prodotto ha una serie di attributi x_i
e il mio obiettivo è facilitare la transazione tra A
e B
abbinando le loro preferenze. L'idea principale è quella di indicare a ciascun membro A
un corrispondente nel B
cui prodotto si adatta meglio alle sue esigenze, e viceversa.
Alcuni aspetti complicati del problema:
L'elenco degli attributi non è finito. L'acquirente potrebbe essere interessato a una caratteristica molto particolare o ad un tipo di design, che è raro tra la popolazione e non posso prevederlo. Non è stato possibile elencare in precedenza tutti gli attributi;
Gli attributi possono essere continui, binari o non quantificabili (es: prezzo, funzionalità, design);
Qualche suggerimento su come affrontare questo problema e risolverlo in modo automatizzato?
Gradirei anche alcuni riferimenti ad altri problemi simili, se possibile.
Ottimi suggerimenti! Molte somiglianze con il modo in cui sto pensando di affrontare il problema.
Il problema principale sulla mappatura degli attributi è che il livello di dettaglio a cui il prodotto deve essere descritto dipende da ciascun acquirente. Facciamo un esempio di un'auto. Il prodotto "auto" ha un sacco di attributi che vanno dalle sue prestazioni, struttura meccanica, prezzo ecc.
Supponiamo che io voglia solo un'auto economica o un'auto elettrica. Ok, è facile da mappare perché rappresentano le caratteristiche principali di questo prodotto. Ma diciamo, ad esempio, che voglio un'auto con trasmissione Dual-Clutch o fari allo xeno. Bene, ci potrebbero essere molte auto nella base di dati con questi attributi, ma non chiederei al venditore di inserire questo livello di dettaglio del loro prodotto prima che ci sia qualcuno che li sta cercando. Tale procedura richiederebbe ad ogni venditore di compilare un modulo complesso, molto dettagliato, solo per provare a vendere la sua auto sulla piattaforma. Non funzionerebbe.
Tuttavia, la mia sfida è cercare di essere il più dettagliato possibile nella ricerca per fare una buona partita. Quindi il modo in cui sto pensando è mappare gli aspetti principali del prodotto, quelli che sono probabilmente rilevanti per tutti, per restringere il gruppo di potenziali venditori.
Il prossimo passo sarebbe una "ricerca raffinata". Per evitare di creare un modulo troppo dettagliato, potrei chiedere ad acquirenti e venditori di scrivere un testo libero delle loro specifiche. Quindi utilizza un algoritmo di corrispondenza delle parole per trovare possibili corrispondenze. Anche se capisco che questa non è una soluzione adeguata al problema perché il venditore non può "indovinare" ciò di cui l'acquirente ha bisogno. Ma potrebbe avvicinarmi.
I criteri di ponderazione suggeriti sono ottimi. Mi consente di quantificare il livello al quale il venditore soddisfa le esigenze dell'acquirente. La parte di ridimensionamento potrebbe essere un problema, poiché l'importanza di ciascun attributo varia da client a client. Sto pensando di utilizzare un qualche tipo di riconoscimento del modello o semplicemente chiedere al compratore di inserire il livello di importanza di ciascun attributo.