Основными функциями поисковых систем являются следующие:
• сбор статистики. Первые роботы были созданы именно для этого и определяли число страниц на сервере, типы присутствующих на нем файлов, их соотношения, средний размер страницы и т. д.;
• обслуживание. Имеются в виду такие функции, как сбор информации о неисправных ссылках и обновленных документах, проверка ссылок сайтов, авторы которые самостоятельно подали регистрационную заявку, и др.;
• поиск новых ресурсов. Необязательно регистрировать сайт собственноручно – это может сделать робот, поскольку он постоянно ищет новые ресурсы. Однако может уйти много времени.
Полнотекстовые поисковые машины индексируют все слова, найденные на Web-странице, за исключением стоп-слов (обычно малоинформативных и имеющих незначительную частоту употребления, например, союзов и предлогов).
Каждый день поисковые системы «прочесывают» Web-сайты и сохраняют текстовую информацию в своих огромных каталогах, чтобы завсегдатаи Internet могли по ключевым словам получить список Web-страниц. Как правило, в результате находятся сотни соответствующих запросу ресурсов, но отображаются они на экране «порциями» по 10–25 записей. В первую очередь выведены наиболее подходящие, согласно оценке поисковой системы, страницы.
В связи с этим становится понятным нарастание интереса разработчиков Web-узлов к поисковым службам, которые оказываются в состоянии обеспечить до 40 %, а в некоторых случаях, и до 70 % обращений к сайту.
Использование поисковых систем для продвижения Web-узла не может гарантировать успеха, если разработчик не учел целый ряд тонкостей этой процедуры. Так, далеко не всегда очевидно, какие из поисковых систем наиболее значимы для увеличения посещаемости. Исчерпывающий ответ на этот вопрос может дать только анализ статистики посещений узла после регистрации. Кроме того, чтобы обеспечить практическую, а не только теоретическую доступность своего сайта из списка отклика по тому или иному запросу, необходимо учитывать особенности функционирования отдельных сервисов.
Поиск информации в русскоязычной части Internet облегчает существование специальных поисковых средств. Принцип их действия аналогичен работе традиционных баз данных, когда в ответ на ввод ключевого слова выдается перечень документов, содержащих искомое понятие. Эти системы являются, по сути, базами таких слов, пополняемыми при периодическом сканировании содержимого серверов Internet. С помощью специальных программ-роботов поисковые системы регулярно обследуют Internet, фиксируя, как вновь появившиеся, так и обновленные ресурсы, и удаляя сведения о ресурсах, вышедших из употребления. Этот колоссальный материал с указанием ссылок на то, где хранится каждое слово, содержится в виде гигантских индексных файлов, к которым и обращаются поисковые системы при конкретном запросе.
Достоинства и недостатки поисковых машин определяются различными характеристиками. Принципиальным является то, насколько полно система обследует документы: все ли слова заносятся в индексные файлы или же только термины из названий, заголовков, первых нескольких строк или страниц текста, и т. д. Важна также периодичность обновления данных и критерии оценки понятий при определении степени их соответствия запросу. Не последнюю роль играют простота и удобство интерфейса, возможность использовать булевы операторы (операторы математической логики) и операторы расстояния между словами в тексте документа, а также дополнительные сервисные функции, например, поиск новостей, музыкальных файлов, товаров, и т. д.
В обслуживание, осуществляемое информационно-поисковой системой, входит предварительная обработка текста, в том числе составление индекса, по которому затем происходит поиск. Такая поисковая система может быть организована как база данных с текстовыми полями. Другой вариант организации – работа с внешними текстами. В этом случае тексты сохраняют первоначальный вид, то есть остаются файлами в файловой системе, страницами на сервере или полями какой-то другой базы данных, а индекс снабжается лишь ссылками на соответствующие источники.
Работа с поисковыми средствами требует от пользователя определенного опыта и навыков.
Индекс поисковой системы
Простейший способ организации индекса для поисковой системы таков: по определенным правилам (используя пробелы, знаки препинания) выделяется и хранится некоторая последовательность из букв и цифр. При этом в качестве адресной информации можно применять путь и имя файла, адрес Web-страницы. По такой схеме действуют разработчики многих поисковых систем, например, одной из самых известных в Интернет – AltaVista компании Dec.
Недостатки указанного способа очевидны при использовании любых языков, в которых слова имеют словоформы, то есть изменяются по числам, родам, падежам, временам и др. Пользователь, начиная поиск, вынужден либо вспоминать, как точно выглядела искомая лексическая единица, либо добросовестно склонять и спрягать слова, чтобы получить полную парадигму.
Частичное решение проблемы – применение шаблонов, например, символа * (астериск) в конце слова. Такой шаблон неплохо подходит для английского языка, где большинство словоформ образуется за счет добавления окончаний – s, – ed и – ing; впрочем, но эта уловка полностью не спасает от «мусора» в результате поиска. С русским языком все обстоит гораздо сложнее. Найти с помощью шаблона многие слова невозможно в принципе, а именно:
• слова, у которых в разных формах меняется основа: идти – шел, плохо – хуже, он – его, человек – люди, ребенок – дети;
• слова с большим количеством словоформ. Привести список всех словоформ русского глагола (с причастиями и деепричастиями – до 250 различных форм) человеку, у которого нет лингвистического образования, очень трудно. Понять, все ли словоформы из этого списка охватываются шаблоном * – еще труднее;
• слова с беглыми гласными и чередованиями (искать – ищу, окно – окон, расти – рос);
• короткие слова (из трех-четырех букв): дом, хор и т. п. Во всех языках, в том числе и в русском, существует общая закономерность: чем короче слово, тем чаще оно используется. Применение шаблона * для поиска такой лексики приводит к большому количеству ненужных ссылок в списке найденных документов.
Существует два противоположных подхода к реализации поиска. Первый – «демократический», при котором поиск должен быть настолько прост, чтобы любой неподготовленный человек мог, не испытывая затруднений, сформулировать вопрос и вскоре получить на него приемлемый ответ. Второй – «элитарный», при котором поиск является тонким инструментом, требующим квалифицированного обращения. Оба подхода справедливы, чем и обусловлено наличие у всех крупных поисковых машин в Internet двух поисковых страниц – для обычного и расширенного поиска.
Полнотекстовый поиск
Когда говорят о полнотекстовом поиске, имеют в виду поиск по всем текстовым полям документа. Под текстом подразумевается набор слов (выделенная по некоторым правилам последовательность букв), чисел и меток (комбинации букв и цифр или букв разных алфавитов). Текстовый документ, как правило, имеет внутреннюю структуру – деление на параграфы, отступ для заголовка, подписи, таблицы. Текстовые редакторы позволяют делать эту структуру достаточно сложной: разбивать текст на колонки, выравнивать его, создавать списки и т. д.
Часто структуру документа при отсутствии жесткой регламентации определяет внутренняя логика. Так, вверху делового письма обычно стоят реквизиты адресата, внизу – подпись и число. Несколько иначе дело обстоит с бланками – в них поля заданы строго. Язык HTML, принятый в Internet как стандарт, помимо разметки информации, предусматривает разметку внутренней структуры: заголовка, тела документа, ключевых слов.
В задачу полнотекстового поиска наряду с дешифровкой разных форматов (это могут быть текстовые поля баз данных, файлы стандартных форматов – TXT, DOC, HTML, RTF, XLS) входит понимание внутренней структуры текста. В идеальном случае поисковая система должна подчиняться настройке на определенные текстовые структуры. Эта настройка может производиться как формальным описанием данных, так и самообучением системы с обратной связью.
Учет морфологии
Системы, разработанные с учетом морфологии языка, способны дифференцировать слова по формам и выполнять анализ с использованием всего спектра словоизменений.
По способу образования словоформ русский язык – флективный, то есть в нем существуют флексии (от лат. flexio – сгибание), или окончания, выражающие грамматическое значение при словоизменении (склонении, спряжении). Русский язык относится также к классу синтетических языков: в слове объединено и лексическое, и грамматическое значение.
Слово во всей совокупности его лексических значений называется лексемой (от греч. lexis – слово, выражение). Лексема – это единица лексического уровня языка; система словоформ, относящихся к одной лексеме, называется ее парадигмой. Другими словами, парадигма слова – это образец типа склонения или спряжения, совокупность всех словоформ, полученных при изменении слова по числам, падежам, родам и временам. Наиболее сложную парадигму в русском языке имеют глаголы. У неизменяемых слов лексема и словоформа совпадают. В словарях каждая лексема представлена одной из словоформ, которая называется словарной или исходной. В русском языке словарными формами являются следующие: