Очистка данных, последующее преобразование из ALLCAPS в Case Title
Преобразование базы данных людей и адресов из ALL CAPS в Title Case создаст несколько неправильно прописных слов / имен, некоторые примеры приведены ниже:
Макдональд, доктор философии, CPA, III
Кто-нибудь знает о существующем сценарии, который очистит все распространенные проблемные слова? Конечно, это все равно оставит некоторые ошибки (менее распространенные имена с написанием CamelCase-like, то есть "MacDonalz").
Я не думаю, что это имеет большое значение, но данные в настоящее время хранятся в MSSQL. Поскольку это одноразовая работа, я бы экспортировал ее в текст, если это требуется для решения.
Существует ветка, которая ставит связанный вопрос, иногда затрагивая эту проблему, но не обращаясь к этой проблеме специально. Вы можете видеть это здесь:
SQL Server: переведите все ВЕРХНИЕ дела в надлежащий регистр
2 ответа
Вот ответ, который я искал:
Есть компания данных Melissa Data, которая публикует некоторые API и приложения для очистки баз данных, ориентированные главным образом на индустрию прямого маркетинга.
Я смог использовать два приложения для решения моей проблемы.
- StyleList: это приложение, среди прочего, конвертирует ВСЕ ЗАГЛАВКИ в смешанный регистр, и в процессе работы оно не портит данные, оставляя такие заголовки, как CPA, MD, III и т. Д. В такте; а также естественные, распространенные имена верблюдов, такие как McDonalds.
- Персонатор: я использовал персонализатор, чтобы разбить поля Полное имя на Префикс, Имя, Отчество, Фамилия и Суффикс. Честно говоря, это было далеко от совершенства, но данные, которые я дал, были довольно сложными (часто без пробела, разделяющего второе имя и суффикс). Это приложение делает ряд других полезных вещей, в том числе назначение пола большинству имен. Он также доступен в виде API, который вы можете вызвать.
Вот ссылка на решения, предлагаемые Melissa Data:
http://www.melissadata.com/dqt/index.htm
Для меня приложения Melissa Data сделали большую часть тяжелой работы, а оставшиеся грязные данные можно было идентифицировать и исправить в SQL с помощью отчетов по счетчикам LEFT x или RIGHT x - грязь обычно имеет наименьшую уникальность, шаблоны легко обнаруживаются и исправляются.
Не знаю, поможет ли это
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);
}
Это простая PHP-функция, которую я использую, чтобы установить фамилии в правильном регистре, которая работает для имен, таких как О'Коннор, Макдональд и МакБет, FitzPatrick, и для двуствольных имен, таких как Хедли-Смайт