14 лет назад 1 июня 2005 в 2:04 84

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

Оказывается, это можно сделать с помощью новейшей, единственной в своем роде программы полнотекстового поиска SearchInform, основанной на уникальной технологии поиска документов, похожих по своему содержанию на заданный. Конечно же, технология SoftInform Search Technology появилась не в один день (запатентована она была еще пару лет назад), но вот возможность “пощупать” ее в виде готовой программы появилась только в марте этого года. Первого марта программа была выпущена в свет, а уже десятого была анонсирована на CeBIT 2005 в Ганновере.

ЧТО ТАМ НА СПИДОМЕТРЕ?
Любая поисковая программа, использующая индексацию, первым делом анализирует область поиска и создает свою базу данных. SearchInform не исключение. Программе было предложено создать индекс для документов, содержащихся в определенных папках на разных дисках, в том числе и в локальной сети.

Поддерживаемых типов документов оказалось вполне достаточно – были выбраны наиболее распространенные форматы текстовых файлов (TXT, DOC, RTF, PDF, HTM, HTML) и отставлены в сторону многие специализированные форматы вроде информационных CRM-систем, СУБД типа Access, MS SQL, Oracle. (Нужно отметить, что для больших организаций, в которых информация как раз и хранится в подобных базах, станет поистине бесценной способность SearchInform индексировать поля практически всех существующих на данный момент систем.)

Проверить работу программы с архивами (ZIP и RAR) было решено отдельно, поэтому и они были исключены из данной области поиска. Тест проводился на не самом навороченном, но вполне современном компьютере – с процессором Pentium 2 ГГц и 512 Мб оперативной памяти.

Скорость обработки документов SearchInform немало нас удивила. Чтобы наша статья не стала похожей на рассказ “о других обычных порошках”, мы будем по возможности эти “другие” программы называть поименно. Так, SearchInform примерно за восемь минут проиндексировала около 50 тыс. документов со скоростью 1,5 Мб/с, что более чем в три раза превышает скорость, показанную “Архивариусом” на этом же компьютере. (При тестировании шести обычных локальных поисковиков в прошлом номере Upgrade Special “Архивариус” (www.wizetech.com) показал лучшую скорость индексации.)

Мощности и поиск
Необходимо отметить, что скорость индексирования SearchInform в большой степени зависит от мощности компьютера. Так, на компьютере с процессором Celeron 850 и 250 Мб ОЗУ те же 50 тыс. документов обрабатывались со скоростью 478 кб/с и, соответственно, в три раза дольше (25 минут). Но и в таких условиях скорость SearchInform превышает показанную “Архивариусом” также в три раза (28,9 Мб/мин против 8,8 Мб/мин).

С точностью до наоборот все происходит на мощнейших компьютерах с серверными конфигурациями, большими объемами ОЗУ (более 1 Гб) и процессорами с частотой более 2 ГГц. Скорость обработки программой областей поиска увеличивается, причем значительно. И так же, как и в предыдущих случаях, она намного превосходит скорость аналогов, в частности продуктов лидера в области обработки информации HummingBird (www.hummingbird.com). Кроме того, необходимо отметить стабильность этой скорости за весь период индексации даже больших массивов данных. Если SearchInform начала работать со скоростью 6 Гб/час, то и закончит работу примерно с той же скоростью, в то время как у некоторых аналогов с течением времени скорость падает.

ОБРАБОТКА АРХИВОВ
Интересные моменты отмечены при работе SearchInform с архивами. Любопытно, что на быстрых машинах система индексирует документы в архивах с той же скоростью, что и неупакованные документы. На медленных же ПК скорость эта падает примерно в 2-3 раза (относительно скорости обработки неархивированных файлов).

Отдельно нужно сказать о работе SearchInform с архивами RAR. Индексировать информацию в этих архивах могут далеко не все аналогичные программы. Из числа известных нам эта возможность имеется в упомянутом “Архивариусе”, Cros (www.cronos.ru) и должна появиться в окончательном релизе новой версии 4.6 “Ищейки Проф Deluxe” (www.isleuthhound.com). К сожалению, автору этих строк в свое время пришлось отказаться от затеи проиндексировать с помощью этих трех программ “Библиоман” – подборку книг, упакованных архиватором RAR, общей численностью около 15 тыс. и размером более 2 Гб (в архивах). Главная причина в том, что упомянутые программы это делали очень медленно, примерно с той же скоростью, что и средства прямого поиска, встроенные в Windows.

SearchInform “щелкает” эти архивы, как семечки. Программа индексирует документы в RAR (на хороших машинах) со скоростью 500 кб/с (27 Мб/мин). При этом у SearchInform нет ограничений ни на общий объем индексируемых архивов, ни на размер полученного в результате этого индекса. В итоге на обработку всей огромной библиотеки с помощью SearchInform ушло чуть меньше полутора часов.

