Вход
Регистрация

Проблема обработки персональных данных

Персональными данными называется любая информация, касающаяся определенного человека. Таковыми могут быть, например, его фамилия, адрес, телефон, семейное положение, занимаемая должность, предпочтения. В последнее время личная информация всё чаще используется в маркетинговых исследованиях. На основании собранных персональных данных рассчитываются стратегии развития бизнеса, позволяющие увеличить доход и привлечь новых клиентов.

Информация о потребителях собирается из многочисленных источников: анкет покупателей, регистрационной информации с сайтов, опросов на улицах, телефонных звонков по спискам потребителей. Путем слияния всех полученных сведений в одну клиентскую базу составляются "портреты" клиентов. Какие выводы сделают аналитики компании из такой информации, если она будет иметь вид, представленный в таблице 1?

Таблица 1 – Пример "загрязненных" персональных данных

Фамилия Имя Отчество Дата рождения Домашний телефон Мобильный телефон
Иванов Иване Ивановч
01.01.1980
11-11-11
8-911-111-11-11
Петров1 Пет р петрович
2 января 1975
222222
+7-922-222-22-22
Алексашов Саша
3.1ю.75
89333333333

Пример, изображенный в таблице 1, вполне реален. Приведем причины возникновения подобной ситуации.

Во-первых, большинство личных сведений вводятся респондентами или операторами вручную. Из-за невнимательности или по другим причинам они допускают опечатки в словах, не заполняют обязательные поля анкет, сокращают названия улиц или других объектов, заносят сведения не в те поля.

Во-вторых, не во всех программах, в которые вносят сведения, настроены ограничения на значение вводимых данных. Например, в MS Excel можно вбивать информацию, не задавая даже тип данных. Если же программа разработана специалистами под имеющуюся задачу, то она включает в себя ограничения даже на вносимый формат данных или допускает ввод только разрешенных символов.

В-третьих, в больших крупных компаниях сбор информации о клиентах идет по нескольким подразделениям, поэтому при слиянии всех сведений в одну базу возникают разногласия в формате представления однотипных данных (например, в файле MS Excel дата рождения сотрудника может храниться в виде "15 марта 1957г.", а в базе данных специализированной СУБД – "15.03.1957").

Низкое качество данных приводит к результатам анализа, несоответствующим действительности. Цель обработки такой персональной информации теряет всякий смысл. Чтобы получить реальные выводы из имеющихся данных, применяются методы по их очистке.

Они включают в себя две стадии: обнаружение и непосредственная очистка.

На первом шаге данные исследуются на предмет "загрязненности". Устанавливается, есть ли в них ошибки и к какому виду они относятся.

В зависимости от обнаруженных недостатков на следующем шаге происходит их устранение. На выходе этой стадии образуются данные, приведенные к единому формату и очищенные от найденных ошибок. Они пригодны для последующей обработки и могут участвовать в бизнес-анализе.

Перед описанием методов очистки познакомимся с видами ошибок, которые служат причинами возникновения "загрязненной" информации.

Виды ошибок

