Читать «Журнал «Компьютерра» №30 от 23 августа 2005 года» онлайн - страница 68
Компьютерра
Компонента со смыслом орудия действия (инструментив) имеет форму: имен., из + род., с +род., в + вин., на + вин., твор., на + пред. Вот несколько лексических примеров для этой компоненты: мяч, который разбил окно; напильником, которым обрабатывают; на скрипке и т. п. Таких элементарных конструктивно-смысловых компонент для русского предложения насчитывается несколько сотен, и у каждой из них своя морфологическая форма. В результате любую грамматическую конструкцию, которую можно представить в виде комбинации связанных между собой синтаксем, в дальнейшем можно факторизовать (разделить) на данные (слова) и сущности (названия компонент), а также указать схему связей между сущностями (подобие полного синтаксического дерева предложения). По сути, это означает, что любой связный текст может быть представлен в виде иерархической БД. Возможность факторизации текста на естественном языке имеет далеко идущие последствия и для развития других технологий, работающих с текстом как с данными, — в частности, для машинного перевода , text mining, контекстного анализа и пр.
Иерархические модели данных хорошо известны и изучены. Самый известный пример — реестр ОС MS Windows. Использование иерархической модели позволяет строить более сложные индексы, нежели в реляционных БД. Исторически эти модели были первой структурой БД и получили широкое распространение в эпоху мэйнфреймов. Для подобных баз были созданы мощные языки запросов, а по быстродействию они до сих пор вне конкуренции. Реляционные БД со временем оттеснили иерархические, но не факт, что не произойдет частичный реверс.
В принципе, запаковать иерархические данные в реляционную базу нетрудно. Для этого рядом с основной таблицей строится триггером таблица транзитивного замыкания, содержащая все пары предок-потомок, где из предка существует путь в потомки. Несколько ресурсоемко и по быстродействию не то, но работает.
Как же осуществляется интеллектуальный поиск в такой базе данных? Предположим, что нас интересует информация о девушке, играющей по утрам на арфе. Такой запрос можно составить и на естественном языке, и тот же анализ компонент выделит в нем компоненту со значением времени (по утрам) и орудийную компоненту (на арфе). При поиске фрагменты текста, где, например, «девушка по утрам слушала игру на арфе», будут игнорироваться, так как там к игре на арфе относится не орудийная компонента, а компонента сенсорного восприятия. Вот такая избирательность и логичность.
Понятно, что для интеллектуального поиска конструирование модели запроса представляет собой серьезную задачу. Но при указанном подходе вполне реально получать ответы на любые запросы по смыслу документа.
Вот и весь краткий сказ о поиске. Разумеется, из-за недостатка места и времени многое опущено. Но ясно, что существующие сегодня поисковые сервисы позволяют найти все. А завтра, будем надеяться, появятся и те, что из всего найденного выдадут действительно необходимое.