web-dev-qa-db-fra.com

Meilleur ordre heuristique pour filtrer les résultats de recherche de suggestions de cadeaux

J'ai créé un site Web de cadeaux où je veux que les utilisateurs trouvent des suggestions de cadeaux basées sur une série de questions. Pour afficher les questions et les résultats de la recherche, j'ai deux panneaux à l'écran:

Panel 1: Critères de recherche (nombre de questions sur le curseur rotatif) avec un Find More bouton. Au départ, je ne montre que 2 questions/diapositive. Lorsque l'utilisateur frappe Find More d'autres questions seront affichées dans la diapositive suivante, etc.

Panel 2: Les résultats de la recherche sont affichés sur la base des réponses aux questions. Initialement, il affiche les options par défaut qui sont supprimées/affinées une fois que l'utilisateur répond aux deux premières questions.

mockup

télécharger la source bmml - Wireframes créés avec Balsamiq Mockups

Les questions sont dans l'ordre suivant:

  1. Le genre
  2. Âge
  3. Prix
  4. Relation
  5. Occasion

Je ne suis pas certain que l'ordre que j'ai choisi d'afficher les questions soit le plus efficace pour obtenir rapidement de bons résultats de recherche.

Existe-t-il des recherches sur le sexe, l'âge, le prix, etc., l'heuristique et leur efficacité à renvoyer des résultats de recherche utiles pour des situations similaires? Existe-t-il une norme pour afficher des heuristiques comme celles-ci?

[~ # ~] modifier [~ # ~]

Il y a plus de questions comme l'humeur, la personnalité, etc. Mais les cinq que je pose sont les premières et les plus importantes questions.

Si le sexe ne précède pas la relation, cela signifie qu'il y aura beaucoup plus d'options dans le menu déroulant Relation, ce qui peut être lourd à naviguer. Le filtrage par sexe signifie d'abord que le système peut supprimer des options pour l'utilisateur dans le menu Relation.

Une fois que l'utilisateur frappe Find More, le Suggestions for You les éléments seront modifiés avec les données pertinentes et le panneau de recherche (en haut) ajoutera d'autres questions pour filtrer davantage la recherche.

De plus, toutes les questions ne sont pas nécessaires pour continuer. Par exemple, l'utilisateur peut cocher Femme dans les cases à cocher Sexe, mais ne pas sélectionner une relation spécifique avant de cliquer sur Find More.

Modifie directement à partir de la "réponse" de @ Hem

Je suis confondu avec l'occasion de vers d'âge. Le curseur d'âge aide le développeur à récupérer les données pertinentes, mais pas l'utilisateur. je suppose que l'occasion est plus pertinente pour l'utilisateur, mais c'est juste mon intuition sans faits solides

@Deer Hunter, oui, logiquement, les questions sont liées au destinataire, si vous remarquez que j'ai également ajouté un prix pour filtrer/aider l'utilisateur à sélectionner le cadeau en fonction de son budget.

1
Hemchandra

Le deuxième point de Michael Lai touche à quelque chose que je pense être très important. Vous souhaitez commander vos questions/filtres afin que l'utilisateur accède rapidement aux produits concernés. Vous voulez avoir des questions qui divisent les données aussi uniformément que possible.

Je pense que la meilleure façon d'y penser est d'utiliser des arbres de décision:

                     (100 products)
                        [Gender]
                  /                 \ 
             Male (20)             Female (80)
                /                     \ 
             [Age]                  [Price]
          /         \            /           \
       0-17 (5)  18+ (15)   <= $100 (60)   > $100 (20)

Dans l'exemple ci-dessus, nous séparons d'abord par gender. Si le gender était male, nous en sommes à 20 produits, et nous demandons ensuite à propos de age. Sinon, il nous reste 80 produits, et nous demandons ensuite à propos de price. Cela produit un arbre qui donnera entre 5 et 60 résultats, selon les réponses données.

Maintenant, ce n'est peut-être pas le meilleur arbre. Supposons que notre objectif soit de diviser les données aussi uniformément que possible. Notre première question de gender a divisé les données en 20:80. Idéalement, nous nous diviserions en un rapport 50:50. (Un meilleur objectif est peut-être de diviser l'arborescence comme rapidement autant que possible, ce qui nécessiterait des informations sur maintenant fréquemment chaque recherche se produit).

