Как найти информацию в интернете?
Анонимный вопрос
21 апреля 2018 · 18,4 K
Engineer – programmer ⚡⚡ Разбираюсь в компьютерах, технике, электронике, интернете и… · 12 нояб 2018 ·
Любую информацию в интернете можно найти с помощью адресной строки или поисковой строки. С поисковой все просто: открываете одну из поисковых систем, в поисковую строку вводите запрос и обрабатываете результат поиска. К основным “поисковикам” относятся следующие:
- Яндекс
- Rambler
- Yahoo
- Bing
- Поиск@Mail.Ru
- Nigma
С адресной строкой посложнее: требуется ввести запрос в формате адреса сайта в интернете, т.е. ввести его имя на латинице и домен. У каждой страны свой домен: в России — ru, в Беларуси — by, в Украине — ua. Например, требуется найти “Как разброкировать iPhone?”. В адресную строку следует ввести адрес сайта, который соответствует вашей задаче, к примеру, “razblokirivkaiphone(точка)ru или (точка) ua. Не факт, что сайт с таким именем существует, поэтому следует перебрать много вариантов с названием сайта и его доменом.
8,2 K
Комментировать ответ…Комментировать…
Грамотно пользуйтесь поисковыми сервисами и сможете найти в интернете ну почти всё. Не вводите в поисковой запрос слишком короткую фразу, пусть это будет как минимум два ключевых слова. Слишком длинный запрос тоже не следует вводить. Также пользуйтесь расширенным поиском, в котором вы отсечете всю ненужную информацию и, возможно, найдете именно то, что искали. Не… Читать далее
3,2 K
есть вопрос. как сделать сортировку англоязычный сайтов, имеющих на сайтах странички на русском языке?
Комментировать ответ…Комментировать…
Любой пользователь интернета знает — то, что нужно, можно с легкостью найти в поисковой системе. Но бывают такие ситуации, когда какую-то информацию нужно найти на определенном сайте.
Какие у нас есть варианты?
Найти на конкретном сайте строку поиска.
Самый простой, но не всегда верный вариант. Дело в том, что не всегда движки сайта умеют искать информацию внутри сайта, как правило, поиск на сайтах создан примитивно.
Например, на сайте есть статья «Как поют ласточки», она спокойно найдется по фразе «поют ласточки», но не найдется по запросу «поёт ласточка», потому что, в большинстве случаев, поиск внутри сайта не учитывает морфологию слов.
Поиск внутри сайта через форму лучше осуществлять по ключевым словам, пробуя различные варианты.
Воспользоваться поисковыми системами
Основные поисковые системы умеют искать информацию на конкретном сайте. Чтобы найти нужное на сайте через Яндекс, нужно воспользоваться оператором host:
Запрос будет выглядеть так: тормозит видео в браузере host:poznyaev.ru
С помощью оператора host мы указали поисковой машине адрес сайта, на котором нужно поискать данную информацию. Если на искомом сайте есть поддомены, то лучше использовать оператор site, по аналогии с host.
В Google данная манипуляция также работает, но нужно использовать оператор site:
Поисковые машины также поддерживают оператор *, чтобы сузить границы поиска, например, если вам нужно найти информацию в определенной категории сайта: site.ru/windows/*
Кстати, если сайт хорошо ранжируется в поисковике, можно и не использовать операторы. Достаточно после запросы вписать URL адрес сайта.
Стоит понимать, что поисковая система, как правило, не индексирует на 100% все страницы сайта и также может не найти нужные данные. Индексирование зависит от многих параметров: качества страниц, скорости работы сайта, наложенных фильтров и ограничений на сайт…
Рекомендую прочесть: Робот-штатив превращает телефон в личного оператора
Факторов ранжирования сотни, все их невозможно перечислить в одной статье, поэтому на 100% гарантировать положительный результат поиска на сайте никто не может.
Если вы уверены, что информация была или должна быть на конкретном сайте, то тут единственный совет — написать владельцу сайта.
А для того, чтобы найти какой-либо текст на конкретной странице сайта, нам не нужны поисковые системы. Открываем страницу в браузере и нажимаем Ctrl + F — откроется строка поиска по странице. Естественно, никакой морфологии такой поиск учитывать не будет. В мобильном браузере форма поиска вызывается через меню браузера и действует аналогично.
А у вас были проблемы с поиском информации на сайтах? Напишите в комментарии 👇
Подписывайтесь, чтобы не пропустить новые публикации:
Телеграм-канал | Группа Вконтакте | Одноклассники
Открываем Google, пишем то, что нужно найти в специальную строку и жмем Enter. «Все просто, чему вы меня учить собрались», — думаете вы. Ага, не тут-то было, друзья.
После сегодняшней статьи большинство из вас поймет, что делали это неправильно. Но этот навык – один из самых важных для продуктивного сотрудника. Потому что в 2021 году дергать руководство по вопросам, которые, как оказалось, легко гуглятся, — моветон.
Ну и на форумах не даст вам упасть лицом в грязь, чего уж там.
Затягивать не будем, ниже вас ждут фишки, которые облегчат вам жизнь.
Кстати, вы замечали, что какую бы ты ни ввёл проблему в Google, это уже с кем-то было? Серьёзно, даже если ввести запрос: «Что делать, если мне кинули в лицо дикобраза?», то на каком-нибудь форуме будет сидеть мужик, который уже написал про это. Типа, у нас с женой в прошлом году была похожая ситуация.
Ваня Усович, Белорусский и российский стендап-комик и юморист
Фишка 1
Если вам нужно найти точную цитату, например, из книги, возьмите ее в кавычки. Ниже мы отыскали гениальную цитату из книги «Мастер и Маргарита».
Фишка 2
Бывает, что вы уже точно знаете, что хотите найти, но гугл цепляет что-то схожее с запросом. Это мешает и раздражает. Чтобы отсеять слова, которые вы не хотите видеть в выдаче, используйте знак «-» (минус).
Вот, например, поисковой запрос ненавистника песочного печенья:
Фишка 3
Подходит для тех, кто привык делать всё и сразу. Уже через несколько долей секунд вы научитесь вводить сразу несколько запросов.
*барабанная дробь*
Для этого нужна палочка-выручалочка «|». Например, вводите в поисковую строку «купить клавиатуру | компьютерную мышь» и получаете страницы, содержащие «купить клавиатуру» или «купить компьютерную мышь».
Совет: если вы тоже долго ищете, где находится эта кнопка, посмотрите над Enter.
Фишка 4
Выручит, если вы помните первое и последнее слово в словосочетании или предложении. А еще может помочь составить клевый заголовок. Короче, знак звездочка «*» как бы говорит гуглу: «Чувак, я не помню, какое слово должно там быть, но я надеюсь, ты справишься с задачей».
Фишка 5
Если вы хотите найти файл в конкретном формате, добавьте к запросу «filetype:» с указанием расширения файла: pdf, docx и т.д., например, нам нужно было отыскать PDF-файлы:
Фишка 6
Чтобы найти источник, в котором упоминаются сразу все ключевые слова, перед каждым словом добавьте знак «&». Слов может быть много, но чем их больше, тем сильнее сужается зона поиска.
Кстати, вы еще не захотели есть от наших примеров?
Фишка 7
Признавайтесь, что вы делаете, когда нужно найти значение слова. «ВВП что такое» или «Шерофобия это». Вот так пишете, да?
Гуглить значения слов теперь вам поможет оператор «define:». Сразу после него вбиваем интересующее нас слово и получаем результат.
— Ты сильный?!
— Я сильный!
— Ты матерый?!
— Я матерый!
— Ты даже не знаешь, что такое сдаваться?!
— Я даже не знаю, что такое «матерый»!
Фишка 8
Допустим, вам нужно найти статью не во всём Интернете, а на конкретном сайте. Для этого введите в поисковую строку «site:» и после двоеточия укажите адрес сайта и запрос. Вот так все просто.
Фишка 9
Часто заголовок полностью отображает суть статьи или материалов, которые вам нужны. Поэтому в некоторых случаях удобно пользоваться поиском по заголовку. Для этого введите «intitle:», а после него свой запрос. Получается примерно так:
Фишка 10
Чтобы расширить количество страниц в выдаче за счёт синонимов, указывайте перед запросом тильду «~». К примеру, загуглив «~cтранные имена», вы найдете сайты, где помимо слова «странные» будут и его синонимы: «необычные, невероятные, уникальные».
Ну и, конечно, не забывайте о расширенных инструментах, которые предлагает Google. Там вы можете установить точный временной промежуток для поиска, выбирать язык и даже регион, в которым был опубликован материал.
В комментариях делитесь, о каких функциях вы знали, а о каких услышали впервые 🙂
Кстати, еще больше интересных фишек в области онлайн-образования, подборки с полезными ресурсами и т.д., вы найдете в нашем Telegram-канале. Присоединяйтесь!
Мы разбирали старые письма и наткнулись на статью, которую писал Илья Сегалович iseg для журнала «Мир Internet» в далёком 2002 году. В ней он сравнивает интернет и поисковые системы с чудесами света, размышляет о поисковых технологиях и вспоминает их историю. Несмотря на загруженность по работе, Илья написал статью в рекордные сроки и даже снабдил достаточно подробным словарём терминов, который особенно интересно читать в наши дни. Нам не удалось найти электронную версию журнала со статьей, поэтому сегодня мы публикуем её в нашем блоге, первым автором которого, к слову, был Илья.
В мире написаны сотни поисковых систем, а если считать функции поиска, реализованные в самых разных программах, то счет надо вести на тысячи. И как бы ни был реализован процесс поиска, на какой бы математической модели он ни основывался, идеи и программы, реализующие поиск, достаточно просты. Хотя эта простота, относится, по-видимому, к той категории, про которую говорят «просто, но работает». Так или иначе, но именно поисковые системы стали одним из двух новых чудес света, предоставив Homo Sapiens неограниченный и мгновенный доступ к информации. Первым чудом, очевидно, можно считать Интернет как таковой, с его возможностями всеобщей коммуникации.
Поисковые системы в исторической перспективе
Существует распространенное убеждение, что каждое новое поколение программ совершенней предыдущего. Дескать, раньше все было несовершенно, зато теперь повсюду царит чуть ли не искусственный интеллект. Иная крайняя точка зрения состоит в том, что «все новое – это хорошо забытое старое». Думаю, что применительно к поисковым системам истина лежит где-то посередине.
Но что же поменялось в действительности за последние годы? Не алгоритмы и не структуры данных, не математические модели. Хотя и они тоже. Поменялась парадигма использования систем. Проще говоря, к экрану со строчкой поиска подсели домохозяйка, ищущая утюг подешевле, и выпускник вспомогательного интерната в надежде найти работу автомеханика. Кроме появления фактора, невозможного в доинтернетовскую эру – фактора тотальной востребованности поисковых систем – стала очевидна еще пара изменений. Во-первых, стало ясно, что люди не только «думают словами», но и «ищут словами». В ответе системы они ожидают увидеть слово, набранное в строке запроса. И второе: «человека ищущего» трудно «переучить искать», так же как трудно переучить говорить или писать. Мечты 60-х – 80-х об итеративном уточнении запросов, о понимании естественного языка, о поиске по смыслу, о генерации связного ответа на вопрос с трудом выдерживают сейчас жестокое испытание реальностью.
Алгоритм + Структура данных = Поисковая система
Как и любая программа, поисковая система оперирует со структурами данных и исполняет алгоритм. Разнообразие алгоритмов не очень велико, но оно есть. Не считая квантовых компьютеров, которые обещают нам волшебный прорыв в «алгоритмической сложности» поиска, и про которые автору почти ничего не известно, есть четыре класса поисковых алгоритмов. Три алгоритма из четырех требуют «индексирования», предварительной обработки документов, при котором создается вспомогательный файл, сиречь «индекс», призванный упростить и ускорить сам поиск. Это алгоритмы инвертированных файлов, суффиксных деревьев, сигнатур. В вырожденном случае предварительный этап индексирования отсутствует, а поиск происходит при помощи последовательного просмотра документов. Такой поиск называется прямым.
Прямой поиск
Простейшая его версия знакома многим, и нет программиста, который бы не написал хотя бы раз в своей жизни подобный код:
Несмотря на кажущуюся простоту, последние 30 лет прямой поиск интенсивно развивается. Было выдвинуто немалое число идей, сокращающих время поиска в разы. Эти алгоритмы подробно описаны в разнообразной литературе, есть их сводки и сопоставления. Неплохие обзоры прямых методов поиска можно найти в учебниках, например Седжвика или Кормена. При этом надо учесть, что новые алгоритмы и их улучшенные варианты появляются постоянно.
Хотя прямой просмотр всех текстов – довольно медленное занятие, не следует думать, что алгоритмы прямого поиска не применяются в интернете. Норвежская поисковая система Fast (www.fastsearch.com) использовала чип, реализующий логику прямого поиска упрощенных регулярных выражений, и разместила 256 таких чипов на одной плате. Это позволяло Fast-у обслуживать довольно большое количество запросов в единицу времени.
Кроме того, есть масса программ, комбинирующих индексный поиск для нахождения блока текста с дальнейшим прямым поиском внутри блока. Например, весьма популярный, в том числе и в Рунете, glimpse.
Вообще, у прямых алгоритмов есть принципиально беспроигрышные отличительные черты. Например, неограниченные возможности по приближенному и нечеткому поиску. Ведь любое индексирование всегда сопряжено с упрощением и нормализацией терминов, а, следовательно, с потерей информации. Прямой же поиск работает непосредственно по оригинальным документам безо всяких искажений.
Инвертированный файл
Эта простейшая структура данных, несмотря на свое загадочное иностранное название, интуитивно знакома как любому грамотному человеку, так и любому программисту баз данных, даже не имевшему дело с полнотекстовым поиском. Первая категория людей знает, что это такое, по «конкордансам» – алфавитно упорядоченным исчерпывающим спискам слов из одного текста или принадлежащих одному автору (например «Конкорданс к стихам А. С. Пушкина», «Словарь-конкорданс публицистики Ф. М. Достоевского»). Вторые имеют дело с той или иной формой инвертированного списка всякий раз, когда строят или используют «индекс БД по ключевому полю».
Проиллюстрируем эту структуру при помощи замечательного русского конкорданса – «Симфонии», выпущенной Московской патриархией по тексту синодального перевода Библии.
Перед нами упорядоченный по алфавиту список слов. Для каждого слова перечислены все «позиции», в которых это слово встретилось. Поисковый алгоритм состоит в отыскании нужного слова и загрузке в память уже развернутого списка позиций.
Чтобы сэкономить на дисковом пространстве и ускорить поиск, обычно прибегают к двум приемам. Во-первых, можно сэкономить на подробности самой позиции. Ведь чем подробнее задана такая позиция, например, в случае с «Симофонией» это «книга+глава+стих», тем больше места потребуется для хранения инвертированного файла.
В наиподробнейшем варианте в инвертированном файле можно хранить и номер слова, и смещение в байтах от начала текста, и цвет и размер шрифта, да много чего еще. Чаще же просто указывают только номер документа, скажем, книгу Библии, и число употреблений этого слова в нем. Именно такая упрощенная структура считается основной в классической теории информационного поиска – Information Retrieval (IR).
Второй (никак не связанный с первым) способ сжатия: упорядочить позиции для каждого слова по возрастанию адресов и для каждой позиции хранить не полный ее адрес, а разницу от предыдущего. Вот как будет выглядеть такой список для нашей странички в предположении, что мы запоминаем позицию вплоть до номера главы:
ЖЕНЩИНА: [Быт.1],[+11],[0],[+2],[+4],[+2],[+4],..
Дополнительно на разностный способ хранения адресов накладывают какой-нибудь простенький способ упаковки: зачем отводить небольшому целому числу фиксированное «огромное» количество байт, ведь можно отвести ему почти столько байт, сколько оно заслуживает. Здесь уместно упомянуть коды Голомба или встроенную функцию популярного языка Perl: pack(“w”)
.
В литературе встречается и более тяжелая артиллерия упаковочных алгоритмов самого широкого спектра: арифметический, Хафман, LZW и т. д. Прогресс в этой области идет непрерывно. На практике в поисковых системах они используются редко: выигрыш невелик, а мощности процессора расходуются неэффективно.
В результате всех описанных ухищрений размер инвертированного файла, как правило, составляет от 7 до 30 процентов от размера исходного текста, в зависимости от подробности адресации.
Занесены в «Красную книгу»
Неоднократно предлагались другие, отличные от инвертированного и прямого поиска алгоритмы и структуры данных. Это, прежде всего, суффиксные деревья (см. книги Манбера и Гоннета), а также сигнатуры.
Первый из них функционировал и в интернете, будучи запатентованным алгоритмом поисковой сиcтемы OpenText. Мне доводилось встречать суффиксные индексы в отечественных поисковых системах.
Второй – метод сигнатур – представляет собой преобразование документа к поблочным таблицам хеш-значений его слов – «сигнатуре» и последовательному просмотру «сигнатур» во время поиска.
Широкого распространения ни тот ни другой метод не получили, а, следовательно, не заслужили и подробного обсуждения в этой небольшой статье.
Математические модели
Приблизительно 3 из 5 поисковых систем и модулей функционируют безо всяких математических моделей. Точнее сказать, их разработчики не ставят перед собой задачу реализовывать абстрактную модель и/или не подозревают о существовании оной. Принцип здесь прост: лишь бы программа хоть что-нибудь находила. Абы как. А дальше сам пользователь разберется.
Однако, как только речь заходит о повышении качества поиска, о большом объеме информации, о потоке пользовательских запросов, кроме эмпирически проставленных коэффициентов полезным оказывается оперировать каким-нибудь пусть и несложным теоретическим аппаратом. Модель поиска – это некоторое упрощение реальности, на основании которого получается формула (сама по себе никому не нужная), позволяющая программе принять решение: какой документ считать найденным и как его ранжировать. После принятия модели коэффициенты часто приобретают физический смысл и становятся понятней самому разработчику, да и подбирать их становится интересней.
Все многообразие моделей традиционного информационного поиска (IR) принято делить на три вида: теоретико-множественные (булевская, нечетких множеств, расширенная булевская), алгебраические (векторная, обобщенная векторная, латентно-семантическая, нейросетевая) и вероятностные.
Булевское семейство моделей, по сути, – первое, приходящее на ум программисту, реализующему полнотекстовый поиск. Есть слово – документ считается найденным, нет – не найденным. Собственно, классическая булевская модель – это мостик, связывающий теорию информационного поиска с теорией поиска и манипулирования данными.
Критика булевской модели, вполне справедливая, состоит в ее крайней жесткости и непригодности для ранжирования. Поэтому еще в 1957 году Joyce и Needham (Джойс и Нидхэм) предложили учитывать частотные характеристики слов, чтобы «… операция сравнения была бы отношением расстояния между векторами…». Векторная модель и была с успехом реализована в 1968 году отцом-основателем науки об информационном поиске Джерардом Солтоном (Gerard Salton)* в поисковой системе SMART (Salton’s Magical Automatic Retriever of Text). Ранжирование в этой модели основано на естественном статистическом наблюдении, что чем больше локальная частота термина в документе (TF) и больше «редкость» (то есть обратная встречаемость в документах) термина в коллекции (IDF), тем выше вес данного документа по отношению к термину.
* Gerard Salton (Sahlman) 1927-1995. Он же Селтон, он же Залтон и даже Залман, он же Жерар, Герард, Жерард или даже Джеральд в зависимости от вкуса переводчика и допущенных опечаток.
http://www.cs.cornell.edu/Info/Department/Annual95/Faculty/Salton.html
http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/s/Salton:Gerald.html
http://www.cs.virginia.edu/~clv2m/salton.txt
Обозначение IDF ввела Karen Sparck-Jones (Карен Спарк-Джоунз) в 1972 в статье про различительную силу (term specificity). С этого момента обозначение TF*IDF широко используется как синоним векторной модели.
Наконец, в 1977 году Robertson и Sparck-Jones (Робертсон и Спарк-Джоунз) обосновали и реализовали вероятностную модель (предложенную еще в 1960-м), также положившую начало целому семейству. Релевантность в этой модели рассматривается как вероятность того, что данный документ может оказаться интересным пользователю. При этом подразумевается наличие уже существующего первоначального набора релевантных документов, выбранных пользователем или полученных автоматически при каком-нибудь упрощенном предположении. Вероятность оказаться релевантным для каждого следующего документа рассчитывается на основании соотношения встречаемости терминов в релевантном наборе и в остальной, «нерелевантной» части коллекции. Хотя вероятностные модели обладают некоторым теоретическим преимуществом, ведь они располагают документы в порядке убывания «вероятности оказаться релевантным», на практике они так и не получили большого распространения.
Я не собираюсь вдаваться в подробности и выписывать громоздкие формулы для каждой модели. Их сводка вместе с обсуждением занимает в сжатом виде 35 страниц в книжке «Современный информационный поиск». Важно только заметить, что в каждом из семейств простейшая модель исходит из предположения о взаимонезависимости слов и обладает простым условием фильтрации: документы, не содержащие слова запроса, никогда не бывают найденными. Продвинутые («альтернативные») модели каждого из семейств не считают слова запроса взаимонезависимыми, а, кроме того, позволяют находить документы, не содержащие ни одного слова из запроса.
Поиск «по смыслу»
Способность находить и ранжировать документы, не содержащие слов из запроса, часто считают признаком искусственного интеллекта или поиска по смыслу и относят априори к преимуществам модели. Вопрос о том, так ли это или нет, мы оставим за рамками данной статьи.
Для примера опишу лишь одну, пожалуй, самую популярную модель, работающую по смыслу. В теории информационного поиска данную модель принято называть латентно-семантическим индексированием (иными словами, выявлением скрытых смыслов). Эта алгебраическая модель основана на сингулярном разложении прямоугольной матрицы, ассоциирующей слова с документами. Элементом матрицы является частотная характеристика, отражающая степень связи слова и документа, например, TF*IDF. Вместо исходной миллионно-размерной матрицы авторы метода Furnas и Deerwester предложили использовать 50-150 «скрытых смыслов», соответствующих первым главным компонентам ее сингулярного разложения.
Сингулярным разложением действительной матрицы A размеров m*n называется всякое ее разложение вида A = USV, где U – ортогональная матрица размеров m*m, V – ортогональная матрица размеров n*n, S – диагональная матрица размеров m*n, элементы которой sij= 0, если i не равно j, и sii = si >= 0. Величины si называются сингулярными числами матрицы и равны арифметическим значениям квадратных корней из соответствующих собственных значений матрицы AAT. В англоязычной литературе сингулярное разложение принято называть SVD-разложением.
Давным-давно доказано, что если оставить в рассмотрении первые k сингулярных чисел (остальные приравнять нулю), мы получим ближайшую из всех возможных аппроксимацию исходной матрицы ранга k (в некотором смысле ее «ближайшую семантическую интерпретацию ранга k»). Уменьшая ранг, мы отфильтровываем нерелевантные детали; увеличивая, пытаемся отразить все нюансы структуры реальных данных.
Операции поиска или нахождения похожих документов резко упрощаются, так как каждому слову и каждому документу сопоставляется относительно короткий вектор из k смыслов (строки и столбцы соответствующих матриц). Однако по причине малой ли осмысленности «смыслов», или по какой иной, но использование LSI в лоб для поиска так и не получило распространения. Хотя во вспомогательных целях (автоматическая фильтрация, классификация, разделение коллекций, предварительное понижение размерности для других моделей) этот метод, по-видимому, находит применение.
Оценка качества
Consistency checking has shown that the overlap of relevant documents between any two assesors is on the order of 40% on average…cross-assesor recall and precision of about 65% …This implies a practical upper bound on retrieval system performance of 65% …
Donna Harman
What we have learned, and not learned, from TRECПеревод
«… проверка устойчивости показала, что перекрытие релевантных документов между любыми двумя асессорами примерно 40% в среднем… точность и полнота измеренная между асессорами около 65%… Это накладывает практическую верхнюю границу на качество поиска в районе 65%…»
Какова бы ни была модель, поисковая система нуждается в «тюнинге» – оценке качества поиска и настройке параметров. Оценка качества – идея, фундаментальная для теории поиска. Ибо именно благодаря оценке качества можно говорить о применимости или неприменимости той или иной модели и даже обсуждать их теоретичеcкие аспекты.
В частности, одним из естественных ограничений качества поиска служит наблюдение, вынесенное в эпиграф: мнения двух «асессоров» (специалистов, выносящих вердикт о релевантности) в среднем не совпадают друг с другом в очень большой степени! Отсюда вытекает и естественная верхняя граница качества поиска, ведь качество измеряется по итогам сопоставления с мнением асессора.
Обычно для оценки качества поиска меряют два параметра:
- точность (precision) – доля релевантного материала в ответе поисковой системы
- полнота (recall) – доля найденных релевантных документов в общем числе релевантных документов коллекции
Именно эти параметры использовались и используются на регулярной основе для выбора моделей и их параметров в рамках созданной Американским Институтом Стандартов (NIST) конференции по оценке систем текстового поиска (TREC – text retrival evaluation conference)*. Начавшаяся в 1992 году консорциумом из 25 групп, к 12 году своего существования конференция накопила значительный материал, на котором до сих пор оттачиваются поисковые системы. К каждой очередной конференции готовится новый материал (так называемая «дорожка») по каждому из интересующих направлений. «Дорожка» включает коллекцию документов и запросов. Приведу примеры:
— Дорожка произвольных запросов (ad hoc) – присутствует на всех конференциях
— Многоязычный поиск
— Маршрутизация и фильтрации
— Высокоточный поиск (с единственным ответом, выполняемый на время)
— Взаимодействие с пользователем
— Естестственно-языковая «дорожка»
— Ответы на «вопросы»
— Поиск в «грязных» (только что отсканированных) текстах
— Голосовой поиск
— Поиск в очень большом корпусе (20GB, 100GB и т. д.)
— WEB корпус (на последних конференциях он представлен выборкой по домену .gov)
— Распределенный поиск и слияние результатов поиска из разных систем
* Материалы конференции публично доступны по адресу trec.nist.gov/pubs.html.
Не только поиск
Как видно из «дорожек» TREC, к самому поиску тесно примыкает ряд задач, либо разделяющих с ним общую идеологию (классификация, маршрутизация, фильтрация, аннотирование), либо являющихся неотъемлемой частью поискового процесса (кластеризация результатов, расширение и сужение запросов, обратная связь, «запросо-зависимое» аннотирование, поисковый интерфейс и языки запросов). Нет ни одной поисковой системы, которой бы не приходилось решать на практике хотя бы одну из этих задач.
Зачастую наличие того или иного дополнительного свойства является решающим доводом в конкурентной борьбе поисковых систем. Например, краткие аннотации состоящие из информативных цитат документа, которыми некоторые поисковые системы сопровождают результаты своей работы, помогают им оставаться на полступеньки впереди конкурентов.
Обо всех задачах и способах их решения рассказать невозможно. Для примера рассмотрим «расширение запроса», которое обычно производится через привлечение к поиску ассоциированных терминов. Решение этой задачи возможно в двух видах – локальном (динамическом) и глобальном (статическом). Локальные техники опираются на текст запроса и анализируют только документы, найденные по нему. Глобальные же «расширения» могут оперировать тезаурусами, как априорными (лингвистическими), так и построенными автоматически по всей коллекции документов. По общепринятому мнению, глобальные модификации запросов через тезаурусы работают неэффективно, понижая точность поиска. Более успешный глобальный подход основан на построенных вручную статических классификациях, например, ВЕБ-директориях. Этот подход широко используется в интернет-поисковиках в операциях сужения или расширения запроса.
Нередко реализация дополнительных возможностей основана на тех же самых или очень похожих принципах и моделях, что и сам поиск. Сравните, например, нейросетевую поисковую модель, в которой используется идея передачи затухающих колебаний от слов к документам и обратно к словам (амплитуда первого колебания – все тот же TF*IDF), с техникой локального расширения запроса. Последняя основана на обратной связи (relevance feedback), в которой берутся наиболее смыслоразличительные (контрастные) слова из документов, принадлежащих верхушке списка найденного.
К сожалению, локальные методы расширения запроса, несмотря на эффектные технические идеи типа «Term Vector Database» и очевидную пользу, все еще остаются крайне «дорогим» удовольствием (в смысле вычислительных ресурсов).
Лингвистика
Немного в стороне от статистических моделей и структур данных стоит класс алгоритмов, традиционно относимых к лингвистическим. Точно границы между статистическими и лингвистическими методами провести трудно. Условно можно считать лингвистическими методы, опирающиеся на словари (морфологические, синтаксические, семантические), созданные человеком. Хотя считается доказанным, что для некоторых языков (например, для английского) лингвистические алгоритмы не вносят существенного прироста точности и полноты, все же основная масса языков требует хотя бы минимального уровня лингвистической обработки. Не вдаваясь в подробности, приведу только список задач, решаемых лингвистическими или окололингвистическими приемами:
— автоматическое определение языка документа
— токенизация (графематический анализ): выделение слов, границ предложений
— исключение неинформативных слов (стоп-слов)
— лемматизация (нормализация, стемминг): приведение словоизменительных форм к «словарной», в том числе и для слов, не входящих в словарь системы
— разделение сложных слов (компаундов) для некоторых языков (например, немецкого)
— дизамбигуация: полное или частичное снятие омонимии
— выделение именных групп
Еще реже в исследованиях и на практике можно встретить алгоритмы словообразовательного, синтаксического и даже семантического анализа. При этом под семантическим анализом чаще подразумевают какой-нибудь статистический алгоритм (LSI, нейронные сети), а если толково-комбинаторные или семантические словари и используются, то в крайне узких предметных областях.
Поиск в вебе
“Things that work well on TREC often do not produce good results on the web… Some argue that on the web, users should specify more accurately what they want and add more words to their query. We disagree vehemently with this position. If a user issues a query like «Bill Clinton» they should get reasonable results since there is a enormous amount of high quality information available on this topic”
Sergei Brin, Larry Page
The Anatomy of a Large-Scale Hypertextual Web Search EngineПеревод
«То, что хорошо работает в TREC, часто не срабатывает в вебе… некоторые утверждают, что в вебе пользователи обязаны более точно специфицировать то, что им нужно, писать побольше слов в запросах. Мы категорически не согласны с такой точкой зрения. Если люди спрашивают «Билл Клинтон», они должны получать осмысленные результаты, так как в вебе полным полно качественной информации на эту тему…»
«I was struck when a Google person told me at SIGIR that the most recent Google ranking algorithm completely ignores anything discovered at TREC, because all the good Ad Hoc ranking algorithms developed over the 10 years of TREC get trashed by spam»
Mark SandersonПеревод
«Я был потрясен, когда кто-то из Google сказал мне, что они вообще не используют ничего наработанного в TREC, потому что все алгоритмы, заточеные на дорожке «произвольных запросов» спам расшибает вдребезги…»
Пора вернуться к теме, с которой началась эта статья: что же изменилось в поисковых системах за последнее время?
Прежде всего, стало очевидно, что поиск в вебе, не может быть сколько-нибудь корректно выполнен, будучи основан на анализе (пусть даже сколь угодно глубоком, семантическом и т. п.) одного лишь текста документа. Ведь внетекстовые (off-page) факторы играют не меньшую, а порой и бо́льшую роль, чем текст самой страницы. Положение на сайте, посещаемость, авторитетность источника, частота обновления, цитируемость страницы и ее авторов – все эти факторы невозможно сбрасывать со счета.
Cтав основным источником получения справочной информации для человеческого вида, поисковые системы стали основным источником трафика для интернет-сайтов. Как следствие, они немедленно подверглись «атакам» недобросовестных авторов, желающих любой ценой оказаться в первых страницах результатов поиска. Искусственная генерация входных страниц, насыщенных популярными словами, техника клоакинга, «слепого текста» и многие другие приемы, предназначенные для обмана поисковых систем, мгновенно заполонили Интернет.
Кроме проблемы корректного ранжирования, создателям поисковых систем в Интернете пришлось решать задачу обновления и синхронизации колоссальной по размеру коллекции с гетерогенными форматами, способами доставки, языками, кодировками, массой бессодержательных и дублирующихся текстов. Необходимо поддерживать базу в состоянии максимальной свежести (на самом деле достаточно создавать иллюзию свежести – но это тема отдельного разговора), может быть учитывать индивидуальные и коллективные предпочтения пользователей. Многие из этих задач никогда прежде не рассматривались в традиционной науке информационного поиска.
Для примера рассмотрим пару таких задач и практических способов их решения в поисковых системах для интернета.
Качество ранжирования
Не все внетекстовые критерии полезны в равной мере. Именно ссылочная популярность и производные от нее оказались решающим фактором, поменявшим в 1999-2000 годах мир поисковых систем и вернувшим им преданность пользователей. Так как именно с ее помощью поисковые системы научились прилично и самостоятельно (без подпорок из вручную отредактированных результатов) ранжировать ответы на короткие частотные запросы, составляющие значительную часть поискового потока.
Простейшая идея глобального (то есть статического) учета ссылочной популярности состоит в подсчете числа ссылок, указывающих на страницы. Примерно то, что в традиционном библиотековедении называют индексом цитирования. Этот критерий использовался в поисковых системах еще до 1998 года. Однако он легко подвергается накрутке, кроме того, он не учитывает вес самих источников. Естественным развитием этой идеи можно считать предложенный Брином и Пейджем в 1998 году алгоритм PageRank – итеративный алгоритм, подобный тому, что используется в задаче определения победителя в шахматном турнире по швейцарской системе. В сочетании с поиском по лексике ссылок, указывающих на страницу (старая, весьма продуктивная идея, которая использовалась в гипертекстовых поисковых системах еще в 80-е годы), эта мера позволила резко повысить качество поиска.
Немного раньше, чем PageRank, был предложен локальный (то есть динамический, основанный на запросе) алгоритм учета популярности – HITS, который не используется на практике в основном из-за вычислительной дороговизны. Примерно по той же причине, что и локальные (т. е. динамические) методы, оперирующие словами.
Оба алгоритма, их формулы, условия сходимости подробно описаны, в том числе и в русскоязычной литературе. Отмечу только, что расчет статической популярности не является самоценной задачей, он используется в многочисленных вспомогательных целях: определение порядка обхода документов, ранжирование поиска по тексту ссылок и т. д. Формулы расчета популярности постоянно улучшают, в них вносят учет дополнительных факторов: тематической близости документов (например, популярная поисковая система www.teoma.com), их структуры и т.п., позволяющих понизить влияние непотизма. Интересной отдельной темой является эффективная реализация соответствующих структур данных.
Качество индекса
Хотя размер базы в интернете на поверхностный взгляд не кажется критическим фактором, это не так. Недаром рост посещаемости таких машин, как Google и Fast, хорошо коррелирует именно с ростом их баз. Основная причина: «редкие» запросы, то есть те, по которым находится менее 100 документов, составляют в сумме около 30% от всей массы поисков – весьма значительную часть. Этот факт делает размер базы одним из самых критичных параметров системы.
Однако рост базы, кроме технических проблем с дисками и серверами, ограничивается логическими: необходимостью адекватно реагировать на мусор, повторы и т.п. Не могу удержаться, чтобы не описать остроумный алгоритм, применяемый в современных поисковых системах для того, чтобы исключить «очень похожие документы».
Происхождение копий документов в Интернете может быть различным. Один и тот же документ на одном и том же сервере может отличаться по техническим причинам: быть представлен в разных кодировках и форматах; содержать переменные вставки – рекламу или текущую дату.
Широкий класс документов в вебе активно копируется и редактируется – ленты новостных агентств, документация и юридические документы, прейскуранты магазинов, ответы на часто задаваемые вопросы и т. д. Популярные типы изменений: корректура, реорганизация, ревизия, реферирование, раскрытие темы и т. д. Наконец, публикации могут быть скопированы с нарушением авторских прав и изменены злонамеренно с целью затруднить их обнаружение.
Кроме того, индексация поисковыми машинами страниц, генерируемых из баз данных, порождает еще один распространенный класс внешне мало отличающихся документов: анкеты, форумы, страницы товаров в электронных магазинах.
Очевидно, что с полными повторами проблем особых нет, достаточно сохранять в индексе контрольную сумму текста и игнорировать все остальные тексты с такой же контрольной суммой. Однако этот метод не работает для выявления хотя бы чуть-чуть измененных документов.
Для решения этой задачи Udi Manber (Уди Манбер) (автор известной программы приближенного прямого поиска agrep) в 1994 году предложил идею, а Andrei Broder (Андрей Бродер) в 1997-м придумал название и довел до ума алгоритм «шинглов» (от слова shingles, «черепички», «чешуйки»). Вот его примерное описание.
Для каждого десятисловия текста рассчитывается контрольная сумма (шингл). Десятисловия идут внахлест, с перекрытием, так, чтобы ни одно не пропало. А затем из всего множества контрольных сумм (очевидно, что их столько же, сколько слов в документе минус 9) отбираются только те, которые делятся на, скажем, 25. Поскольку значения контрольных сумм распределены равномерно, критерий выборки никак не привязан к особенностям текста. Ясно, что повтор даже одного десятисловия – весомый признак дублирования, если же их много, скажем, больше половины, то с определенной (несложно оценить вероятность) уверенностью можно утверждать: копия найдена! Ведь один совпавший шингл в выборке соответствует примерно 25 совпавшим десятисловиям в полном тексте!
Очевидно, что так можно определять процент перекрытия текстов, выявлять все его источники и т.п. Этот изящный алгоритм воплотил давнюю мечту доцентов: отныне мучительный вопрос «у кого студент списывал этот курсовик» можно считать решенным! Легко оценить долю плагиата в любой статье. (В том числе и в данной; надеюсь, что 0%; можете проверить.)
Чтобы у читателя не создалось впечатление, что информационный поиск исключительно западная наука, упомяну про альтернативный алгоритм определения почти-дубликатов, придуманный и воплощенный у нас в Яндексе. В нем используется тот факт, что большинство поисковых систем уже обладают индексом в виде инвертированного файла (или инвертированным индексом), и этот факт удобно использовать в процедуре нахождения почти-дубликатов.
Цена одного процента
Архитектурно современные поисковые системы представляют собой сложные многокомпьютерные комплексы. Начиная с некоторого момента по мере роста системы основная нагрузка ложится вовсе не на робота, а на поиск. Ведь в течение секунды приходят десятки и сотни запросов.
Для того чтобы справиться с этой проблемой, индекс разбивают на части и раскладывают по десяткам, сотням и даже тысячам компьютеров. Сами компьютеры, начиная с 1997 года (поисковая система Inktomi) представляют собой обычные 32-битные машины (Linux, Solaris, FreeBSD, Win32) с соответствующими ограничениями по цене и производительности. Исключением из общего правила осталась лишь AltaVista, которая с самого начала использовала относительно «большие» 64-битные компьютеры Alpha.
Поисковые системы для Интернета (и, вообще, все большие поисковые сиcтемы) могут ускорять свою работу при помощи техник эшелонирования и прюнинга. Первая техника состоит в разделении индекса на заведомо более релевантную и менее релевантную части. Поиск сначала выполняется в первой части, а затем, если ничего не найдено, или найдено мало, поисковая система обращается ко второй части индекса. Pruning (от англ. отсечение, сокращение) состоит в том, чтобы динамически прекращать обработку запроса после накопления достаточного количества релевантной информации. Бывает еще статический pruning, когда на основании некоторых допущений индекс сокращается за счет таких документов, которые заведомо никогда не будут найдены.
Отдельная проблема – организовать бесперебойную работу многокомпьютерных комплексов, бесшовное обновление индекса, устойчивость к сбоям и задержкам с ответами отдельных компонент. Для общения между поисковыми серверами и серверами, собирающими отклики и формирующими страницу выдачи разрабатываются специальные протоколы.
Заметьте, что один процент производительности (скажем, неудачно написанный оператор в каком-нибудь цикле) для десятитысячнокомпьютерной системы стоит примерно ста компьютеров. Поэтому, можно себе представить, как вычищается код, отвечающий за поиск и ранжирование результатов, как оптимизируется использование всех возможных ресурсов: каждого байта памяти, каждого обращения к диску.
Решающее значение приобретает продумывание архитектуры всего комплекса с самого начала, так как любые изменения, например, добавление необычного фактора при ранжировании или сложного источника данных становится исключительно болезненной и сложной процедурой. Очевидно, системы, стартующие позже, имеют в этой ситуации преимущество. Но инертность пользователей весьма высока, так, например, требуется 2-4 года, чтобы сформированная многомиллионная аудитория сама, пусть и медленно, но перешла на непривычную поисковую систему, даже при наличии у нее неоспоримых преимуществ. В условиях жесткой конкуренции это порой неосуществимо.
ГЛОССАРИЙ
Асессор (assesor, эксперт) – специалист в предметной области, выносящий заключение о релевантности документа, найденного поисковой системой.
Булевская модель (boolean, булева, булевая, двоичная) – модель поиска, опирающаяся на операции пересечения, объединения и вычитания множеств.
Векторная модель – модель информационного поиска, рассматривающая документы и запросы как векторы в пространстве слов, а релевантность – как расстояние между ними.
Вероятностная модель – модель информационного поиска, рассматривающая релевантность как вероятность соответствия данного документа запросу на основании вероятностей соответствия слов данного документа идеальному ответу.
Внетекстовые критерии (off-page, внестраничные) – критерии ранжирования документов в поисковых системах, учитывающие факторы, не содержащиеся в тексте самого документа и не извлекаемые оттуда никаким образом.
Входные страницы (doorways, hallways) – страницы, созданные для искусственного повышения ранга в поисковых системах (поискового спама). При попадании на них пользователя перенаправляют на целевую страницу.
Дизамбигуация (tagging, part of speech disambiguation, таггинг) – выбор одного из нескольких омонимов c помощью контекста; в английском языке часто сводится к автоматическому назначению грамматической категории «часть речи».
Дубликаты (duplicates) – разные документы с идентичным, с точки зрения пользователя, содержанием; приблизительные дубликаты (near duplicates, почти-дубликаты), в отличие от точных дубликатов, содержат незначительные отличия.
Иллюзия свежести – эффект кажущейся свежести, достигаемый поисковыми системами в интернете за счет более регулярного обхода тех документов, которые чаще находятся пользователями.
Инвертированный файл (inverted file, инверсный файл, инвертированный индекс, инвертированный список) – индекс поисковой системы, в котором перечислены слова коллекции документов, а для каждого слова перечислены все места, в которых оно встретилось.
Индекс (index, указатель) – см. индексирование.
Индекс цитирования (citation index) – число упоминаний (цитирований) научной статьи, в традиционной библиографической науке рассчитывается за промежуток времени, например, за год.
Индексирование (indexing, индексация) – процесс составления или приписывания указателя (индекса) – служебной структуры данных, необходимой для последующего поиска.
Информационный поиск (Information Retrieval, IR) – поиск неструктурированной информации, единицей представления которой является документ произвольных форматов. Предметом поиска выступает информационная потребность пользователя, неформально выраженная в поисковом запросе. И критерий поиска, и его результаты недетермированы. Этими признаками информационный поиск отличается от «поиска данных», который оперирует набором формально заданных предикатов, имеет дело со структурированной информацией и чей результат всегда детерминирован. Теория информационного поиска изучает все составляющие процесса поиска, а именно, предварительную обработку текста (индексирование), обработку и исполнение запроса, ранжирование, пользовательский интерфейс и обратную связь.
Клоакинг (cloaking) – техника поискового спама, состоящая в распознании авторами документов робота (индексирующего агента) поисковой системы и генерации для него специального содержания, принципиально отличающегося от содержания, выдаваемого пользователю.
Контрастность термина – см. различительная сила.
Латентно-семантическое индексирование – запатентованный алгоритм поиска по смыслу, идентичный факторному анализу. Основан на сингулярном разложении матрицы связи слов с документами.
Лемматизация (lemmatization, нормализация) – приведение формы слова к словарному виду, то есть лемме.
Накрутка поисковых систем – см. спам поисковых систем.
Непотизм – вид спама поисковых систем, установка авторами документов взаимных ссылок с единственной целью поднять свой ранг в результатах поиска.
Обратная встречаемость в документах (inverted document frequency, IDF, обратная частота в документах, обратная документная частота) – показатель поисковой ценности слова (его различительной силы); «обратная» говорят, потому что при вычислении этого показателя в знаменателе дроби обычно стоит число документов, содержащих данное слово.
Обратная связь – отклик пользователей на результат поиска, их суждения о релевантности найденных документов, зафиксированные поисковой системой и использующиеся, например, для итеративной модификации запроса. Следует отличать от псевдообратной связи – техники модификации запроса, в которой несколько первых найденных документов автоматически считаются релевантными.
Омонимия – см. полисемия.
Основа – часть слова, общая для набора его словообразовательных и словоизменительных (чаще) форм.
Поиск по смыслу – алгоритм информационного поиска, способный находить документы, не содержащие слов запроса.
Поиск похожих документов (similar document search) – задача информационного поиска, в которой в качестве запроса выступает сам документ и необходимо найти документы, максимально напоминающие данный.
Поисковая система (search engine, SE, информационно-поисковая система, ИПС, поисковая машина, машина поиска, «поисковик», «искалка») – программа, предназначенная для поиска информации, обычно текстовых документов.
Поисковое предписание (query, запрос) – обычно строчка текста.
Полисемия (polysemy, homography, многозначность, омография, омонимия) — наличие нескольких значений у одного и того же слова.
Полнота (recall, охват) – доля релевантного материала, заключенного в ответе поисковой системы, по отношению ко всему релевантному материалу в коллекции.
Почти-дубликаты (near-duplicates, приблизительные дубликаты) – см. дубликаты.
Прюнинг (pruning) – отсечение заведомо нерелевантных документов при поиске с целью ускорения выполнения запроса.
Прямой поиск – поиск непосредственно по тексту документов, без предварительной обработки (без индексирования).
Псевдо-обратная связь – см. обратная связь.
Различительная сила слова (term specificity, term discriminating power, контрастность, различительная сила) – степень ширины или узости слова. Слишком широкие термины в поиске приносят слишком много информации, при это существенная часть ее бесполезна. Слишком узкие термины помогают найти слишком мало документов, хотя и более точных.
Регулярное выражение (regualr expression, pattern, «шаблон», реже «трафарет», «маска») – способ записи поискового предписания, позволяющий определять пожелания к искомому слову, его возможные написания, ошибки и т. д. В широком смысле – язык, позволяющий задавать запросы неограниченной сложности.
Релевантность (relevance, relevancy) – соответствие документа запросу.
Сигнатура (signature, подпись) – множество хеш-значений слов некоторого блока текста. При поиске по методу сигнатур все сигнатуры всех блоков коллекции просматриваются последовательно в поисках совпадений с хеш-значениями слов запроса.
Словоизменение (inflection) – образование формы определенного грамматического значения, обычно обязательного в данном грамматическом контексте, принадлежащей к фиксированному набору форм (парадигме), характерному для слов данного типа. В отличие от словообразования, никогда не приводит к смене типа и порождает предсказуемое значение. Словоизменение имен называют склонением (declension), а глаголов – спряжением (conjugation).
Словообразование (derivation) – образование слова или основы из другого слова или основы. Чаще приводит к смене типа и к образованию слов, имеющих идеосинкразическое значение.
Смыслоразличительный – см. различительная сила.
Спам поисковых систем (spam, спамдексинг, накрутка поисковых систем) – попытка воздействовать на результат информационного поиска со стороны авторов документов.
Статическая популярность – см. PageRank.
Стемминг – процесс выделения основы слова.
Стоп-слова (stop-words) – те союзы, предлоги и другие частотные слова, которые данная поисковая система исключила из процесса индексирования и поиска для повышения своей производительности и/или точности поиска.
Суффиксные деревья, суффиксные массивы (suffix trees, suffix arrays, PAT-arrays) – индекс, основанный на представлении всех значимых суффиксов текста в структуре данных, известной как бор (trie). Суффиксом в этом индексе называют любую «подстроку», начинающуюся с некоторой позиции текста (текст рассматривается как одна непрерывная строка) и продолжающуюся до его конца. В реальных приложениях длина суффиксов ограничена, а индексируются только значимые позиции – например, начала слов. Этот индекс позволяет выполнять более сложные запросы, чем индекс, построенный на инвертированных файлах.
Токенизация (tokenization, lexical analysis, графематический анализ, лексический анализ) – выделение в тексте слов, чисел и иных токенов, в том числе, например, нахождение границ предложений.
Точность (precision) — доля релевантного материала в ответе поисковой системы.
Хеш-значение (hash-value) – значение хеш-функции (hash-function), преобразующей данные произвольной длины (обычно, строчку) в число фиксированного порядка.
Частота (слова) в документах (document frequency, встречаемость в документах, документная частота) – число документов в коллекции, содержащих данное слово.
Частота термина (term frequency, TF) – частота употреблений слова в документе.
Шингл – (shingle) – хеш-значение непрерывной последовательности слов текста фиксированной длины.
PageRank – алгоритм расчета статической (глобальной) популярности страницы в интернете, назван в честь одного из авторов — Лоуренса Пейджа. Соответствует вероятности попадания пользователя на страницу в модели случайного блуждания.
TF*IDF – численная мера соответствия слова и документа в векторной модели; тем больше, чем относительно чаще слово встретилось в документе и относительно реже – в коллекции.
Список литературы
Modern Information Retrieval
Baezo-Yates R. and Ribeiro-Neto B.
ACM Press Addison Wesley, 1999
The Connectivity Server: fast access to linkage information on the Web
K. Bharat, A. Broder, M. Henzinger, P. Kumara, and S. Venkatasubramanian
WWW7, 1998
http://www7.scu.edu.au/programme/fullpapers/1938/com1938.htm
The Anatomy of a Large-Scale Hypertextual Web Search Engine
S.Brin and L. Page
WWW7, 1998
http://www7.scu.edu.au/programme/fullpapers/1921/com1921.htm
Syntactic Clustering of the Web
Andrei Z. Broder, Steven C. Glassman, Mark S. Manasse
WWW6, 1997
Indexing by Latent Semantic Analysis
S. Deerwester, S.T. Dumais, G.W. Furnas, T.K. Landauer, R. Harshman
JASIS, 1990
http://citeseer.nj.nec.com/deerwester90indexing.html
The approximation of one matrix by another of lower rank
C. Eckart, G. Young
Psychometrika, 1936
Description and performance analysis of signature file methods
C. Faloutsos, S. Christodoulakis
ACM TOIS 1987
FAST PMC — The Pattern Matching Chip
http://www.fast.no/product/fastpmc.html
www.idi.ntnu.no/grupper/KS-grp/microarray/slides/heggebo.pdf (ссылка больше не работает, на web.archive.org ее тоже нет – прим. ред.)
Information retrieval using a Singular Value Decomposition Model of Latent Semantic Structure
G.W. Furnas, S. Deerwester, S.T. Dumais, T.K. Landauer, R. A. Harshman, L.A. Streeter, and K.E. Lochbaum
ACM SIGIR, 1988
Glimpse, Webglimpse, Unix-based search software…
http://webglimpse.org
Examples of PAT applied to the Oxford English Dictionary
Gonnet G.
University of Waterloo, 1987
What we have learned, and not learned, from TREC
Donna Harman
http://irsg.eu.org/irsg2000online/papers/harman.htm
The Thesaurus Approach to Information Retrieval
T. Joyce and R.M. Needham
American Documentation, 1958
Authoritative Sources in a Hyperlinked Environment
Jon M. Kleinberg
JACM, 1998
http://citeseer.nj.nec.com/87928.html
An efficient method to detect duplicates of Web documents with the use of inverted index
S. Ilyinsky, M. Kuzmin, A. Melkov, I. Segalovich
WWW2002, 2002
Suffix Arrays: A New Method for On-line String Searches
U. Manber, G. Myers
1st ACM-SIAM Symposium on Discrete Algorithms, 1990
Finding similar files in a large file system
U. Manber
USENIX Conference, 1994
M.E. Maron and J.L. Kuhns
On relevance, probabilistic indexing and information retrieval
Journal of the ACM, 1960
Open Text Corporation
http://www.opentext.com
S.E. Robertson and Sparck Jones K.
Relevance Weighting of Search Terms
JASIS, 1976
Algorithms in C++, Robert Sedgewick
Addison-Wesley, 1992
A Statistical Interpretation of Term Specificity and Its Application in Retrieval
Karen Sparck Jones
Journal of Documentation, 1972
The Term Vector Database: fast access to indexing terms for Web pages
R. Stata, K. Bharat, F. Maghoul
WWW9, 2000
http://www9.org/w9cdrom/159/159.html
Natural Language Information Retrieval
Tomek Strzalkowski (ed.)
Kluwer Academic Publishers, 1999
Алгоритмы: построение и анализ, Т. Кормен, Ч. Лейзерсон, Р.Ривест
МЦНМО, 2000
https://www.ozon.ru/context/detail/id/33769775/
Симфония или словарь-указатель к священному писанию ветхого и нового завета. Составители М.А. Бондарев, М.С.Косьян, С.Ю.Косьян
Изд-во Московской патриархии, 1995
Мы живем в поистине восхитительные времена. Всего за несколько мгновений можем найти практически любую информацию, которая нас интересует. Если раньше приходилось идти в библиотеку или спрашивать у более опытных людей, то сейчас достаточно иметь под рукой смартфон или компьютер. Ведь гора информации лежит в интернете и только и ждет, чтобы кому-нибудь себя показать.
И если раньше поисковик вообще не всегда мог понять, что от него хочет пользователь, то сейчас алгоритмы поисковых систем стали просто безумно умными и могучими: понимают вас с полуслова и находят нужную информацию за доли секунд.
Однако все же иногда случается, что поисковик вас не понимает и выдает на запрос ну совсем уж какую-то несусветную чушь. Предлагаю разобраться, что делать в таком случае и почему так происходит.
Почему не получается найти нужную информацию в интернете
Итак, всего можно выделить две основные причины.
Первая — то, что вы ищете, попросту отсутствует в сети. Например, если вы учитесь в университете и ищете информацию на какую-то узкоспециализированную тему, вполне возможно, что ничего полезного для себя вы не найдете. Либо вам будут предлагаться материалы на похожие или приближенные к вашей темы, либо вы будете находить превью платного контента, за доступ к которому необходимо будет платить.
И вторая причина отсутствия нужной информации при поиске — это неправильная постановка запроса.
В первом случае мы вам помочь, к сожалению, никак не сможем, тут уж ничего не поделаешь, а вот что можно сделать во втором — сейчас расскажем.
Советы по поиску в интернете: как правильно гуглить
-
Упрощаем запрос
Убираем из запроса лишние слова, делаем его максимально сжатым и четким.
Некоторые пользователи как будто бы обращаются к человеку, а не к безличной системе. Могут писать «подскажите, пожалуйста» и т.д. Но для поисковика это все лишние и ненужные слова. Ему важны лишь ключевые запросы, по которым он осуществляет поиск.
К примеру, вместо того, чтобы напечатать «какая сегодня погода в Москве», можно ввести запрос «погода Москва», вместо «что делать, если болит голова» — «головная боль» (да, уверяю вас, даже без уточнения про то, что вам нужна именно помощь при головной боли, введя просто запрос «головная боль», вы получите нужную вам информацию).
Знаки препинания в запросе можно не использовать, так как поисковые системы их все равно игнорируют.
Также не имеет значения регистр. С большой или маленькой буквы вы напишите запрос — неважно, результат будет один и тот же.
-
Уточняем запрос
Если вы производите поиск по какому-то многозначному слову, лучше будет уточнить запрос, чтобы поисковая система поняла, что вам от нее нужно. Например, если вы ищете информацию о торте «Наполеон», так и пишите: торт Наполеон. Чтобы поисковик не путался и не предлагал вам информацию про французского императора. Если же вам нужна не ознакомительная информация о торте, а рецепт, также указываем это в запросе: рецепт Наполеон. В этом случае даже можно обойтись без слова «торт» — и так понятно, о чем идет речь.
Также, например, в случае со словом «Цезарь»: если написать просто это слово, поисковик предлагает смешанную выдачу с рецептами салата и информацией о Гае Юлии Цезаре.
Таких запросов еще много, я привела лишь пару примеров, поэтому лучше все-таки уточнять запрос, чтобы поисковик вас понял и предоставил нужную информацию.
-
Используем наиболее релевантные слова
Для запроса рекомендуем выбирать наиболее подходящие по теме слова. Также стоит думать о том, какие слова наиболее популярны и употребляемы.
Например, если вы ищете современные шутки на какую-то актуальную тему, вы с большей вероятностью найдете то, что нужно, если будете искать по запросу «мемы» или «шутки», нежели чем «анекдоты».
-
Используем синонимы
Если поисковик не может ничего найти по запросу «реферат на тему», можно поискать по запросу «курсовая на тему», «сочинение на тему» и т.д.
Расширенный поиск в интернете
Для более эффективного и точного нахождения результатов поисковые системы предлагают воспользоваться расширенным поиском.
В Google это можно сделать следующим образом: вводим запрос, нажимаем настройки (справа от поисковой строки) и выбираем «Расширенный поиск»:
И здесь уже можно максимально точно настроить поиск: указать нужные слова или исключить ненужные, выбрать язык, на котором будут показываться результаты, страну, дату обновления, указать сайт (если нужно найти информацию на определенном ресурсе, например, на Википедии) и т.д.
В Яндексе расширенный поиск можно включить, нажав сюда:
Поисковые операторы
Яндекс и Google предоставляют возможность пользоваться поисковыми операторами для уточнения поискового запроса — это специальные слова или символы, которые помогут получить более точный результат.
В Google можно пользоваться следующими операторами:
- Минус — исключение результатов поиска. Пример: цезарь -салат
- Кавычки — поиск точного слова или фразы. Пример: «фентифлюшки»
- OR — поиск по одному либо другому слову одновременно. Пример: стрельба OR тир
- Site: — поиск по определенному сайту или домену. Пример: site:ru.wikipedia.org
- Related: — поиск сайтов с похожим контентом. Пример: related:lifehacker.ru
Операторы Яндекса:
- ! поиск слов в заданной форме. Пример: !цветочек
- + поиск сайтов с определенным словом. Пример: лапенко +роза
- «» поиск по цитате. Пример: «город это злая сила»
- «*» поиск по цитате с пропущенным словом. Пример: «обожаю запах * по утрам»
- | поиск по нескольким словам сразу. Пример: психолог | шаман
Поиск в интернете: что лучше — Яндекс или Google?
На этот вопрос, конечно, ответа нет. Каждый пользуется той поисковой системой, которая ему больше нравится. Но в случае с поиском труднонаходимой информации рекомендую пользоваться обоими поисковиками сразу. Выдача у них разная, соответственно, если не нашли искомое в одной поисковой системе, есть шанс найти это в другой.
Предлагаю проверить, как справляются с поиском и чем отличается выдача в Яндексе и Google.
Сравнивать выдачу по обычным запросам не будем. Предлагаю выбрать что-то более интересное.
Вообще, есть такое мнение, что Google более серьезен, политкорректен и чтит правила, в отличие от Яндекса. Например, если вам нужно бесплатно посмотреть фильм, скачать игру или найти книгу — в Яндексе это удастся сделать с большей долей вероятности, чем в Google.
В процессе написания данной статьи наткнулась на пост в Пикабу, который навел меня на мысль сравнить выдачу по таким запросам:
-
Расистские шутки
Нет, ну а вдруг вы собрались писать диссертацию по лингвокриминалистике про расистские шутки и вам нужны примеры.
Google действительно оказался более серьезен в этом плане. При поиске по данному запросу он предлагает ознакомиться со статьями на тему того, что расистский юмор — это плохо, рассказывает про известных людей, которых осудили за такие шутки и т.п.
Яндекс же не сильно беспокоится об этической стороне вопроса и просто предлагает ознакомиться с шутками на тему расизма (даже с картинками):
-
То же самое будет, если искать шутки про геев.
Вот результаты выдачи Google:
Опять-таки разного рода статьи на эту тему и только в конце выдачи один результат с шутками:
А вот такая выдача в Яндексе:
-
Также из злободневного: решила погуглить шутки про вакцинацию.
Что мы видим? В Google шутки на этот раз встречаются, но все-таки перемежаются с информационными статьями на тему вакцинации.
В Яндексе все-таки больший упор именно на развлекательный контент:
-
При этом если искать шутки, например, про женщин, Google превосходно справляется с этой задачей:
Значит, про женщин можно шутить, а про геев и расизм нельзя. Все ясно.
Ну а с Яндексом и так все понятно уже:
-
Также по наводке Пикабу (господи, что бы я без этого сайта делала) продемонстрирую вам такой пример.
Нас интересует вопрос, существует ли на самом деле Дед Мороз. Что по этому поводу скажет Google?
Говорит: «Да, конечно, существует». Даже статью про научные доказательства приводит.
А Яндекс?
Он в самом начале приводит ссылку на сервис Яндекс.Кью, где написано, что Деда Мороза все-таки не существует.
-
А что делать, если вы пытаетесь вспомнить название какого-то фильма, но никак не можете это сделать? С этим оба поисковика уже давно справляются на раз-два: у Яндекса для этого есть алгоритм Палех, а у Google — Колибри.
Например, вот поиск по запросу «фильм в котором на острове стареют» в Google:
Четкий ответ на вопрос, все ок.
То же самое в Яндексе:
-
Похвалю Яндекс еще раз. Если вбить запрос «Джек Воробей», он заботливо исправляет на «Капитан Джек Воробей» (что за прелесть):
Google так, увы, не делает:
Чем отличается поиск информации в Яндексе и Google для бизнеса
Ладно, шутки в сторону, настало время и серьезных примеров. Для владельцев сайтов, думаю, будет полезно узнать, как отличается выдача в этих поисковиках по важным для них запросам.
Над Яндексом в последнее время постоянно шутят на тему монополизации: появляются все новые и новые сервисы, и Яндекс постепенно подминает рынок под себя. Для сферы услуг теперь есть Яндекс.Услуги, для покупки товаров — Яндекс.Маркет, информационным сайтам теперь конкуренцию составит Яндекс.Кью и Яндекс.Дзен. Помимо этого, в выдаче Яндекса вы увидите ссылки на карты и справочник Яндекса, ну и, конечно, рекламу.
У нас была статья, в которой мы уже говорили о нынешней ситуации с выдачей в Яндексе. Что с этим делать и как жить – рассказывали здесь.
Вот, например, выдача по запросу «ремонт авто Москва» в Яндексе:
Куча сервисов Яндекса + реклама.
В Google получше: реклама также есть, но сервисов Яндекса в разы меньше, а значит, и владельцам бизнесов легче пробиться в ТОП.
И подобная ситуация, к сожалению, встречается нередко. Особенно «страдают» такие тематики, как установка натяжных потолков, монтаж пластиковых окон, продажа техники, услуги различных мастеров и т.д.
Поэтому перед продвижением сайта рекомендую сразу проверять выдачу по важным запросам в обеих поисковых системах. Возможно, вам больше подойдет одна из них (только Google или только Яндекс), и вы все силы направите на продвижение сайта именно под нее.
Также Яндекс иногда не может понять, что от него хочет пользователь. Например, вот такая выдача по запросу «заказ такси в Москве без водителя»:
То есть Яндекс увидел слово «такси» и решил, что именно это пользователю и нужно.
В Google другая картина:
Google понял, что от него нужно, в отличие от Яндекса.
Вывод
Как мы поняли, у каждого поисковика есть свои особенности. В чем-то они схожи, а в чем-то кардинально различаются. При продвижении сайта рекомендую обращать внимание на выдачу по важным для вас запросам в обоих поисковиках и отстраивать от этого стратегию продвижения. Кстати о стратегиях: при необходимости подготовим для вас детальный план продвижения сайта на полгода, а также сможем выполнить все работы по предложенной стратегии. Обращайтесь!
А по поводу правильного поиска информации в интернете, надеюсь, советы были полезны, и впредь вам всегда будет удаваться находить все, что нужно, в любой поисковой системе.