L'intervention dans le cadre de la reconnaissance d'entités nommées (NER) vous permet de modifier les résultats de reconnaissance et d'ajuster les priorités des entités. Si les résultats NER par défaut sont inexacts, utilisez un dictionnaire d'intervention pour la NER afin de les corriger.
Concepts clés
Intervention NER
Créez un dictionnaire d'intervention pour la NER et appliquez-le lors de l'analyse des requêtes afin de modifier les résultats NER. Les entités sémantiques étant étroitement liées à l'analyseur, vous devez sélectionner un analyseur lors de la création du dictionnaire. Lors de la configuration de l'analyse des requêtes, vous ne pouvez utiliser le dictionnaire que si son analyseur correspond à celui utilisé par l'index.
Lors de la création d'un dictionnaire d'intervention pour la NER, les analyseurs de modèles personnalisés peuvent être configurés uniquement pour les applications dédiées.
Vous pouvez choisir entre une correspondance exacte et une correspondance partielle pour les entrées du dictionnaire.
Chaque dictionnaire d'intervention peut contenir jusqu'à 1000 entrées.
Lors de l'ajout d'une entrée, normalisez la requête d'intervention en convertissant les lettres majuscules en minuscules et les caractères pleine largeur en demi-largeur. Sinon, l'entrée sera ajoutée mais n'aura aucun effet lors des recherches.
Lors de la configuration d'un dictionnaire d'intervention pour la NER dans l'analyse des requêtes, vous pouvez choisir d'ignorer ou non les espaces dans la requête de recherche.
Dans certains cas, par exemple après une mise à niveau de l'analyseur, le résultat de la tokenisation d'une requête de recherche peut différer de celui généré lors de la création de l'entrée. Dans ce cas, l'intervention échouera et la recherche renverra le code d'erreur 6612. Si vous recevez cette erreur, modifiez l'entrée d'intervention dans la console.
Intervention sur la priorité des entités
OpenSearch fournit une configuration de priorité des entités par défaut que vous pouvez ajuster selon vos besoins métier. Ces ajustements affectent les règles de réécriture des requêtes.
Si une requête de recherche correspond à plusieurs entrées d'intervention, l'entrée ayant le poids de correspondance le plus élevé est prioritaire.
Si les poids de correspondance sont identiques, l'entrée qui apparaît en premier dans la requête est prioritaire.
Si les positions de correspondance sont également identiques, l'entrée contenant davantage de termes sémantiques est prioritaire.
Lors de la configuration des priorités des entités, les niveaux de priorité Élevée et Moyenne ne peuvent pas être tous deux vides. Sinon, la fonctionnalité de réécriture de requête basée sur la NER échouera.
Chaque entité ne peut avoir qu'un seul niveau de priorité.
Utilisation
Vous pouvez corriger manuellement les résultats NER en créant un dictionnaire d'intervention. Le processus implique généralement quatre étapes :
Créez un dictionnaire d'intervention pour la NER. Accédez à
Search Algorithm Center > Retrieval Configuration > Dictionary Management. Sur la page qui s'affiche, cliquez sur Create dans le coin supérieur droit. Sélectionnez un type de dictionnaire et spécifiez un nom. Une fois le dictionnaire créé, il apparaît dans la liste des dictionnaires.Ajoutez et gérez les entrées d'intervention. Après la création du dictionnaire, cliquez sur son nom ou sur Manage dans la liste pour accéder à sa page de détails. Sur cette page, ajoutez et gérez les entrées d'intervention.
Utilisez le dictionnaire d'intervention. Une fois le dictionnaire créé et les entrées ajoutées, sélectionnez-le dans l'analyse des requêtes de votre application.
Testez et déployez le dictionnaire. Après avoir appliqué le dictionnaire à une règle d'analyse des requêtes, testez les performances de recherche pour vous assurer qu'elles répondent à vos attentes avant de le déployer dans votre environnement de production.
Étude de cas
Scénario : Un service de guide d'achat e-commerce utilise une règle d'analyse des requêtes avec la fonctionnalité NER activée dans son application OpenSearch. Toutefois, un cas problématique dans l'environnement de production a nécessité une intervention.
Cas problématique : Pour la requête utilisateur « Chanel cushion », la reconnaissance d'entités nommées (NER) par défaut classe « Chanel » comme un « terme ordinaire » et « cushion » comme un « matériau ». Par conséquent, la requête est réécrite sous la forme title:'cushion' RANK title:'Chanel'. Or, d'un point de vue métier, « Chanel » n'est pas un terme ordinaire. Diagnostic du problème : « Chanel » est un nom propre spécifique au domaine métier qui nécessite une intervention NER.
Solution : Créez un nouveau dictionnaire d'intervention pour la NER et appliquez-le à la règle d'analyse des requêtes utilisée dans l'environnement de production.
Procédure :
-
Dans la console, accédez à Search Algorithm Center > Retrieval Configuration > Dictionary Management, puis cliquez sur Create.
Saisissez un Name. Pour Dictionary Type, sélectionnez Entity Recognition. Pour Analyzer Type, sélectionnez built-in analyzer/custom analyzer en fonction de l'analyseur configuré dans votre analyse des requêtes. La liste déroulante Associated Analyzer filtre automatiquement et affiche les analyseurs compatibles. Notez que la NER ne peut être configurée que pour les analyseurs de type e-commerce tokenization.
Si l'index configuré dans l'analyse des requêtes utilise un analyseur de modèle personnalisé, définissez Analyzer Type sur tailored model analyzer. Pour Instance, choisissez Ha3 engine et le Application Name correspondant. Assurez-vous que l'Associated Analyzer correspond à celui de votre configuration d'analyse des requêtes.
-
Dans le dictionnaire d'intervention nouvellement créé, ajoutez une entrée d'intervention. Saisissez la requête et modifiez le résultat de reconnaissance du système.
Résultat de reconnaissance incorrect initial :
Pour la requête
Chanel cushion, le système identifie Chanel comme un terme ordinaire et cushion comme un matériau. Résultat après intervention : Pour la requêteChanel cushion, après avoir cliqué sur Get System Recognition Result, le système identifie l'entité Chanel comme une marque et cushion comme un matériau.Si le dictionnaire d'intervention est basé sur un analyseur de modèle personnalisé, vous devez sélectionner la version de l'analyseur lors de l'ajout d'une entrée d'intervention. Cette version correspond à la version du modèle utilisée par le modèle de recherche personnalisé.
ImportantPour Intervention Type, full match signifie que l'intervention s'applique uniquement lorsque la requête d'entrée correspond exactement à la requête d'intervention. partial match signifie que l'intervention s'applique lorsque la requête d'entrée contient la requête d'intervention.
-
Sur la page d'analyse des requêtes, appliquez le dictionnaire d'intervention nouvellement créé à une règle d'analyse des requêtes hors production pour tester son effet.
Dans la liste Query Analysis Configuration, repérez la règle d'analyse des requêtes hors production cible et cliquez sur Configure dans la colonne Actions. Sur la page de configuration, cochez la case Entity Recognition. Dans la liste déroulante du dictionnaire d'intervention, sélectionnez dic_entity. Définissez Ignore Spaces sur Yes, puis cliquez sur OK.
ImportantLa fonctionnalité d'ignorance des espaces indique s'il faut ignorer les espaces dans une requête lors d'une intervention NER. Cette fonctionnalité est désactivée par défaut. Par exemple : Si la requête d'entrée est « dress women » et que l'entrée d'intervention est « dresswomen », l'intervention est appliquée si vous sélectionnez « Yes ». Si vous sélectionnez « No », aucune intervention n'est effectuée.
-
Le test de recherche fonctionne comme prévu : (Les documents concernant « Chanel cushion » ont été récupérés.)
Sur la page de test de recherche, saisissez
title:'Chanel cushion'dans le champ query et définissez le paramètre qp surtest_entity. Après la recherche, la requête réelle est réécrite sous la forme(name:"Chanel" AND name:"cushion"). Cela indique que le plugin d'analyse des requêtes a pris effet et a renvoyé avec succès un document correspondant : « Chanel New Water-Gel Jelly Cushion Foundation BB Cream ».