Существует несколько разновидностей типичных ошибок, появляющихся в ходе работы с личными данными:

  1. Противоречивость данных. Несколько полей содержат в себе информацию, которая не соответствует друг другу по смыслу. Например, встречаются случаи, когда в поле "Фамилия" введена строка "Иванов", а в поле "Пол" стоит отметка "Женский". Также часто возникают противоречия в данных из-за того, что дата рождения не совпадает с возрастом, введенного поселка нет в указанной области, код домашнего телефона не соответствует городу проживания и так далее.
  2. Неполнота данных. Данные не заполнены или заполнены не до конца. Некоторые поля оставляются респондентами пустыми, так как они не знают, какие значения в них внести. К таким данным относятся, например, индекс места проживания, код города. Кроме того, часто используются сокращения при заполнении названия улиц, городов, полного имени и тому подобного.
  3. Неправдоподобие данных. Данные принимают сомнительные значения. Иногда респондент ошибается и вводит данные в другое поле, расположенное рядом или похожее по смыслу. Чаще всего это происходит с номерами домашних, мобильных или рабочих телефонов.
  4. Опечатки в данных. Данные содержат лишние или пропущенные символы. Из-за невнимательности респондента или при быстром вводе данных вместе со словами в поля анкет вносятся лишние пробелы, цифры, знаки, пропускаются символы. Вместо имени "Иван" могли быть введены записи: "И ван", "Иван1", "Иван" или "Ивн".
  5. Несоответствие форматов данных. Однотипные данные имеют разные форматы представления. Например, поле "Дата рождения" может быть заполнено следующим образом: "11 января 2001", "11.01.2001", "11.01.01".
  6. Дублирование данных. Несколько записей имеют один и тот же смысл. При обработке анкет в нескольких из них в поле "ФИО" были обнаружены записи "Иванов Иван Иванович", "Иванов Ваня" и "Иванов И.И.". При их исследовании могло оказаться, что все анкеты принадлежат одному и тому же человеку.

Методы очистки данных

При очистке данных от вышеизложенных ошибок применяется множество методов. Нельзя точно сказать, какой из них самый эффективный, потому что они совершенно по-разному подходят к данной проблеме. В этой статье будут рассмотрены наиболее простые методы по обнаружению и устранению ошибок в персональных данных.

Строгие формальные правила

Данный метод основан на специальных формальных правилах, записывающихся в общем виде следующим образом: "ЕСЛИ <условие>, ТО <следствие>", где <условие> – набор операций, позволяющих распознать ошибки в данных, <следствие> – набор операций, предназначенных для очистки данных от выявленных ошибок.

Поясним функционирование метода строгих формальных правил. Для каждого конкретного поля перед его очисткой предусматриваются все возможные ошибки, которые мог допустить респондент при вводе своих данных. В условии правила записываются способы их нахождения, а в следствии – алгоритмы, позволяющие их устранить. Если учтенная ошибка находится в поле, то значение в нем следует очистить, если же нет, то оно считается введенным верно.

Пример

Рассмотрим поле "Возраст", заполняемое в анкете по страхованию жизни. С помощью метода формальных правил очистим его.

При анализе введенных значений в текущем поле могут быть выявлены следующие ошибки: данные записаны не в цифровом виде, а в буквенном варианте ("восемнадцать лет"), имеются опечатки ("18ш" или "189"), введены дробные значения ("18,7", имея в виду "18 лет и 7 месяцев").

Чтобы выявить эти ошибки, поля проверяются на наличие шаблонов в словах ("восемнадцать"), запятых, нецифровых символов, аномальных значений. В зависимости от найденных ошибок значения заменяются соответствующими цифровыми обозначениями ("восемнадцать" на "18"), округляются в наименьшую сторону ("18,7" на "18"), очищаются от лишних знаков ("18ш" на "18").

Выше были приведены условия и следствия строгих формальных правил для поля "Возраст", которые вместе образуют следующие выражения: "Если поле состоит не только из цифр, то лишние символы удаляются".

Не всегда условия в формальных правилах накладываются только на контролируемое поле. Многие персональные данные взаимосвязаны между собой, поэтому довольно часто проверка одного поля зависит от информации, расположенной в другом поле.

Пример

Правильность ввода телефонного кода в домашнем номере можно определить, используя информацию об адресе проживания респондента. Каждый город имеет свой уникальный код. Например, телефон "8-4912-<номер телефона>" принадлежит жителю Рязани, так как телефонный код города Рязани равен "4912".

Чтобы выявить ошибку в коде города домашнего телефонного номера, его сравнивают с кодом, который соответствует городу проживания респондента. Если эти два поля одинаковые, то значения остаются те же. Если они отличаются, то код в телефонном номере меняется на телефонный код города проживания.

Формальные правила получили свое распространение по следующим причинам:

  • данный метод применим ко всем типам ошибок;
  • для многих полей можно предположить диапазон допустимых значений;
  • реализация алгоритмов довольно проста, так как достаточно перечислить условия обнаружения ошибок и меры по их устранению.

