RediSearch 1.4 : Phonétique et vérification orthographique

RediSearch 1.4 : Phonétique et vérification orthographique

C’est toujours excitant quand une nouvelle version de RediSearch sort – nous venons de publier la version 1.4 (oui, nous avons ignoré la 1.3 pour nous aligner sur une nouvelle méthodologie de gestion des versions). Cette nouvelle version a deux fonctionnalités clés qui ajoutent un peu d’intelligence à l’interrogation :

  • Correcteur orthographique et dictionnaires personnalisés
  • Correspondance phonétique (sonore)

Vérification orthographique

Voyons d’abord le correcteur orthographique. Tout le monde sait ce qu’est la vérification orthographique d’un point de vue général, mais examinons comment cela fonctionne dans le contexte d’un moteur de recherche. Il est préférable de le considérer comme une primitive qui alimenterait une fonctionnalité “Voulez-vous dire”.

Prenons, par exemple, cette requête particulière :

« Bâton de hockey »

En tant qu’être humain, vous savez probablement que cela signifie “bâton de hockey”, mais sans vérification orthographique, les résultats renvoyés ne seraient pas excellents. Voici comment RediSearch 1.4 peut vous aider. Tout d’abord, vous exécutez la requête via le FT.VERIFICATION ORTHOGRAPHIQUE commande; ça ne retournera rien (liste ou ensemble vide) si tout est correctement orthographié. Si la requête est passée dans FT.VERIFICATION ORTHOGRAPHIQUE a des mots qui semblent mal orthographiés, RediSearch renverra quels mots sont discutables et quelques suggestions.

Exécutons cet exemple ci-dessus sur un ensemble de données rempli :

Assez facile! Chaque mot mal orthographié renverra “TERM” et le mot mal orthographié, puis toutes les alternatives avec leurs scores de confiance respectifs, triés par score le plus élevé. L’exemple n’a qu’un seul suppléant mais vous pouvez certainement en avoir plus.

Supposons que vous ayez créé un index de rapport d’incident de garde de sécurité avec cette commande :

La fonction suppose que tout mot existant dans l’index est orthographié correctement (par exemple, il n’y a pas de dictionnaire intégré de mots valides). Cependant, vous pouvez avoir des mots dont vous voulez supposer qu’ils sont correctement orthographiés et qui ne sont pas encore indexés. Cet index contiendra des rapports de personnes impliquées dans des incidents de sécurité et pourrait avoir beaucoup de mots d’argot.

(liste ou ensemble vide) signifie que le correcteur orthographique pense qu’il y a une faute d’orthographe, mais il n’a pas de correction. Pour remédier à cette situation, nous allons ajouter quelques mots d’argot à un dictionnaire :

Maintenant, nous pouvons exécuter une vérification orthographique sur une requête et EXCLURE ces termes. La terminologie ici est un peu déroutante, mais considérez-la comme excluant les mots de la vérification orthographique, par exemple en supposant qu’ils sont correctement orthographiés.

La réponse de (liste ou ensemble vide) signifie que tous les mots de la chaîne transmise ne sont pas orthographiés de manière incorrecte. Cela ne nous amène que jusqu’à présent cependant. Que se passe-t-il si l’un de ces nouveaux mots est mal orthographié ? Voyons voir.

Ainsi, le correcteur orthographique a identifié le mot mal orthographié mais il ne sait pas comment le corriger. Pour ce faire, vous devrez COMPRENDRE le dictionnaire ainsi que EXCLURE ce.

Vous pouvez maintenant voir qu’il corrige l’orthographe.

Il est important de rappeler que vous n’avez pas besoin de vous soucier des dictionnaires personnalisés si vous avez déjà des documents contenant ces termes. Disons que vous avez un document comme celui-ci :

Étant donné que ce rapport contient tous ces mots d’argot, ils sont automatiquement renseignés dans la vérification orthographique sans dictionnaires personnalisés, à la fois inclusivement et exclusivement :

Il est donc préférable d’utiliser des dictionnaires personnalisés pour les termes spécifiques à un domaine qui n’ont pas encore été mentionnés dans vos documents existants.

Correspondance phonétique

La correspondance phonétique résout le problème canonique de la recherche d’une personne nommée “Jon” mais en la tapant comme “John » – sonne de la même façon, mais ils sont orthographiés différemment. Si vous voulez descendre dans un terrier de lapin, essayez de comprendre pourquoi les deux orthographes existent en tant que noms anglais modernes. Je digresse.

C’est un problème de recherche délicat car même avec les astuces que les moteurs de recherche utilisent (comme le stemming), cela n’aide pas. Pour lutter contre cela, les moteurs de recherche peuvent utiliser des algorithmes qui décomposent le texte en codes spécifiques à la langue en fonction des règles de prononciation linguistique. RediSearch le fait en utilisant un algorithme appelé Double Metaphone, qui a une histoire fascinante, recherchez-le parfois.

Vous devez d’abord définir les champs que vous souhaitez indexer phonétiquement (uniquement TEXTE champs évidemment). Créons un petit index avec deux champs phonétiques :

Ainsi, nous avons maintenant activé la phonétique lorsque nous ajoutons des documents sur les champs de nom et d’almamater. Ajoutons quelques documents :

Lorsque RediSearch ajoute les documents à l’index, il n’enregistre pas seulement “jon” ou “john”, il enregistre les deux avec leurs codes métaphone. Dans ce cas, “jon” et “john” se traduisent tous deux par Jn. Pour les rechercher, il vous suffit de rechercher un champ spécifique désigné par PHONÉTIQUE.

Vous voyez comment cela correspond à la fois à “john” et à “jon” ? C’est parce qu’ils ont la même traduction Double Metaphone. À ce stade, vous dansez peut-être à votre bureau devant l’émerveillement qu’est la correspondance phonétique dans un moteur de recherche. Tous vos problèmes sont résolus !

Pas si vite – la correspondance phonétique doit être utilisée avec précaution. C’est un outil très tranchant, mais il peut vous couper. Prenons par exemple le deuxième champ de notre micro-exemple :

« Trent » et « Toronto » ne ressemblent en rien ! Ce n’est pas un bogue, mais plutôt une faiblesse de l’algorithme Double Metaphone qui enlève certaines informations et en souligne d’autres. Le métaphone doit être utilisé avec précaution sur les champs susceptibles de ne pas contenir de sons similaires. Vous pouvez également utiliser un attribut pour désactiver la recherche phonétique :

RediSearch 1.4 possède des fonctionnalités intéressantes qui ajoutent une grande flexibilité à la recherche. Ces fonctionnalités sont au cœur de ce que fait un bon moteur de recherche : il s’adapte à l’erreur humaine sans perdre de vue la véritable intention de l’utilisateur.

Development Source

Related Posts

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Clés Redis dans la RAM |  Redis

Clés Redis dans la RAM | Redis

No Comment

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *