2010-07-13 11 views
0

Conversion d'une base de données des personnes et des adresses de MAJUSCULES à titre de cas va créer un certain nombre de mots/noms mal capitalisées, voici quelques exemples:Nettoyage de données, après la conversion de ALLCAPS Titre Case

MacDonald, PhD, CPA , III

Est-ce que quelqu'un connaît un script existant qui nettoiera tous les mots problématiques courants? Certainement, il laissera toujours quelques erreurs derrière (noms moins communs avec des épellations semblables à CamelCase, c.-à-d. "MacDonalz").

Je ne pense pas que cela soit important, mais les données résident actuellement dans MSSQL. Comme il s'agit d'un travail ponctuel, j'exporterais vers du texte si une solution l'exigeait.

Il y a un fil qui a posé une question connexe, touchant parfois ce problème, mais ne traitant pas spécifiquement de ce problème. Vous pouvez le voir ici:

SQL Server: Make all UPPER case to Proper Case/Title Case

Répondre

0

Voici la réponse que je cherchais:

Il existe une société de données, Melissa Data, qui publie des API et des applications pour le nettoyage de bases de données - principalement axées sur l'industrie du marketing direct.

J'ai été capable d'utiliser deux applications pour résoudre mon problème.

  1. Stylelist: cette application, entre autres choses , convertit MAJUSCULES pour mixte cas et dans le processus, il ne pas salir les données, titres laissant tels que CPA, MD, III, etc. tact; ainsi que noms de chameaux, tels que McDonalds. Personator: J'ai utilisé personator pour diviser les champs Nom complet en Préfixe, Prénom, Deuxième prénom, Nom de famille et Suffixe. Pour être honnête, c'était loin d'être parfait, mais les données que je lui ai données étaient assez difficiles (il n'y avait souvent pas d'espace séparant un deuxième prénom et un suffixe). Cette application fait un certain nombre d'autres choses utiles, y compris l'attribution de sexe à la plupart des noms. Il est disponible en tant qu'API que vous pouvez également appeler.

Voici un lien vers les solutions proposées par Melissa Data:

http://www.melissadata.com/dqt/index.htm

Pour moi, les applications Melissa données ont fait beaucoup de soulever des objets lourds et les données sales restant était identifiable et peut être fixé dans SQL en signalant les comptages GAUCHE x ou DROIT x - la saleté a généralement le moins d'unicité, les motifs sont facilement découverts et corrigés.

+0

Est-ce un argument de vente? – Codebeef

+0

Oh, non, certainement pas. Je comprends votre demande. Les solutions de la société Melissa Data comprennent des API (ou simplement des applications).Pour mes besoins spécifiques, j'ai économisé énormément de temps non seulement en corrigeant * les données que j'ai cassées en changeant de casse, mais en les * trouvant * même. Dans le cas contraire, il faudrait beaucoup d'enregistrements par inspection des dossiers. Par conséquent, cependant, j'ai dû faire beaucoup de manipulation post-nettoyage en raison de données extrêmement sales provenant de dossiers publics. (absence de délimiteurs, etc.) –

2

Je ne sais pas si cela est d'aucune aide

private static function ucNames($surname) { 
// (O\' | \- | Ma?c | Fitz) # attempt to match Irish, Scottish and double-barrelled surnames 
    $replaceValue = ucwords($surname); 
    return preg_replace('/ 
         (?:^| \\b)  # assertion: beginning of string or a word boundary 
         (O\' | \- | Ma?c | Fitz) # attempt to match Irish, Scottish and double-barrelled surnames 
         ([^\W\d_])  # match next char; we exclude digits and _ from \w 
         /xe', 
         "'\$1' . strtoupper('\$2')", 
         $replaceValue); 
} 

C'est une simple fonction PHP que j'utiliser pour définir les noms de famille pour corriger le cas qui fonctionne pour les noms comme O'Connor, McDonald et MacBeth, FitzPatrick et noms doubles comme Hedley-Smythe

+0

C'est utile. Une grande partie du problème est juste que, et d'autres choses à chasser sont plus faciles à trouver/remplacer tels que III, CPA, MD, etc. –