Несмотря на популярность данного метода принципы, на которых он основан, примитивны, так как невозможно предусмотреть все случаи ошибок.

Контрольные числа

Данный метод использует алгоритмы вычисления контрольных чисел для восстановления исходных правильных значений. Он применяется для таких числовых персональных данных, как номера ИНН, банковских карт, карточек пенсионного страхования.

Контрольные числа – значения, рассчитанные по определенному принципу с помощью остальных чисел в записи. Они добавляются в конец записи номера и там же хранятся.

Когда респондент заполняет поле анкеты, содержащее контрольное число, то он может допустить ошибку. Проверить правильность введенного номера можно, вычислив последовательность значений по известному алгоритму. Если полученные значения не совпадают с контрольными числами, содержащимися в проверяемой записи, то данные неверны.

Алгоритм расчета контрольных значений позволяет точно восстанавливать исходные сведения в случае, когда допущена только одна ошибка и известно, на какой позиции она находится (в анкете не разборчиво написана цифра, при заполнении пропущен символ).

Если неизвестно, где именно сделана ошибка, то перебираются все возможные варианты (по количеству цифр в числе), после чего выбирается наиболее правдоподобный и экспертом решается производить замену на найденное значение или нет.

Пример

Рассмотрим функционирование метода контрольных чисел на примере очистки поля "ИНН".

ИНН для физического лица представляет собой двенадцатизначный цифровой код, в котором два последних значения занимают контрольные числа. Проверка правильности ввода ИНН сводится к вычислению двух чисел на основе десяти первых цифр по известному алгоритму. Если они не совпадают с двумя последними цифрами самого номера, то в данных содержится ошибка.

Респондент ввел в поле "ИНН" следующее значение:

1 2 3 4 5 6 7 8 9 0 4

При заполнении формы, вероятнее всего, он забыл записать последнюю цифру. Это привело к появлению "загрязненной" информации.

По известному алгоритму были вычислены контрольные цифры: "4" и "7". Следовательно, число "7" и есть то значение, которое пропустил респондент при заполнении поля. Истинным значением ИНН является число"123456789047".

Метод контрольных чисел используется только для количественных персональных данных. С помощью него возможно находить и устранять "загрязненные" данные в том случае, если респондентом была произведена одна ошибка, иначе он не сможет восстановить исходные значения по имеющимся цифрам.

Регулярные выражения

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

Регулярные выражения – формальный язык, позволяющий оперировать строками при помощи специальных образцов (шаблонов). Шаблон представляет собой некий набор символов, который ищет все строки, подходящие под заданный формат. Например, для мобильного телефона он будет иметь следующий вид: "X-XXX-XXX-XX-XX", где Х – это число.

Регулярные выражения включают в себя следующие возможности работы со строками: нечеткий поиск по заданному шаблону, проверка соответствия требуемому образцу, извлечение нужной подстроки, замена требуемым значением, другой строкой или сложно-вычисляемой функцией. Перечисленные способности регулярных выражений удобны в применении к обработке персональных данных.

С помощью регулярных выражений записываются шаблоны, позволяющие проверить данные на соответствие нужного формата, исправить опечатки, привести информацию к необходимому виду.

Пример

Номер сотового телефона по-разному вводится респондентами в поля анкет. Он может быть записан как "8-900-000-00-00", "8(900)00000000", "89000000000" или "+7-900-00-00". В базе данных все значения должны храниться в одном формате. В основном для наглядности используют шаблон вида "X-XXX-XXX-XX-XX". Однако в этом случае все значения придется хранить с помощью строкового типа данных, что занимает большое место в памяти компьютера. Практичнее это делать с помощью числового типа данных. Значит, поля следует очистить от всех символов, кроме цифр, а также комбинацию чисел "+7" поменять на "8".