Nous pouvons utiliser quelques mathématiques pour déterminer sur quelle variable nous devons nous diviser. Supposons que nous ayons les catégories possibles suivantes:

Gender  |  Age  | Price   | # Products
================================================
Male    | 0-17  | <= $100 | 2
Male    | 0-17  | > $100  | 3
Male    | 18+   | <= $100 | 17
Male    | 18+   | > $100  | 8
Female  | 0-17  | <= $100 | 30
Female  | 0-17  | > $100  | 10
Female  | 18+   | <= $100 | 20
Female  | 18+   | > $100  | 10

Une solution simple mais décente serait de sélectionner chaque question en fonction de la répartition uniforme des données. Vous pouvez devenir assez mathématique si vous le souhaitez, mais "le faire à l'œil nu" n'est pas une mauvaise méthode. (Si vous voulez devenir un peu plus sophistiqué, vous pouvez envisager de calculer quelque chose comme entropie par exemple). Donc pour le premier nœud:

  • La division par gender donne un rapport 30:70
  • La division par age donne un rapport 45:55
  • La division par price donne le rapport 69:31

Nous sélectionnons donc age pour le premier nœud, car le rapport est assez proche de 50:50. Supposons que la question suivante posée dépend de la réponse précédente de l'utilisateur.

Si l'utilisateur a répondu Age = 0-17:

  • La division par gender donne le rapport 5:40 = 11:89
  • La division par price donne le rapport 32:13 = 71:29

Nous pouvons donc choisir de demander price ensuite.

Si l'utilisateur répond à la place Age = 18+:

  • La division par gender donne le rapport 25:30 = 45:55
  • La division par price donne le rapport 37:18 = 67:32

Donc dans ce cas, nous demanderions à gender ensuite.

Cette approche vous donnera des indications sur les questions qui méritent d'être posées et celles qui ne le sont pas. Ce n'est pas parfait et ne devrait être vraiment là que pour vous guider. De toute évidence, il peut y avoir des questions qui ne sont pas appropriées à poser en premier (par exemple, poser des questions sur le prix nécessite qu'un utilisateur ait un produit particulier en tête).

1
Brendon

Le tri des cartes peut vous donner de meilleurs résultats.

Je le classerais de cette façon 1.Occasion 2.Relation 3.Age 4.Prix 5.Gender (J'ai finalement placé le genre, car "relation" répond presque aussi à la question du genre)

0
D K

Mon approche/stratégie générale serait de planifier votre conception en fonction de certaines hypothèses, puis de les tester et de modifier l'interface au besoin. Donc, les choses auxquelles vous devez penser, et peut-être faire des hypothèses, seraient:

  1. L'utilisateur doit-il filtrer avant de rechercher ou après? Cela dépendra de savoir s'ils savent ce qu'ils recherchent ou s'ils souhaitent parcourir les options. S'ils savent ce qu'ils recherchent, vous devez les aider à supprimer les résultats de recherche indésirables avant la recherche. S'ils ne savent pas ce qu'ils recherchent, vous devez les aider à organiser les résultats de la recherche afin qu'ils puissent découvrir ce qu'ils pourraient souhaiter.

  2. Quelles catégories créeront les plus grandes contraintes/liberté? Cela dépend de l'inventaire dont vous disposez. Par exemple, en général, vous pourriez penser que des catégories plus larges (par exemple, le sexe) excluront la moitié de vos options, mais si vous avez plus d'articles masculins que féminins, ce ne sera pas le cas. Les utilisateurs trouveront frustrant s'ils cliquent sur un critère de recherche et obtiennent soudainement très peu ou pas de résultats s'ils naviguent, alors essayez de leur donner plus d'options. Cela dépend également de l'étroitesse de la définition des sous-catégories.

  3. Quelles sont les relations logiques entre les catégories? Par exemple, le sexe peut être lié à l'occasion s'il s'agit de la Saint-Valentin, alors que l'âge n'affecte pas nécessairement le prix. Les choses qui sont plus liées doivent être regroupées plus étroitement afin que l'utilisateur puisse mieux voir la relation.

Ensuite, il s'agit simplement de savoir comment ceux-ci sont liés à votre conception, comment rendre la mise en page agréable et claire, puis tester et voir si les hypothèses que vous avez faites sur le comportement des utilisateurs sont correctes par rapport à votre application. Sur la base de vos résultats, vous pouvez ensuite affiner le polissage du design jusqu'à obtenir les meilleurs résultats.

0
Michael Lai