Принципы организации процедуры поиска на сайте
Для создания функции поиска на сайте использовались язык программирования PHP (Hypertext Preprocessor), SQL (универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных), JavaScript (объектно-ориентированный скриптовый язык программирования).
Скрипты, написанные на PHP, исполняются на стороне сервера. С появлением PHP стало возможным формировать содержимое сайта по запросу в реальном времени. Он также позволяет обрабатывать нажатия кнопок, заполнения разнообразных форм, хранить информацию в базах данных и даже динамически формировать графические изображения.
Вкратце описать процедуру поиска можно так:
1. Пользователь вводит запрос в html форму.
2. Проверяется условия для введенных данных.
3. С помощью PHP /SQL организуется запрос в базу данных на сервере.
4. Обработка найденной информации.
5. Вывод информации в упорядоченный список на странице.
Рассмотрим подробнее каждый пункт.
1) Пользователь зашел на сайт, например, интернет-магазин и решил найти нужную ему информацию. Кликнув по ссылке “Поиск”, он попадает на страницу с html-формой. Щелкнув на эту форму, он перемещает курсор внутрь формы и теперь он может ввести интересующее его слово, например “ролики”.
2) Поиск начинает свою работу сразу же, как только пользователь ввел первые буквы и еще не нажал кнопку “Найти”. Эта возможность реализована средствами JavaScript и AJAX(«асинхронный JavaScript и XML» — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером).
3) Одновременно с вводом запроса выпадает список похожих слов и выражений. Далее в условиях фильтруются стоп-слова ( предлоги, союзы).
4) Затем каждому найденному товару присваивается релевантность. Эта величина зависит от процентного совпадения введенного запроса и найденной информации. Расчет этой величины осуществляется PHP -скриптом.
5) Вывод информации по убыванию релевантности.
Слева на странице выводится список сформированных групп. Кликнув по названию группы пользователь может просмотреть содержание данной группы.
Например, для роликов можно использовать такие тэги, как “спортивный инвентарь”, “фитнес”.
Релевантность — это субъективное понятие, так как результаты поиска, уместные для одного пользователя, могут быть неуместными для другого. Основным методом для оценки релевантности является метод TF-IDF. Данный метод используется в большинстве поисковых систем (как в Интернет, так и в справочных системах (MSDN).
Метод TF-IDF
Автором метода является Gerard Salton (в дальнейшем доработан Karen Sparck Jones).TF-IDF (от англ. TF — term frequency, IDF — inverse document frequency) — статистическая мера, используемая для оценки важности слова в контексте документа, являющегося частью коллекции документов или корпуса. Вес некоторого слова пропорционален количеству употребления этого слова в документе, и обратно пропорционален частоте употребления слова в других документах коллекции.
Структура формулы
TF (term frequency) — отношение числа вхождения некоторого слова к общему количеству слов документа. Таким образом, оценивается важность слова в пределах отдельного документа.
TF =
Где есть число вхождений слова в документ, а в знаменателе — общее число слов в данном документе.
IDF (inverse document frequency) — инверсия частоты, с которой некоторое слово встречается в документах коллекции. Учёт IDF уменьшает вес широкоупотребительных слов.
IDF = , где
· |D| — количество документов в корпусе;
· — количество документов, в которых встречается (когда ).
Таким образом, мера TF-IDF является произведением двух сомножителей: TF и IDF.
Большой вес в TF-IDF получат слова с высокой частотой в пределах конкретного документа и с низкой частотой употреблений в других документах.
Если документ содержит 100 слов и слово «ролики» встречается в нём 2 раза, то частота слова (TF) для слова «ролики» в документе будет 0,02 (2/100). Один из вариантов вычисления частоты документа (DF) определяется как количество документов содержащих слово «ролики», разделенное на количество всех документов. Таким образом, если «ролики» содержится в 100 документов из 10 000 документов, то частота документа (DF) будет равной 0,01 (100/10000). Для расчета окончательного значения веса слова необходимо разделить TF на DF (или умножить на IDF). В данном примере, TF-IDF вес для слова «ролики» в выбранном документе будет 2 (0,02/0,01).
Мера TF-IDF часто используется для представления документов коллекции в виде числовых векторов, отражающих важность использования каждого слова из некоторого набора слов (количество слов набора определяет размерность вектора) в каждом документе. Подобная модель называется векторной моделью (VSM) и даёт возможность сравнивать тексты, сравнивая представляющие их вектора в какой либо метрике (евклидово расстояние, косинусная мера, манхэттенское расстояние, расстояние Чебышева и др.), т. е. производя кластерный анализ.
Литература
1. http://wikipedia.org.
2. Стивен Хольцнер. PHP в примерах. – М.: «Бином-Пресс», 2007. – 346 с.
References
1. http://wikipedia.org.
2. Steven Holzner. Spiring into PHP 5.
Защита информации