Данные операции легко проделываются с помощью совокупности регулярных выражений, записанных при помощи средств Deductor Studio:

  1. RegExReplaceAll("+7"; Mobile; "8")
  2. RegExReplaceAll("D"; Mobile; "")

Теперь формат номера сотового телефона будет один и тот же, а именно "89000000000".

Данный метод выигрывает в гибкости обработки любых персональных данных, в экономии времени на написание кода, в возможности поиска требуемой информации, от которой нужно очистить данные, а потом заменить ее нужными значениями. К недостаткам регулярных выражений можно отнести серьезное потребление ресурсов компьютера при выполнении некоторых операций и их синтаксис, сложный для понимания вначале знакомства с ними.

Использование машинных словарей

Данный метод использует машинный словарь, представляющий собой упорядоченное множество лингвистической информации, хранящейся в определенном виде в памяти компьютера. Суть метода заключается в поиске проверяемого слова в заранее составленном машинном словаре. В него входят все возможные значения, которые принимает данное поле. Если слово не будет обнаружено в словаре, то данные, скорее всего, "загрязнены", и они требуют дополнительной проверки на наличие ошибок.

Чаще всего с помощью словарей проверяются такие персональные данные, как имена, отчества респондентов, наименования географических объектов. Это связано с тем, что в основном все принимаемые ими значения можно перечислить.

Также при работе с личной информацией весьма полезны классификаторы. Классификатор – это словарь, состоящий из наименований объектов, классификационных группировок, на которые они разбиты по степени сходства, и идентифицирующих их кодов. Известными российскими классификаторами при обработке персональных данных являются классификатор адресов России (КЛАДР), общероссийский классификатор специальностей по образованию (ОКСО), классификатор телефонных кодов, классификатор Банковских Идентификационных Кодов (БИК).

С помощью идентифицирующих кодов классификатором выявляется "загрязненная" информация. Если какому-либо проверяемому значению не будет сопоставлен его код или полученные коды связанных данных противоречат друг другу, то в них может быть допущена ошибка. Чтобы очистить от нее информацию, поля проверяют по отдельности на наличие опечаток или рассматривают дополнительные значения, по которым можно восстановить потерянные данные (например, если респондент ошибся при вводе названия города проживания, то вероятнее всего оно отыщется в информации о том, кем выдан паспорт). После этого опять производится поиск кодов в классификаторе с уже новыми полученными данными.

Также при помощи классификаторов можно избавляться от пропусков в полях. Тогда незаполненная часть информации ищется в классификаторе по имеющимся данным. Если будет найден только один подходящий вариант, то он вносится вместо пропуска. В ином случае все найденные значения выдаются эксперту, принимающему решение, который выбирает, какой из вариантов более близок к исходному.

Пример

Остановимся на КЛАДР и рассмотрим, как с помощью него восстанавливаются пропуски в адресах.

Сначала поясним структуру КЛАДР. В нем принята иерархическая система классификации. Все объекты располагаются по семи уровням, начиная с объектов федерального значения и заканчивая объектами, обозначающими номера квартир домов. Ключевым блоком в классификаторе является поле "Код", идентифицирующий каждый объект и группирующий данные по уровням. Всякому уровню соответствуют определенные разряды кода.

Допустим, респондент ввел следующий адрес: "п. Кустаревка, ул. Кооперативная". Он не указал ни индекс места проживания, ни область, ни район. Эти данные следует восстановить.

Введем названия населенного пункта и улицы в КЛАДР. Из всех найденных значений совпал только один вариант с кодами "6201800005100" (код для поселка Кустаревка) и "62018000051000700" (код для улицы Кооперативная). Из этого следует, что искомый адрес найден.

По полученному коду можно извлечь индекс из соответствующего поля в таблице улиц. Для выбранного адреса он равен "391450". Затем идентифицирующий номер разбирается по частям для нахождения оставшихся объектов. Первые две цифры кода отвечают за наименование объекта на федеральном уровне. Код "6200000000000" означает Рязанскую область. Следующие три цифры соответствуют наименованию района. Комбинация цифр "6201800000000" означает Сасовский район. За ней идущие три цифры отвечают за наименование города. В данном случае все нули свидетельствуют о том, что в адресе нет объекта этого уровня. На последующих уровнях все объекты уже известны, а именно код "6201800005100" обозначает код населенного пункта, а код "62018000051000700" – код улицы.

