Хранилища данных,
OLAP, CRM: информация
 
 На главную | Книги | Ссылки | Рассылка | Письмо автору | RSS

Подсистема сопоставления записей в хранилище данных (часть 4)

Автор: Дмитрий Орлов

Метод хэширования

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

Хэш-алгоритмы традиционно использовались и используются для связывания записей, в чем можно убедиться, ознакомившись с альманахом Федерального Комитета США по методам статистики, посвященному сопоставлению записей [8]. В этом альманахе описано достаточно много различных методов, так что автор рекомендует потратить время на его изучение.

Самыми известными хэш-преобразованиями являются алгоритмы Soundex [2] и MetaPhone.

Алгоритм MetaPhone адаптирован к особенностям русского языка Петром Каньковски из Новосибирска и прекрасно описан в его статье [6], где можно познакомиться с реализацией данного алгоритма на VB. Заметим, что такой алгоритм преобразования можно реализовать и средствами SQL.

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

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

Возможности оптимизации

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

  1. Оценить значимость каждого слова по частоте его повторяемости, которая легко вычисляется при формировании словаря.
    Если слово встречается слишком часто или слишком редко, то с большой вероятностью оно не оказывает существенного влияния на результат сравнения. Таким образом, используя статистические методы оценки (например, доверительный интервал, рассчитанный с применением критериев Стьюдента) [3] , возможно исключить из процесса сравнения незначимые7 слова. Это позволит улучшить результаты для обоих описанных методов;
  2. Рассчитать хэш для каждого слова, что позволит получить более взвешенные результаты при использовании метода хэширования, т.к. для фразы подобрать хэш функцию гораздо сложнее, чем для отдельного слова.

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

ER диаграмма подсистемы

Стоит напомнить, что одной из целей создания подсистемы является условие ее реализации средствами РСУБД. Исходя из этого условия, была спроектирована некоторая типовая структура РБД, обеспечивающая работоспособность подсистемы и позволяющая использовать всю мощь языка SQL для сопоставления записей.

Логическая схема этой базы данных представлена в виде IDEF1X диаграммы и содержит следующие сущности:

Таблица 2. Сущности подсистемы

Сущность Назначение Атрибуты
Би-грам индекс рабочего набора Содержит би-грамы строк рабочего набора
  • ID элемента
  • Позиция би-грамы
  • Би-грама
Би-грам индекс синонима Содержит би-грамы синонимов эталонного набора
  • ID синонима
  • Позиция би-грамы в синониме
  • Би-грама
Вхождение слова в синоним Содержит информацию о вхождении слов из словаря предметной области
в синонимы эталона
  • ID слова предметной области
  • ID синонима
  • Позиция слова в синониме
Вхождение слова в элемент набора Содержит информацию о вхождении слов из словаря рабочего набора
в строки рабочего набора
  • ID слова рабочего набора
  • ID элемента
  • Позиция слова строке
Предметная область Содержит список предметных областей,
для которых существуют эталонные наборы
  • ID предметной области
  • Наименование предметной области
Рабочий набор Содержит набор записей, которые необходимо
сопоставить с эталонным набором
  • ID элемента
  • Элемент рабочего набора
  • Нормализованный элемент
Синоним эталона Словарь синонимов эталонного набора
  • ID синонима
  • ID эталона
  • Синоним
Слово из предметной области Содержит список слов предметной области (словарь предметной области)
  • ID слова предметной области
  • ID предметной области
  • Слово предметной области
  • Повторяемость слова
Слово из рабочего набора Содержит список слов рабочего набора (словарь рабочего набора)
  • ID слова рабочего набора
  • Слово рабочего набора
  • Повторяемость слова
Тип хэширования Содержит список
доступных хэш-преобразований
  • ID типа хэширования
  • Наименование типа хэширования
Хэш-таблица предметной области Содержит хэш для каждого слова из словаря предметной области
  • ID слова предметной области
  • ID типа хэширования
  • Хэш слова
Хэш-таблица рабочего набора Содержит хэш для каждого слова из словаря рабочего набора
  • ID типа хэширования
  • ID слова рабочего набора
  • Хэш слова
Эталон Содержит строки эталонного набора
  • ID эталона
  • ID предметной области
  • Эталон

Рис.2 IDEF1X диаграмма подсистемы сопоставления записей (щёлкните для просмотра)

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

  • Таким образом, вся работа по связыванию записей, возлагаемая на РСУБД, сводится к трем этапам:
  • Загрузка и инициализация сравниваемых наборов, в ходе которой происходит заполнение нужных таблиц
  • Выполнение объединяющих (INNER JOIN) подзапросов к таблицам:
    • «Синоним» и «Рабочий набор» для строгого сравнения
    • «Би-грам индекс синонима» и «Би-грам индекс рабочего набора» для нечеткого сравнения
    • «Хэш-таблица предметной области» и «Хэш-таблица рабочего набора» для нечеткого сравнения
  • Добавление записей в набор «Синоним» - расширение словаря синонимов.

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

 

7) Однако нужно учесть, что статистика работает с вероятностями, и это не дает 100% уверенности в правомочности исключения из процесса сравнения тех или иных конкретных слов.

8) Не связанные с помощью механизма DRI (Declarative Referential Integrity).

9) Эти таблицы могут быть временными, представлены с помощью VIEW и т.п.

 

Продолжение следует...

 

 

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

 

Если вы нашли в сети интересные ссылки на ресурсы по технологиям хранилищ данных, OLAP, CRM или data mining, и хотите поделиться ими с другими, присылайте их. Я с удовольствием размещу их на этом сайте.

 

Популярные страницы:

Советы разработчику хранилищ данных

OLAP

Моделирование

Книги

Книги на русском языке

Бесплатные книги

Производители OLAP

CRM

Производители CRM

Управление метаданными

Коллекция ссылок


Найти: на

[ На главную | Книги | Ссылки | Рассылка | Письмо автору | Реклама на сайте ]

© Константин Лисянский, 2001-2008.

SpyLOG Rambler's Top100 Rambler's Top100

Используются технологии uCoz