Há um projeto paralelo no qual estou trabalhando, onde preciso estruturar uma solução para o seguinte problema.
Eu tenho dois grupos de pessoas (clientes). O grupo A
pretende comprar e o grupo B
pretende vender um determinado produto X
. O produto tem uma série de atributos x_i
, e meu objetivo é facilitar a transação entre A
e B
combinando suas preferências. A idéia principal é apontar para cada membro de A
um correspondente B
cujo produto se adapte melhor às suas necessidades e vice-versa.
Alguns aspectos complicadores do problema:
A lista de atributos não é finita. O comprador pode estar interessado em uma característica muito particular ou algum tipo de design, o que é raro entre a população e não posso prever. Não é possível listar todos os atributos anteriormente;
Os atributos podem ser contínuos, binários ou não quantificáveis (ex: preço, funcionalidade, design);
Alguma sugestão de como abordar esse problema e resolvê-lo de forma automatizada?
Também agradeceria algumas referências a outros problemas semelhantes, se possível.
Ótimas sugestões! Muitas semelhanças com a maneira como estou pensando em abordar o problema.
A principal questão no mapeamento dos atributos é que o nível de detalhe ao qual o produto deve ser descrito depende de cada comprador. Vamos dar um exemplo de um carro. O produto "carro" possui muitos atributos que variam de desempenho, estrutura mecânica, preço etc.
Suponha que eu só queira um carro barato ou um carro elétrico. Ok, é fácil mapear, porque eles representam os principais recursos deste produto. Mas digamos, por exemplo, que eu quero um carro com transmissão de dupla embreagem ou faróis de xenônio. Bem, pode haver muitos carros na base de dados com esses atributos, mas eu não pediria ao vendedor que preenchesse esse nível de detalhe do produto antes da informação de que há alguém procurando por eles. Tal procedimento exigiria que todo vendedor preencha um formulário complexo e muito detalhado, apenas tente vender seu carro na plataforma. Só não funcionaria.
Ainda assim, meu desafio é tentar ser o mais detalhado possível na busca para fazer uma boa correspondência. Então, a minha maneira de pensar é mapear os principais aspectos do produto, aqueles que provavelmente são relevantes para todos, para diminuir o grupo de possíveis vendedores.
O próximo passo seria uma "pesquisa refinada". Para evitar a criação de um formulário muito detalhado, eu poderia pedir aos compradores e vendedores que escrevessem um texto livre de suas especificações. E, em seguida, use algum algoritmo de correspondência de palavras para encontrar possíveis correspondências. Embora eu entenda que essa não é uma solução adequada para o problema, porque o vendedor não pode "adivinhar" o que o comprador precisa. Mas pode me aproximar.
Os critérios de ponderação sugeridos são ótimos. Permite-me quantificar o nível em que o vendedor corresponde às necessidades do comprador. A parte de dimensionamento pode ser um problema, porque a importância de cada atributo varia de cliente para cliente. Estou pensando em usar algum tipo de reconhecimento de padrão ou apenas pedir ao comprador para inserir o nível de importância de cada atributo.