Таким образом, восстановленный адрес имеет вид: "391450, Рязанская область, Сасовский район, п. Кустаревка, ул. Кооперативная".

Машинные словари и классификаторы удобно использовать при очистке слов в том случае, если они принимают ограниченный, заранее известный набор значений, иначе редкое, но правильно введенное слово будет считаться за ошибку.

Таблица замены

Данный метод разработан исходя из орфо-фонетической специфики русского языка. Дело в том, что многие ошибки в данных возникают либо вследствие незнания грамматических основ, либо из-за опечаток при клавиатурном наборе. Приведем примеры основных причин возникновения "загрязненных" данных:

  1. В безударном слоге гласные буквы слышатся по-другому, например "О" как "А".
  2. Некоторые буквы имеют двойное произношение, например "Ё" как "ЙО".
  3. Звонкие согласные буквы заменяются соответствующими им глухими или наоборот, например "З" на "С".
  4. Удвоенные согласные буквы слышатся как один звук, например "НН" как "Н".
  5. Некоторые буквы исключаются из произношения, например "Ъ".
  6. Русские и английские символы могут иметь одинаковое написание, например "С".
  7. Некоторые буквы похожи по написанию на цифры, например "О" на "0".

Учитывая вышеприведенные замечания, можно заранее сформировать таблицу замены из часто встречающихся неправильных значений, в которых будут специально допущены подобные ошибки. Затем каждому слову нужно сопоставить его правильную запись. Таким образом, если проверяемое слово отыщется в столбце с неправильными значениями, то оно будет исправлено на верное значение, взятое из соседнего столбца таблицы.

Пример

Респонденты при вводе названий улиц часто допускают одни и те же орфо-фонетические ошибки. Сформируем таблицу из подобных значений (таблица 2). В первом столбце запишем данные с ошибками, во второй введем нормальные данные, а в третьем для наглядности укажем тип ошибки из классификации, приведенной выше.

Таблица 2 – Таблица замены для названий улиц

Неправильное название улицы Правильное название улицы Тип ошибки
Алейная Аллейная
4
Бесбожная Безбожная
3
Голенщинская Голенчинская
3
Грибаедова Грибоедова
1
Ecенина Есенина
6
3аречная Заречная
7
Либнехта Либкнехта
5
МОГЭЗ МОГЭС
3
Щёрса Щорса
1
Йахонтова Яхонтова
2

Если проверяемое слово встречается в таблице замены в столбце с неверными значениями, то оно соответственно исправляется на правильное, взятое из соседнего поля.

Данный метод учитывает только орфо-фонетические особенности текста, поэтому он применим всего лишь для исправления грамматических ошибок в персональных данных.

Анализ строк

Данный метод позволяет подобрать неправильно введенному слову такое правильное значение, которое будет максимально похоже на него. Для этого требуется вычислить степень сходства между словами.К способам определения "похожести" строк друг на друга относят:

Вычисление расстояния между словами

Расстояние между строками – это наименьшее число операций модификации над буквами для преобразования одной строки в другую. С помощью данного способа перебираются все возможные варианты записи исследуемого слова таким образом, чтобы оно стало одним из известных правильных значений. Чем меньше проделано операций по преобразованию одного слова в другое, тем больше вероятность того, что найдено именно нужное значение.

Пример

Самым распространенным алгоритмом нахождения расстояния между строками является алгоритм Левенштейна. Основная его идея заключается в том, чтобы рассчитать минимальное количество операций удаления, вставки и замены, предназначенных для преобразования одной строки в другую.

