Améliorer la pertinence des résultats en ajoutant des profils de score
Recherche Azure AI utilise l’algorithme de classement de similarité BM25. L’algorithme note les documents en fonction des termes de recherche utilisés.
Ici, vous verrez comment ajouter des profils de score pour modifier les scores des documents en fonction de vos propres critères.
Calcul des scores de recherche
Le scoring est la dernière phase de traitement d’une requête de recherche.
Le moteur de recherche note les documents retournés à partir des trois premières phases. Le score est une fonction du nombre de fois où les termes de recherche identifiés apparaissent dans un document, de la taille du document et de la rareté de chacun des termes. Par défaut, les résultats de la recherche sont classés par score de recherche, le plus élevé en premier. Si deux documents ont un score de recherche identique, vous pouvez déterminer l’ordre en ajoutant une clause $orderby
.
Améliorer le score pour les documents plus pertinents
Comme le scoring par défaut fonctionne selon la fréquence des termes et leur rareté, le score final calculé peut ne pas renvoyer le score le plus élevé pour le document le plus pertinent. Chaque jeu de données est différent. La recherche IA vous permet donc d’influencer un score de document à l’aide de profils de score.
Le profil de score le plus simple définit différents poids pour les champs d’un index. Dans l’exemple ci-dessus, l’index Hotel a un profil de score avec le champ Description cinq fois plus pertinent que les données des champs Location ou Rooms. Le champ Catégorie est deux fois plus pertinent que HôtelName.
Le profil de score peut également inclure des fonctions, par exemple une distance ou un degré de fraîcheur. Les fonctions fournissent plus de contrôle que la pondération simple. Par exemple, vous pouvez définir la durée de l’augmentation appliquée aux documents plus récents avant de leur appliquer le même poids qu’aux documents plus anciens.
La puissance des profils de score signifie que, au lieu de renforcer un terme spécifique dans une requête de recherche, vous pouvez appliquer un profil de score à un index afin que les champs soient automatiquement optimisés pour toutes les requêtes.
Ajouter un profil de score pondéré
Vous pouvez ajouter jusqu’à 100 profils de score à un index de recherche. La façon la plus simple de créer un profil de score est d’utiliser le portail Azure.
- Accéder à votre service de recherche.
- Sélectionnez Index, puis choisissez l’index auquel ajouter un profil de score.
- Sélectionnez Profils de score.
- Sélectionnez + Ajouter un profil de scoring.
- Dans Nom du profil, entrez un nom unique.
- Pour définir le profil de score comme une valeur par défaut à appliquer à toutes les recherches, sélectionnez Définir comme profil par défaut.
- Dans Nom du champ, sélectionnez un champ. Ensuite, pour Poids, entrez une valeur de poids.
- Cliquez sur Enregistrer.
Dans l’exemple ci-dessus, le profil de score boost-category
a été ajouté au hotels-sample-index
. La catégorie a un poids de cinq.
Le profil a également été défini comme profil par défaut. Vous pouvez ensuite utiliser cette requête de recherche :
search=luxury AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full
Les résultats correspondent désormais à la même requête avec un terme renforcé :
search=(Description:luxury OR Category:luxury^5) AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full
Vous pouvez contrôler le profil de score appliqué à une requête de recherche en ajoutant le paramètre &scoringProfile=PROFILE NAME
.
Les profils de score peuvent également être ajoutés par programmation à l’aide de l’API REST Update Index ou dans des kits SDK Azure, comme la classe ScoringProfile dans le SDK Azure pour .NET.
Utiliser des fonctions dans un profil de score
Les fonctions disponibles pour l’ajout à un profil de score sont les suivantes :
Fonction | Description |
---|---|
Magnitude | Modifier les scores en fonction d’une plage de valeurs dans un champ numérique |
Actualisation | Modifier les scores en fonction de l’actualisation des documents comme indiqué dans un champ DateTimeOffset |
Distance | Modifier les scores en fonction de la distance entre un emplacement de référence et un champ GeographyPoint |
Tag | Modifier les scores en fonction de valeurs de mots clés courantes dans des documents et des requêtes |
Par exemple, l’utilisation de l’index hotel peut être appliquée à la fonction d’évaluation. Le portail Azure vous guidera tout au long du remplissage des paramètres de chaque fonction.