Question

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 les utilisateurs contient de nombreuses fautes d'orthographe, des abréviations, ainsi que des données simplement invalides, ce qui rend difficile de faire une référence croisée avec les données canoniques. Toutes les suggestions sur les méthodes de le faire?

Cela ne doit pas être fait en temps réel et cette précision de cas est plus importante que la vitesse.

IDÉES ce sont:

  1. Effectuez une recherche floue pour le nom d'utilisateur est entré dans la base de données canonique en utilisant une implémentation existante de recherche comme Lucene ou Sphinx, que je présume utiliser quelque chose comme la distance Levenshtein pour cela.
  2. Référence croisée sur le hachage SOUNDEX (qui est censé être calculé sur le son du nom plutôt que l'orthographe) au lieu d'utiliser le nom réel.
  3. Une combinaison de ce qui précède

Quelqu'un a des commentaires sur ces ou leurs propres idées?

L'une de mes préoccupations est que aucune des méthodes ci-dessus se chargera des abréviations très bien. Quelqu'un peut-il me diriger dans une direction pour certaines méthodes d'apprentissage de la machine pour la recherche en fait sur les abréviations étendues (ou me dire que je suis fou)? Merci à l'avance.

Était-ce utile?

La solution

D'abord, je voudrais ajouter à votre liste les techniques discutées à poste de Peter Norvig sur la correction orthographique .

Deuxièmement, je demande quel genre de « noms générés par les utilisateurs » vous parlez. Après avoir traité les deux, je crois que les heuristiques vous utiliseriez pour les noms de rue sont un peu différents des heuristiques pour les noms de personne. (A titre d'exemple simple, ne "Dr" étendre à "Drive" ou "Docteur"?)

Troisièmement, je regarderais une combinaison à l'aide des tests pour établir l'ensemble des coefficients pour combiner les résultats des différentes techniques.

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