Возьмем два женских имени "Нелли" и "Нэли". Первое из них записано правильно, а другое – с ошибкой. Найдем расстояние между ними, подсчитав количество произведенных операций при преобразовании одного слова в другое:

  1. эли" - "Нели" (операция замены);
  2. "Нели" - "Нелли" (операция вставки).

Таким образом, расстояние между именами "Нелли" и "Нэли" равно двум, так как для модификации одного слова в другое требуется две операции.

Нахождение самой длинной общей подпоследовательности

Максимальной общей подпоследовательностью двух строк называется такая последовательность символов, которая удовлетворяет следующим требованиям:

  • символы, входящие в ее состав, одинаковы для двух строк;
  • символы могут быть расположены на произвольных местах в строках;
  • порядок следования символов в строках один и тот же.

Чем длиннее максимальная общая подпоследовательность двух слов, тем больше возрастает шанс того, что это одно и то же слово.

Пример

Рассмотрим различные способы записи города Гусь-Хрустальный, которые респонденты могли ввести в поля анкеты. Вычислим для каждого случая максимальную общую подпоследовательность и ее длину (таблица 3).

Таблица 3 – Вычисление максимальной общей подпоследовательности

Правильное название Измененное название Максимальная общая подпоследовательность Длина подпоследовательности
г. Гусь-Хрустальный г. Гусь_Хрустальный г. гусьхрустальный
18
город Гусь-Хрустальный г гусь-хрустальный
18
г. Гусьб-Хрустальный г. гусь-хрустальный
19
г. Гусь-Хрусальный г. гусь-хрусальный
18
г. Гсуь-Хрустальный г. гуь-хрустальный
18
г. Г.-Хрустальный г. г-хрустальный
16
Г.-Хруст-ый г.-хрустый
11

Из вышеприведенной таблицы следует что, чем больше длина общей подпоследовательности, тем ближе слова похожи друг на друга, следовательно, тем меньше число допущенных ошибок.

После того как в машинном словаре не было обнаружено исследуемого слова, применяется метод анализа строк. Сначала задается порог определения ошибки. Например, если используется способ вычисления расстояния между строками, то допускают одну или две операции модификации. При расчете максимальной подпоследовательности разница между длиной общей подпоследовательности и длиной эталонного слова не должна быть больше двух. Затем вычисляется степень сходства между исследуемым объектом и объектами из словаря. Если рассчитанная величина не превышает заданного порога и найден лишь единственный вариант, удовлетворяющий этому условию, то искомое слово считается обнаруженным. В случае, когда отыскиваются несколько вариантов записи исследуемого значения, они выдаются эксперту на рассмотрение. Он уже сам выбирает, какое из них лучше всего подходит для данной ситуации.

Анализ строк применяется для очистки данных от ошибок, рассмотренных в предыдущем методе, а также для устранения опечаток, допущенных при вставке, пропуске, замене или перестановке букв. Данный метод эффективен в том случае, когда количество сделанных ошибок в слове небольшое, то есть строки похожи друг на друга, иначе экспертам будет выдаваться слишком большой список возможных значений.

Резюме

Буквально в каждой компании ведется сбор сведений о клиентах, результаты которого требуют последующего анализа, а значит и очистки имеющихся персональных данных. Актуальность этой проблемы растет день ото дня, следовательно, нужно тщательно исследовать методы очистки информации.

Нет универсальных способов устранения ошибок данных, так как вся информация разнородна и специфична. К каждой ситуации применим свой метод, а в некоторых случаях – их комбинации.

В данной статье были рассмотрены самые простые методы очистки данных. Они в основном предназначены для исключения таких видов ошибок, как опечатки и несоответствия форматов. Для более глубокой очистки они не подходят, потому что основываются на заранее предусмотренных ограниченных условиях поиска ошибок и их устранении, а также не выясняют общих закономерностей, которые могут быть установлены при рассмотрении всех изучаемых данных. Для этих целей применяются другие методы, основанные на статистических функциях и алгоритмах Data Mining. О них вы прочтете уже в следующих статьях.

Рассылка материалы о Loginom