Разработка системы моделирования поисковой оптимизации веб-сайта

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?енциальных уравнений (2.2.6) с переменными (в общем случае) коэффициентами. Эти уравнения называются уравнениями Колмогорова (по имени академика А. Н. Колмогорова, предложившего такой метод анализа марковских процессов с дискретными состояниями и непрерывным временем).

Систему дифференциальных уравнений (2.2.6) решают при начальных условиях, задающих вероятности состояний в начальный момент при t=0

(2.2.7)

 

причем для любого момента времени t выполняется нормировочное условие

 

(2.2.8)

 

Это следует из того, что в любой момент t события

образуют полную группу несовместных событий. Нормировочное условие (2.2.8) можно использовать вместо одного (любого) из дифференциальных уравнений (2.2.6).

При составлении системы дифференциальных уравнений (2.2.6) удобно пользоваться размеченным графом состояний системы, где возле каждой стрелки, ведущей из состояния si в состояние sj, стоит интенсивность ?ij(t) пуассоновского потока событий, переводящего систему из состояния si в sj. Если ?ij(t) = 0, ни стрелка, ни соответствующая интенсивность на размеченном графе не ставятся.

Для определения констант необходимо собрать статистические данные и необходимо разработать программу, собирающую и обрабатывающую эти данные.

3. Описание работы программы: описание функциональных возможностей скрипта, описание подпрограмм, алгоритмов и принципа работы

 

Ниже приведен общий принцип решения задачи сбора и обработки статистических данных, отвечающих за популярность сайта, с подробными комментариями к листингу программы, описанием функциональных возможностей скрипта, а также описанием подпрограмм и алгоритмов.

Проверка версии PHP и установка кодировки страницы происходит согласно строчкам 1-6 пункта 1 приложения А. Кодировка utf-8 выбрана по причине её популярности в среде web-программистов. Следствие из этого - отсутствие конфликтов в работе большинства внутренних функций PHP, обрабатывающих строки. Как известно, в любой работе следует придерживаться установленным стандартам, и выбор кодировки utf-8 для исходного кода - это отличный способ избежать ненужных проблем и трудностей в работе скрипта. Для ясности следует заметить, что кодировка базы данных также utf-8, именно поэтому при запросе данных из базы, нам не нужно производить дополнительных действий над текстом.

Подключение файлов config.php, mysql.php, a.charset.php, а также подключение базы данных описаны в строчках 7-10 п.1 приложения А.

Внутренний синтаксис PHP для работы с базами данных хоть и является одним из самых простых среди всевозможных языков, всё же для оптимизации процесса программирования следует использовать дополнительные классы. Это позволит сократить время на разработку программ и в конечном итоге поможет избежать нежелательных ошибок.

Генерирование последних позиций по всем запросам для главной страницы происходит с помощью функции generateLastStatList в строчках 12-21 п.1 приложения А. Это несложная функция, состоящая из двух внутренних SQL-запросов, логику которых можно описать двумя пунктами:

) получаем последнюю дату для записей статистики в базе данных;

) получаем все записи из базы для выбранной нами даты.

И если первый запрос реализуются с помощью примитивного синтаксиса, то для второго запроса приходится использовать сложные JOIN запросы, объединяющие записи из двух различных таблиц.

Вычисление плотности ключевых слов описано в функции keyWords (23-85 строки п.1 приложения А). В строках 25-30 находятся регулярные выражения для получения списка ключевых слов со страницы сайта, в строке 25 используется функция charset_x_win, которая любую кодировку переводит в cp1251 и функция iconv, которая переводит cp1251 в utf-8; 37-83 строки отвечают за удаление лишних символов из HTML кода, замену HTML-сущностей и подсчёт общего количества слов, а также за подсчёт плотности ключевых слов. Следует тщательнее разобрать этот алгоритм. Как известно, любая HTML страница представляет собой сочетание тегов и всевозможные слова, несущие информационную нагрузку. Для подсчета плотности ключевых слов, нам необходимо отделить ненужные теги от слов, поэтому мы удаляем всевозможные HTML сущности и оставляем только текст. Для наглядности можно пояснить - результирующий текст совпадает с текстом, который мы могли бы получить просто выделив весь текст в браузере и скопировав его в текстовый документ. Именно в этом тексте мы находим количество вхождений ключевого слова, и полученный результат делим на общее количество слов. В результате и получается интересующая нас величина - плотность ключевого слова.

Функция v_stat (87-121 строки п.1 приложения А) отвечает за статистику конкретного URLа, историю последних двадцати позиций и запрос ключевых слов из функции keyWords, описанной на 23-85 строках. В этом же блоке осуществляется вывод данных в браузер. Как известно, для качественного анализа страниц необходимо вести подробную статистику за определенный период времени. Функция v_stat как раз работает с собранными данными из базы данных. Для наглядности эти данные можно представить как массив соотношений позиция - адрес страницы. Получив эти данные для заданного URL, можно доверить скрипту их анализ. Конкретно для нашей задачи скрипт анализирует последние 20 позиций и выдает их пользователю в удобном виде, пригодном для уже ручного анализа эффективности продвижения в поисковых системах. Для того чтобы пользователь мог составить полную картину работы сайта, необходимо вывести так же плотность ключевых слов, обработка которых была описан?/p>