Поиск с GOOGLE
Алгоритмы поиска | Алгоритм поиска |
| Написал В.С. Гусев | |
| Пятница, 01 Сентября 2006 | |
|
Как уже говорилось, применяемые поисковиками алгоритмы являются их ноу-хау. Тем не менее, о некоторых закономерностях, которые используются при разработке алгоритмов и предшествующему их применению анализу текста, поговорить стоит. Некоторые из этих закономерностей были подмечены Джорджем Зипфом (George К. Zipf); он опубликовал свои законы в 1949 году. Пять лет спустя знаменитый математик Беноит Мандлеброт (Benoit Mandlebrot) внес небольшие изменения в формулы Зипфа, добившись более точного соответствия теории практике. Хотя некоторые исследователи и подвергают исследования Зипфа острой критике, без учета подмеченных им закономерностей сегодня не способна работать ни одна система автоматического поиска информации. Зипф заметил, что длинные слова встречаются в тексте реже, чем короткие (по-видимому, это как-то связано с природной ленью человека и вообще любого живого существа). На основе этой закономерности Зипф вывел два закона. Первый из них связывает частоту появления того или иного слова в каком-то тексте (она называется частота вхождения слова) с рангом этой частоты. Наиболее часто встречающимся словам (точнее,частоте их вхождения) присваивается ранг, равный единице. Частоте вхождения тех, которые встречаются чуточку реже, — ранг два и т.д. Зипф обнаружил, что если умножить вероятность обнаружения слова в тексте на ранг его частоты вхождения, то получившаяся величина приблизительно постоянна. В математике такая зависимость отображается гиперболой. Отсюда, в частности, следует, что, если наиболее распространенное слово встречается в тексте 100 раз, то следующее по распространенности встретится не 99 и не 90, а примерно 50 раз (статистика не гарантирует точных цифр). Значение вышеупомянутой постоянной в разных языках различно, но внутри одной языковой группы она остается неизменной. Так, например, для английских текстов постоянная Зипфа равна приблизительно 0,1. Для русского языка постоянная Зипфа равна примерно 0,06-0,07. Второй закон Зипфа констатирует, что частота и количество слов, входящих в текст с этой частотой, связаны между собой. Если построить график, отложив по одной оси (оси X) частоту вхождения слова, а по другой (оси Y) — количество слов, входящих в текст с данной частотой, то получившаяся кривая будет сохранять свои параметры для всех без исключения созданных человеком текстов. Зипф считал, что его законы универсальны. Они применимы не только к текстам. В аналогичную форму выливается, например, зависимость между количеством городов и числом проживающих в них жителей. Характеристики популярности узлов Internet также отвечают законам Зипфа. Не исключено, что в законах отражается "человеческое" происхождение объекта. Как поисковые машины могут использовать законы Зипфа? Для того чтобы ответить на этот вопрос, воспользуемся первым законом Зипфа и построим график зависимости ранга от частоты. Как уже упоминалось, его форма всегда примерно одинакова (рис. 1)
Можно предположить, что наиболее значимые для текста слова лежат в средней части представленной на рис. 1 диаграммы. Оно и понятно: слова, которые встречаются слишком часто, — это предлоги, местоимения и т.д. (в английском, немецком и некоторых других языках — еще и артикли). Редко встречающиеся слова также в большинстве случаев не несут особого смыслового значения, хотя иногда, наоборот, весьма важны для текста (об этом будет сказано чуть ниже). Каждая поисковая система решает, какие слова отнести к наиболее значимым, по-своему, руководствуясь общим объемом текста, частотными словарями и т.п. Если к числу значимых слов будут отнесены слишком многие, важные термины будут забиты "шумом" случайных слов. Если диапазон значимых слов будет установлен слишком узким, за его пределами окажутся термины, несущие основную смысловую нагрузку. Для того чтобы безошибочно сузить диапазон значимых слов, создается словарь "бесполезных" слов, так называемых стоп-слов (а словарь, соответственно, называется стоп-лист). Например, для английского текста стоп-словами станут артикли и предлоги the, a, an, in, to, of, and, that... и др. Для русского текста в стоп-лист могли бы быть включены все предлоги, частицы и личные местоимения: на, не, для, это, я, ты, он, она и др. Но поисковая машина оперирует не с одним документом, а с их огромным количеством. Допустим, нас интересуют статьи академика Вернадского. Если бы поисковая машина оценивала частоту вхождения слова "Вернадский" по вышеописанному алгоритму, эта частота была бы близка к нулю, названное слово не вошло бы в число значимых и документы, содержащие это слово, упоминались бы в конце результатов поиска (а документы-аутсайдеры ни один нормальный пользователь не просматривает). Чтобы такого не произошло, поисковые машины используют параметр, который называется инверсная частота термина. Значение этого параметра тем меньше, чем чаще слово встречается в документах базы данных. На основе этого параметра вычисляют весовой коэффициент, отражающий значимость того или иного термина. Часто встречающееся слово (например, слово иногда) имеет близкий к нулевому весовой коэффициент, слово же Вернадский — напротив, весьма высокий. Современная поисковая машина может вычислять весовые коэффициенты слов с учетом местоположения термина внутри документа, взаимного расположения терминов, морфологических особенностей термина и т.п. В качестве терминов могут выступать не только отдельные слова, но и словосочетания. Такого рода "математический анализ" позволяет поисковой машине с высокой точностью распознать суть текста. Базы данных поисковых машин могут быть устроены по разному. Один из вариантов — пространственно-векторная модель. Она позволяет получить результат, хорошо согласующийся с запросом даже в том случае, если в найденном документе не оказывается одного или нескольких введенных пользователем ключевых слов, но при этом его (документа) смысл все же соответствует запросу. Такой результат достигается благодаря тому, что все документы базы данных размещаются в воображаемом многомерном пространстве (с размерностью выше трех, представить которое весьма трудно). Координаты каждого документа в этом пространстве зависят от содержащихся в нем терминов (от их весовых коэффициентов, положения внутри документа, от "расстояния" между терминами и т.п.). В результате оказывается, что документы с похожим набором терминов располагаются в этом пространстве поблизости. Получив запрос, поисковая система удаляет лишние слова, выделяет значимые термины, вычисляет вектор запроса в пространстве документов и выдает ссылки на документы, попавшие в определенную область пространства. В пространственно-векторной модели термины "взаимодействуют" друг с другом, что повышает релевантность найденных документов запросу пользователя. Поисковая машина, работающая в соответствии с такой моделью, лучше воспринимает запросы на естественном языке, чем машина, использующая более привычную "матричную" модель (в которой просто составляется матрица "термины-документы"; если в документе упоминается какой-то термин, в матрице проставляется число, учитывающее его весовой коэффициент, не упоминается — ставится ноль). Схема работы каждой поисковой системы держится в секрете. Выше мы в весьма упрощенной форме изложили лишь основы алгоритма работы поисковой системы. В реальности механизм индексации и структура базы данных ИПС значительно сложнее. Но и сказанного вполне достаточно для того, чтобы при формулировке запросов вы старались выбирать слова, наиболее точно характеризующие предмет поиска. Впрочем, о точности и полноте поиска мы более подробно поговорим в следующем разделе. Пожалуйста, при использовании статьи ставьте ссылку на сайт источник: http://www.infpartner.com |
| Рынок FOREX |
| Как я начинал на рынке форекс |
| Как я начинал на рынке форекс |
| Заработать на Metacafe.com |
| Как заработать на падении акций? Шо... |
| Как увеличить релевантность объявле... |