Je travaille actuellement sur le projet où je dois correspondre une grande quantité de noms générés par les utilisateurs avec une liste séparée des mêmes noms dans un format canonique. Le problème est que les noms générés par l'utilisateur contiennent de nombreuses fautes d'orthographe, abréviations, ainsi que de simples données invalides, ce qui rend difficile la comparaison avec les données canoniques. Des suggestions sur les méthodes pour le faire?Cross Référencer Bases de données sur les données Fuzzy
Cela ne doit pas être fait en temps réel et, dans ce cas, la précision est plus importante que la vitesse.
idées actuelles en sont:
- Effectuez une recherche floue pour le nom d'utilisateur est entré dans la base de données canonique en utilisant une implémentation de recherche existant comme Lucene ou Sphinx, que je présume utiliser quelque chose comme la distance Levenshtein pour cette .
- Référence croisée sur le hachage SOUNDEX (qui est censé être calculé sur le son du nom plutôt que sur l'orthographe) au lieu d'utiliser le nom réel.
- Une combinaison de ce qui précède
Quelqu'un at-il des commentaires sur l'un de ceux-ci ou leurs propres idées? L'une de mes préoccupations est qu'aucune des méthodes ci-dessus ne traitera très bien les abréviations. Quelqu'un peut-il me diriger dans une direction pour certaines méthodes d'apprentissage automatique de rechercher réellement sur les abréviations étendues (ou dites-moi que je suis fou)? Merci d'avance.
Merci, je pense qu'il n'y a vraiment pas de réponse parfaite à cela. J'ai décidé d'aller avec l'aide Lucene comme le principal moyen de références croisées et d'utiliser différents/custom Analyzer de pour développer les abréviations et faire la recherche floue. – ghempton