Журнал «Компьютерра» №30 от 23 августа 2005 года - Компьютерра. Страница 26

Имеют место случаи и точечной ИП. Пример такого рода – исключение из поискового образа слов, занимающих атрибутивные именные позиции. Это когда по запросу «Баня» отыскивались совсем другие учреждения, по той простой причине, что в их адресной информации была указана остановка «Баня».

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

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

Интеллектуальный поиск

Идея опоры поискового сервиса на предварительное смысловое описание документов весьма популярна, примером чему может быть инициатива Semantic Web консорциума W3C, но встает вопрос о массовой организации такого описания. Для научного сегмента Сети это, может, и будет сделано, но говорить о больших шансах на массовое внедрение инициативы было бы преждевременно. Более вероятно скорое появление промежуточных решений.

Принципиальные подвижки в поисковом сервисе большинство специалистов связывает с реализацией поисковых алгоритмов, основанных на работе со смыслом содержащейся в документе информации, – «интеллектуальным» поиском.

Конструирование алгоритмов и поддержка такого поиска требует несравненно более основательного языкового обеспечения. Основная проблема здесь – в понимании смысла языкового сообщения. Понимание или интерпретация языкового знака (а значит, и всего текста) эквивалентны тому, что его значение возможно установить. Это реально, если есть критерии опознания в предложении компонент, несущих элементарный смысл. Но необходимы описания этих смысловых компонент, их связей, соответствующие словари и т. п. Как оказалось, ситуация здесь достаточно благоприятная. Функциональное описание перечня всех (!) конструктивно-смысловых единиц и типов связи русского предложения приведено в Синтаксическом словаре[Золотова Г.А. Синтаксический словарь: Репертуар элементарных единиц русского синтаксиса. Изд. 2-е, испр. – 440 с] Галины Александровны Золотовой. Правда, необходимы еще и электронные словари с соответствующим лексическим материалом, а это хоть и понятная, но очень ресурсоемкая работа.

Для наглядности приведем примеры некоторых элементарных структурно-смысловых компонент (синтаксем). Компонента со смыслом местонахождения или местопребывания, называемая в Словаре локативом, имеет форму предлога и имени места в соответствующем падеже (форму предлог + падеж имеют все именные синтаксемы): для родительного это предлоги между (скал, двух сосен, ухабов), против (клумбы, памятника, парадного), среди (двора, улицы), у (входа); для творительного – за (поворотом), между (двумя горами), над ( рестораном), перед (домом), под (Москвой); для предложного – в (доме), на (берегу), при (дороге). Как видно, компонента местонахождения имеет известную и «закрепленную» за нею конструкцию, общую для разных лексических примеров, и, таким образом, вполне может быть опознана в тексте.

Компонента со смыслом орудия действия (инструментив) имеет форму: имен., из + род., с +род., в + вин., на + вин., твор., на + пред. Вот несколько лексических примеров для этой компоненты: мяч, который разбил окно; напильником, которым обрабатывают; на скрипке и т. п. Таких элементарных конструктивно-смысловых компонент для русского предложения насчитывается несколько сотен, и у каждой из них своя морфологическая форма. В результате любую грамматическую конструкцию, которую можно представить в виде комбинации связанных между собой синтаксем, в дальнейшем можно факторизовать (разделить) на данные (слова) и сущности (названия компонент), а также указать схему связей между сущностями (подобие полного синтаксического дерева предложения). По сути, это означает, что любой связный текст может быть представлен в виде иерархической БД. Возможность факторизации текста на естественном языке имеет далеко идущие последствия и для развития других технологий, работающих с текстом как с данными, – в частности, для машинного перевода , text mining, контекстного анализа и пр.

Иерархические модели данных хорошо известны и изучены. Самый известный пример – реестр ОС MS Windows. Использование иерархической модели позволяет строить более сложные индексы, нежели в реляционных БД. Исторически эти модели были первой структурой БД и получили широкое распространение в эпоху мэйнфреймов. Для подобных баз были созданы мощные языки запросов, а по быстродействию они до сих пор вне конкуренции. Реляционные БД со временем оттеснили иерархические, но не факт, что не произойдет частичный реверс.

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

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

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

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

Крупнейшие поисковые сервисы – Google, Yahoo! и MSN – к попыткам научить поисковые движки понимать запросы пользователей и документы видимого интереса не испытывают (вполне возможно, что причины их равнодушия к этим разработкам схожи с соображениями Александра Садовского, изложенными в предыдущей врезке). Интернет-пользователи привыкли к особенностям поисковых машин, знают их сильные и слабые стороны и по большей части удовлетворены имеющимися возможностями. Если в ближайшие несколько лет в поисковых технологиях и появятся революционные качественные изменения, то инициатором их появления станут, скорее всего, не известные лидеры рынка, а компании, которые обыватель с поиском вообще не связывает. В частности, очень активно сейчас развиваются корпоративные поисковые сервисы, которым зачастую ставится задача не только найти похожий по смыслу документ, но и проанализировать его, найти документы с ним связанные, и т. д. И здесь привычным поиском по ключевым словам не обойдешься.

Над технологией, способной обойти привычные ограничения, уже несколько лет работает исследовательский центр IBM. В августе этого года корпорация даже пообещала выложить в Сеть для свободной загрузки исходные коды своей платформы UIMA (Unstructured Information Management Architecture, www.alphaworks.ibm.com/tech/uima).