Поисковая машина: средства извлечения знаний (knowledge discovery)

Зачем нужны средства извлечения знаний в поисковой машине

На самом деле данные возможности являются целью разработки всего проекта, так как он изначально был научно-исследовательским и связан с проблемами искусственного интеллекта. Задача извлечения знаний (knowledge discovery) настолько тесно связана с компьютерной лингвистикой и обработкой текстов на естественном языке, что большая часть кода проекта - весь Syntax Engine - нашел свое применение в поисковой системе. Что такое логический вывод и как это будет работать в конечной версии поисковой машины мы покажем на таком примере. Этот пример на самом деле является тестовой задачей для встроенной в проект Пролог-машины, и работал еще в 1998 году, так что рассматривайте нижеследующее как описание реально работающего алгоритма.

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

ввод оператора ответ системы
Каждый человек смертен.  
Сократ является человеком.  
Смертен ли Сократ? Да.
Кто смертен? Сократ.
Почему смертен Сократ? Потому что каждый человек смертен и Сократ является человеком.

Это классический пример на самом деле демонстрирует основные черты системы логического вывода, которая в настоящее время уже есть в поисковой системе FAIND, но пока не задействована. Можно достаточно долго спорить по поводу теоретической перспективности систем формального вывода (коей отчасти является логическая машина Solarix), но это практическая реализация, которая сможет уже в ближайшее время быть использована на обычном персональном компьютере обычным пользователем.

Как это связано с поисковой системой? Посмотрите еще раз на таблицу. Представьте, что ячейки с синим фоном - содержимое предварительно обработанного текстового файла. Ячейки с желтым фоном - паттерны запросов. Очевидно, что искомой информации нет в обработанном документе в явном виде. Обычный поиск текста тут бессмысленен. А вот логическая машина может найти знания - эта та самая процедура knowledge discovery в предельно простом изложении.

Практическая демонстрация технологии

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

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

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

семантический анализатор

Поясним.

Сначала вводятся несколько простых фактов, которые запоминаются в базе знаний (в виде прологовского предиката - см. здесь).

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

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

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

изменено 16-May-09

  © Mental Computing 2010