СМЫСЛ ПОИСКА ПОХОЖИХ ДОКУМЕНТОВ
Идея поиска документов, аналогичных одному из найденных (далее для краткости будем называть его просто “поиском похожих”), далеко не нова. Такую возможность уже шесть лет предоставляет пользователям поисковая машина “Яндекс”, имеется она и у “Рамблера”, и у Google. Смысл этой функции вот в чем: стоит в списке найденных страниц отыскать всего одну подходящую, нажать на ссылку “Найти похожие документы” – и система сама отберет другие, подобные текущей, страницы.

И эти страницы, скорее всего, будут соответствовать не “голой” формулировке запроса, а тому, что действительно имел в виду пользователь, поскольку ищется сходство документов в целом, а не отдельных слов. Функция эта особенно эффективна в следующих случаях: если запрос задан приблизительно (вы сами толком не знаете, что хотите найти); запрос носит общий характер и нуждается в конкретизации (торговля, покупка – что именно); если в результатах поиска есть всего пара документов, адекватных запросу.

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

Разумеется, перечисленные поисковые системы – это веб-решения, и “прикрутить” их к локальному поиску на данный момент нет никакой возможности. Точно так же нельзя проверить работу SearchInform при поиске похожих документов на всем информационном пространстве интернета – создание поисковой машины на основе технологии SoftInform Search Technology пока еще в перспективе. Вот почему мы не будем сравнивать качество работы интернет-систем и SearchInform, а рассмотрим лишь отличия поиска похожих от фразового поиска, а также преимущества первого. Тем более что “в чистом виде” поиска похожих (как он реализован в SearchInform) у поисковых систем нет.

ФРАЗОВЫЙ ПОИСК SEARCHINFORM
Рассмотрим работу SearchInform на конкретном примере. Допустим, нам понадобилось найти документы о самообучающемся компьютере будущего HAL из фильма Стэнли Кубрика “2001: Космическая Одиссея” (если вы помните, в прошлом номере мы ставили перед поисковыми системами ту же задачу).

Естественно, если бы мы видели эту программу впервые и не знали о ее возможностях, мы сразу воспользовались бы стандартным фразовым поиском (Phrase search). И нужно сказать, что SearchInform предоставляет множество возможностей, чтобы этот вид поиска был комфортным и эффективным.

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

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

Фразовый поиск SearchInform на запрос “компьютеры будущего” выдал сто документов, содержащих информацию о том, какими будут компьютеры будущего: стеклянными, квантовыми, живыми и так далее. Один текст о нашем разумном компьютере попал на четвертое место, и больше в первых 20 документах про HAL даже не упоминалось. Но нам было доподлинно известно, что кроме этого на наших дисках есть еще семь подобных документов. Как их найти?

Просматривать все документы в списке – занятие продолжительное и неинтересное. Конечно, можно подобрать другие ключевые слова и несколько раз выполнить повторный поиск или поиск в найденном. Однако все это опять привело бы к увеличению продолжительности поиска и потере драгоценного времени. Попробуем воспользоваться поиском похожих – вдруг с ним будет все быстрее?

ПОИСК ПОХОЖИХ SEARCHINFORM
При поиске похожих в SearchInform задействовано все множество слов, встречающихся в документе, с учетом всех словоформ и словаря синонимов. Происходит все следующим образом: в окно запроса копируется весь текст или фрагмент одного из документов, выбирается область поиска и запускается процесс. В результате отображается список документов, отсортированных по релевантности – по сути, по степени похожести заданному. 100% совпадения – найден документ-дубль. Файл с меньшим процентом совпадения только похож по содержанию на текст запроса.

Такой возможности (в чистом виде) не реализовано ни в одной из существующих поисковых систем, будь они хоть для локального поиска, хоть для поиска по интернету. Кто-то спросит: “А почему бы не приспособить для этого имеющиеся сервисы?” Это невозможно сделать даже при отличном знании языка запросов и использовании различных операторов. Вы сможете составить запрос для поиска всех слов из текста размером, скажем, в 100 кб?

Хотя задача эта, на первый взгляд, может показаться довольно простой. Взять все слова документа, выбросить оттуда стоп-слова, добавить синонимы и запросить по полученному списку традиционный поисковик. Может прийти на ум даже несколько вариантов практической реализации этой идеи: все слова запихнуть в запрос через “И” или через “ИЛИ”; сделать несколько групп через “И”, заключить их в скобки, а сами группы записать через “ИЛИ”; вывернуть логику последнего запроса наоборот.
Результатом же подобного запроса к поисковой интернет-системе будет или полный ноль, или, наоборот, такое число документов, что вам не хватит жизни просмотреть их до конца. Последнее – при условии, что система примет на обработку такой дикий запрос, а вы когда-нибудь дождетесь на него ответа.

Кстати, а сколько времени уйдет на составление такого мудреного запроса? За пару суток справитесь.
Теперь посмотрим, как с этой задачей справится SearchInform. Перейдем на вкладку Similar search программы, скопируем весь текст этого нужного нам четвертого документа в окно запроса и запустим поиск. Результат этого поиска более чем удовлетворителен: на первых позициях оказались все восемь документов о нашем суперкомпьютере, ниже – документы, непосредственно относящиеся к теме голосового управления компьютером и распознавания речи.

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

