Question

J'allais poser une question plus tôt dans la journée lorsqu'on m'a présenté une fonctionnalité surprenante dans Stackoverflow.Quand j'ai écrit le titre de ma question, stackoverflow m'a suggéré plusieurs questions connexes et j'ai découvert qu'il y avait déjà deux questions similaires.C'était magnifique !

Ensuite, j'ai commencé à réfléchir à la manière dont j'implémenterais une telle fonction.Comment je classerais les questions par relation :

  1. Question qui a un nombre plus élevé de mots correspond à la nouvelle question
  2. Si le nombre de matchs est le même, l'ordre des mots est considéré
  3. Les mots qui apparaissent dans le titre ont une pertinence plus élevée

S’agirait-il d’un simple flux de travail ou d’un algorithme de score complexe ?Certains proviennent d'augmenter le rappel, peut-être ?Existe-t-il une bibliothèque qui implémente cette fonction ?Quels autres aspects envisageriez-vous ?Peut-être que Jeff pourrait répondre lui-même !Comment avez-vous implémenté cela dans Stackoverflow ?:)

Était-ce utile?

La solution

Une manière de mettre en œuvre un tel algorithme impliquerait de classer les questions selon une fonction heuristique qui attribue un facteur de pondération de « pertinence » en suivant les étapes suivantes :

  1. Appliquez un filtre de bruit à la question « Nouveau » pour supprimer les mots communs à un grand nombre d'objets, tels que :'le', 'et', 'ou', etc.
  2. Obtenez le nombre de mots contenus dans la question « Nouvelle » qui correspondent aux mots de l'ensemble de questions déjà publiés sur le site Web.[UN]
  3. Obtenez le nombre de correspondances de balises entre les mots de la question « Nouvelle » et ceux disponibles.[B]
  4. Calculez le « poids de pertinence » en fonction de [A] et [B] comme « x[A] + y[B] », où x et y sont des multiplicateurs de poids (attribuez un multiplicateur de poids plus élevé à [B] car le marquage est plus pertinent qu'une simple recherche de mots)
  5. Obtenez les 5 premières questions qui ont le « poids de pertinence » le plus élevé.

L'heuristique peut nécessiter des ajustements pour obtenir des résultats optimaux, mais elle devrait fonctionner.

Autres conseils

Votre question semble similaire à celui-ci, qui contient quelques réponses supplémentaires.

@marcio

Désolé, je ne connais aucune référence API directe que je pourrais suggérer ici et je n'ai jamais travaillé avec Lucene.

Cependant, je suis conscient que Google Desktop utilise une API de requête pour classer et suggérer les résultats de recherche pertinents.Plus d'informations sur l'API peuvent être trouvées ici.

Peut-être que d'autres pourraient intervenir et vous guider.

StackOverflow ne sera-t-il pas open source à un moment donné ?Si tel est le cas, vous pouvez toujours découvrir comment ils ont procédé là-bas.

Mise à jour:Il semble qu'ils disent qu'ils pourrait ouvrez-le en source.J'espère qu'ils le feront.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top