Базы данных: словари синонимов

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

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

У нас есть некая таблица, в которой содержится информация и есть справочник для нее.

Основная таблица
НаименованиеПоле  ПримечаниеКомментарий
idI(4)Ключевое поле записи
.........
obj_idI(4)Код объекта
.........Здесь может быть любой набор полей

Справочник
НаименованиеПоле  ПримечаниеКомментарий
obj_idI(4)Код объекта
obj_nameC(??)Наименование объектаАббстрактная длина поля непредсказуема

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

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

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


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


Позволю себе предположить, что определенные закономерности видны хорошо. Очевидно, что часть проблем решаема программно (пробелы, регистр), но сокращения придется выслеживать вручную. Это означает, что каждая ситуация, непонятная программе, останавливает импорт и спрашивает у пользователя (оператора): «А это что»? Ещё есть город, улица... Но каждый шаг по заполнению справочника синонимов приводит систему в максимально «идеальное» состояние, когда не требуется стороннее вмешательство.

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

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

Таблица словаря синонимов

Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


Обращает на себя внимание отсутствие идентификаторов записей, так как, при названной постановке вопроса, они просто не могут понадобиться.

Алгоритм импорта

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


Доступ к этим материалам предоставляется только зарегистри­рован­ным пользователям!


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

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

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

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

Отсюда вытекает важность задействования обработки посредством таблиц синонимов именно сложного набора символов.


Copyright © 1993–2021 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.