При сравнении сущностей, которые сохранены в виде строковых значений, необходимо учитывать тот факт, что некоторые фрагменты строк могут отличаться. Например, в данных могут встретиться следующие имена:
Steven M Johnson |
Steve Michael Johnson |
Когда мы сравниваем такие сущности, мы воспринимаем строку не целиком, а по отдельным подстрокам. Поэтому подстроку “Steven” мы сравниваем с подстрокой “Steve,” “M” – с “Michael,” а “Johnson” – с “Johnson”. Это происходит потому, что человек понимает, что имя человека состоит из нескольких элементов – в данном случае это первое, второе имя и фамилия. Поэтому логично сравнивать эти элементы по отдельности. Целая строка “Steven M Johnson” не совсем похожа на “Steve Michael Johnson”, но, если учитывать сходство между отдельными элементами, вероятность идентичности сущностей повышается.
Такой процесс разбиения сущностей на их составные элементы называется нормализацией и представляет собой важный этап подготовки к сравнению подстрок и поиску нечетких соответствий. Это позволяет нам принимать более обоснованные решения относительно схожести строковых значений.
Автоматизация процесса нормализации
Человек легко определяет границу между семантическими компонентами сущностей, а вот компьютеру это сделать не всегда просто. При работе с большими объемами данных возникает необходимость использования автоматизированных средств нормализации сущностей. К счастью, PolyAnalyst предлагает вам решение этой задачи. Если предварительно присвоить отдельным колонкам данных теги, обозначающие семантические категории атрибутов (имена, адреса, даты и др.), PolyAnalyst можно научить нормализовать данные с помощью набора правил. Если вы хотите нормализовать данные, все, что вам нужно сделать, – сообщить системе PolyAnalyst, какие данные содержатся в колонках анализируемой таблицы, остальное PolyAnalyst сделает за вас.
Пример нормализации
Например, рассмотрим следующую строку таблицы:
Steve Michael Johnson | 987 S Woodwillow Dr Apt 9 | 2/12/1982 |
Три колонки содержат разные типы семантической информации – имена, адреса и даты. Если мы соответствующим образом маркируем колонки и выполним нормализацию, в результате мы получим следующее представление информации:
Имя
Первое имя | Второе имя | Фамилия |
Steven | Michael | Johnson |
Адрес
Номер | Модификатор | Улица | Тип | Модификатор 2 |
987 | South | Woodwillow | Drive | Apartment 9 |
Дата
Месяц | День | Год |
2 | 12 | 1982 |
Обратите внимание на то, что исходные сокращения “S”, “Dr” и “Apt” расшифровываются как South, Drive и Appartment, соответственно. Это еще одна функция нормализации. Многие строки могут представлять один и тот же тип информации и быть эквивалентными с семантической точки зрения. Элементы “S” и “South” равны, как и другие аббревиатуры и их расшифровки, поэтому нам следует условно выбрать одну форму представления и нормализовать другие строки под эту выбранную форму. Это позволит повысить эффективность сравнения строк.
Вывод
Таким образом, нормализация – довольно простая операция для аналитика, но она приобретает большое значение в процессе поиска нечетких соответствий в данных. Корректное разбиение данных на составные элементы гарантирует высокую точность результатов такого поиска.