Ранжирование ответов по точности
Поиск с логическими операторами является мощным инструментом, но позволяет находить
только точные соответствия. Поиск слова "library" не найдет "libraries". Запросы "John Smith" и
"J.Smith" будут рассматриваться как различные, хотя каждый понимает, что это одно и тоже.
Существует ряд методов для таких ситуаций.
Современный подход отказывается от попытки находить документы, которые абсолютно
точно отвечают запросу, и пытается определить некую меру сходства между запросом и
каждым документом. Предположим, что общее число различных слов в наборе документов
равно n. Данный документ может быть представлен вектором в n-мерном пространстве. Если
документ содержит данное слово, вектор принимает значение 1 в соответствующем
направлении; в противном случае его значение равно 0. Запрос может быть также представлен
вектором в этом же пространстве. Степень полноты, с которой документ отвечает запросу,
измеряется степенью близости друг другу этих векторов. Это может быть угол между этими
двумя векторами в n-мерном пространстве. После того, как эта величина рассчитывается для
каждого документа, их можно ранжировать от максимально близкого к запросу до
минимального. На этой общей концепции базируется несколько методов ранжирования.
Некоторые вероятностные методы используют статистическое распределение слов в
коллекции. Они основаны на предположении, что точные слова, выбранные автором для
описания искомой темы или пользователем для формулировки запроса были выбраны с
определенной уверенностью, хотя могут использоваться и другие слова.
Обработка текстов на естественном языке (natural-language processing) и
компьютерная лингвистика
Слова в документе - это не просто последовательность знаков; это единицы языка
(например, английского), и они упорядочены во фразы, предложения и абзацы. Обработка
натурального языка является разделом кибернетики, который использует компьютеры для
интерпретации и манипуляции словами, как частью языка. Инструменты "проверка
правописания", которые используются в текстовых редакторах дают пример широко известного
приложения; они используют методы обработки естественного языка для предложения
альтернативных вариантов правописания в тех случаях, когда не могут распознать данное
слово.
Одно из достижений компьютерной лингвистики (раздел лингвистики, который имеет дело с
грамматикой и лингвистикой) - разработка компьютерных программ, которые способны
выполнить грамматический разбор (parse) практически любого предложения с хорошей
точностью. Анализаторы разбирают структуру предложения, относят слова к частям речи
(существительное, глагол, прилагательное и пр.), группируют слова во фразы и статьи;
идентифицируют структурные элементы (существительное, глагол, объект и пр.). Для этих
целей лингвистам потребовалось уточнить их понимание грамматики, научиться распознавать
значительно больше нюансов правописания, чем содержится в обычных грамматиках.
Значительные исследования в области обработки информации были посвящены использованию
сочетаний существительных (noun phrases). Во многих контекстах, содержание предложения
может быть определено извлечением существительных, их фраз и проведения поиска по ним.
Работы такого рода не ограничивались одним английским языком, а проводились для многих
языков.
Анализ грамматической структуры требует понимания морфологии слов с тем, чтобы
варианты, образованные от одного корня, например единственное и множественное число
существительного, формы глагола, могли точно распознаваться. Для обработки информации
зачастую более эффективно сводить морфологические варианты к общему корню и
использовать его в качестве поискового термина. Эта процедура называется нормализацией
(stemming). Она эффективнее усечения (truncation), поскольку способна различать слова с
различным значением (такие, как "computer" и "company"), и понимая при этом, что слова