Была предпринята попытка специально подпортить показатели работы программы и спровоцировать ее на выдачу неточных результатов. С этой целью из текста запроса были удалены некоторые фрагменты, на их место вбит набор белиберды, абзацы перемешаны. Системе и в этом случае хватило интеллекта для точного определения похожести искомого документа по отношению к измененному запросу!
Наиболее релевантные документы таковыми и остались (правда, с несколько измененными процентами этого соответствия).

ЧЕТКИЕ ГРАНИЦЫ ПОИСКА ПОХОЖИХ
Отдельно стоит сказать о возможности дополнительной конкретизации поискового запроса с помощью использования так называемых “важных слов” – вспомогательных ключевых слов, на которые программа будет обращать внимание в первую очередь, проводя дополнительный анализ похожести.
Списки таких слов можно сделать заранее, воспользовавшись специальным менеджером, а при поиске выбрать один из них. Но можно поступить иначе, быстро задав необходимые важные слова для текущего запроса. Оказывается, поле Look for программы позволяет не только вводить текст для выполнения поиска, но и эффективно использовать функцию “важных слов”. Нужно просто выделить эти слова в тексте, нажать правую кнопку мыши и выбрать в контекстном меню пункт “Select important keywords”. Выбранное слово подсветится желтым цветом.

Эта возможность особенно полезна, когда из всей кучи похожих документов необходимо выделить часть по какой-то наиболее интересующей нас теме. Представьте несколько тысяч “горячих новостей”, скажем, о событиях в Азии, связанных с цунами. Если вам требуется найти информацию о мощности землетрясения по шкале Рихтера, то список интересующих вас документов будет явно отличаться от поиска тех же новостей, но по теме гуманитарной помощи пострадавшему региону. Вот тут и пригодится возможность SearchInform разобрать подобные документы по смежным темам.
Важными словами для первой группы поиска будут “мощность”, “шкала”, “Рихтер”; для второй – “помощь”, “гуманитарная”, “пострадавшие”.

Результирующие списки, полученные по запросу с использованием различных важных слов, перестроятся и будут отличаться друг от друга. При этом первые два-три результата останутся прежними. Это вполне логично, так как подразумевает высокую похожесть текста (если текст очень похож, то, как ни расставляй акценты, он таким же похожим и останется). Но дальше пойдут изменения согласно выбранным “важным словам”. Таким образом, система поиска похожих меняет релевантность найденных документов в зависимости от заданных ключевых слов. Это позволяет, не просматривая весь список похожих документов, обратить внимание, в первую очередь, именно на нужную вам информацию.

ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ПРИ ПОИСКЕ ПОХОЖИХ
Поиск похожих в отличие от фразового поиска не стандартен. Однако элементов управления этим поиском не так уж много, так что разобраться с ним совсем не сложно. По умолчанию в программе включена опция использования списка синонимов. Списки эти можно создавать как для каждого из используемых языков, так и для конкретного случая (адаптировать под конкретный поиск). Введение дополнительных синонимов позволяет не только ускорить поиск информации, но и сделать его более точным.

Как и при фразовом поиске, пункт Relevance позволяет ограничивать число выводимых в окно результатов. Но в отличие от вкладки Phrase search ограничение здесь идет не по строго заданному количеству результатов, а по отсеиванию документов с процентом релевантности ниже значения, установленного с помощью ползунка Relevance. Предыдущие запросы к программе можно быстро повторить, всего лишь выбрав их из выпадающего списка по кнопке Last searches.

ПРОБЛЕМЫ, РЕШАЕМЫЕ SOFTINFORM SEARCH TECHNOLOGY
Кто-то из терпеливых читателей, внимательно прочитав наш рассказ об уникальной поисковой технологии, может задать вопрос: “Каким же образом все это применить в “народном хозяйстве”?”
Данная технология уже испытана и с успехом используется, например, в проекте оказания юридических услуг по телефону, где крайне важна скорость поиска информации. И она наверняка будет полезной в любой базе знаний, аналитической службе или службе техподдержки крупной фирмы. Универсальность и эффективность этой технологии позволят решить многие проблемы и задачи, возникающие в процессе работы с информацией.

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

– Анализ похожести. Еще сложнее дело обстоит с документами, которые уже введены в базу. Сравнение подручными средствами документов в информационной базе, содержащей, скажем, 1 млн. файлов, займет около месяца. Данная технология позволяет решить и эту проблему. С помощью функции построения отчетов анализа похожести выполнить все необходимые операции можно будет гораздо быстрее – примерно за пару дней.

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

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

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

Сюда же можно отнести решение проблемы спама поисковых машин с помощью дорвеев (скрытых страниц с ключевыми словами, перенаправляющих на основные страницы сайта и использующихся для искусственного повышения рейтинга ресурсов в поисковиках) и проблемы e-mail-спама (анализ на более высоком и интеллектуальном уровне, что может быть гораздо надежней существующих систем).

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