Очистка данных, последующее преобразование из ALLCAPS в Case Title

Преобразование базы данных людей и адресов из ALL CAPS в Title Case создаст несколько неправильно прописных слов / имен, некоторые примеры приведены ниже:

Макдональд, доктор философии, CPA, III

Кто-нибудь знает о существующем сценарии, который очистит все распространенные проблемные слова? Конечно, это все равно оставит некоторые ошибки (менее распространенные имена с написанием CamelCase-like, то есть "MacDonalz").

Я не думаю, что это имеет большое значение, но данные в настоящее время хранятся в MSSQL. Поскольку это одноразовая работа, я бы экспортировал ее в текст, если это требуется для решения.

Существует ветка, которая ставит связанный вопрос, иногда затрагивая эту проблему, но не обращаясь к этой проблеме специально. Вы можете видеть это здесь:

SQL Server: переведите все ВЕРХНИЕ дела в надлежащий регистр

2 ответа

Решение

Вот ответ, который я искал:

Есть компания данных Melissa Data, которая публикует некоторые API и приложения для очистки баз данных, ориентированные главным образом на индустрию прямого маркетинга.

Я смог использовать два приложения для решения моей проблемы.

  1. StyleList: это приложение, среди прочего, конвертирует ВСЕ ЗАГЛАВКИ в смешанный регистр, и в процессе работы оно не портит данные, оставляя такие заголовки, как CPA, MD, III и т. Д. В такте; а также естественные, распространенные имена верблюдов, такие как McDonalds.
  2. Персонатор: я использовал персонализатор, чтобы разбить поля Полное имя на Префикс, Имя, Отчество, Фамилия и Суффикс. Честно говоря, это было далеко от совершенства, но данные, которые я дал, были довольно сложными (часто без пробела, разделяющего второе имя и суффикс). Это приложение делает ряд других полезных вещей, в том числе назначение пола большинству имен. Он также доступен в виде 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, и для двуствольных имен, таких как Хедли-Смайт

Другие вопросы по тегам