Базы данных: словари синонимов
Такая необычная таблица потребуется во всех случаях импорта данных из сторонних источников, а также для некоторых ситуаций исправления типовых ошибок ручного ввода.
Кроме того, то же самое будет во всех случаях, когда нужна унификация (приведение к единому значению) множества вероятных формулировок.
У нас есть некая таблица, в которой содержится информация и есть справочник для нее.
Основная таблицаНаименование | Поле | Примечание | Комментарий |
id | I(4) | Ключевое поле записи | |
... | ... | ... | |
obj_id | I(4) | Код объекта | |
... | ... | ... | Здесь может быть любой набор полей |
Наименование | Поле | Примечание | Комментарий |
obj_id | I(4) | Код объекта | |
obj_name | C(??) | Наименование объекта | Абстрактная длина поля непредсказуема |
В основную таблицу нужно импортировать информацию из внешнего источника, опираясь на наименования объектов. Кто и как вводил изначальные данные — одному богу известно, но то, что он не дружил ни с мозгом, ни с русским языком — очевидно: каждый объект назван десятком вариантов.
Эти входящие трудно понять, и я всегда привожу пример, с которым пришлось столкнуться лично.
«Замечательная» риелторская программа под названием Маклер хранит данные в текстовом файле, а их источником является кто (что) угодно. Соответственно, нужно импортировать оттуда информацию. Поскольку речь идет о Москве, одним из важнейших первичных полей является ближайшая станция метро.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Позволю себе предположить, что определенные закономерности видны хорошо. Очевидно, что часть проблем решаема программно (пробелы, регистр), но сокращения придется выслеживать вручную. Это означает, что каждая ситуация, непонятная программе, останавливает импорт и спрашивает у пользователя (оператора): «А это что»? Ещё есть город, улица... Но каждый шаг по заполнению справочника синонимов приводит систему в максимально «идеальное» состояние, когда не требуется стороннее вмешательство.
В реальных ситуациях можно и нужно идти путем сложного и многоступенчатого анализа, хотя бы для ряда ситуаций. Сюда же следует отнести, например, наложение фильтров с использованием только частичного набора исходных слов. (Постановка вопроса косвенно затрагивает утопию под названием «Искусственный интеллект».) Но можно поступить немного прямолинейнее.
Итак, таблица синонимов достаточно проста и является дополнительной технической таблицей, используемой только при импорте данных.
Таблица словаря синонимов