Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/8593
Title: Інформаційна система прогнозування пошукових запитів користувача
Authors: МИРОНЮК, Тетяна
ХАЙТМУРАДОВ, Азат
Keywords: АНАЛІЗ;ВЕБ-СЕРЕДОВИЩЕ;БАЗА ДАНИХ;СИСТЕМИ ПРОГНОЗУВАННЯ;ПОШУКОВІ ЗАПИТИ КОРИСТУВАЧА
Issue Date: 2023
Abstract: Досліджувана тема кваліфікаційної роботи бакалавра є актуальною через те, що сприяє полегшенню прогнозування конкретних пошукових запитів користувачів різних вікових категорій. Метою виконання кваліфікаційної роботи на здобуття освітнього ступеня «бакалавр» полягає у проектуванні і розробці аналітичної інформаційної системи, яка забезпечить можливість прогнозування конкретних користувальницьких пошукових запитів. У кваліфікаційній роботі розглянуто особливості процесу пошуку актуальної інформації, її фільтрація та аналіз в мережі Інтернет. Для вирішення поставленого завдання проведений аналіз основних проблем в роботі алгоритмів в існуючих, на сьогоднішній день, аналогах. Проаналізовані реалізовані в розглянутих програмних продуктах методи вдосконалення алгоритму пошуку та систематизації отриманої інформації. Створено програмне забезпечення у вигляді експериментальної програми для пошуку необхідної інформації та прогнозування подій відповідно до аналізу вже існуючих даних. Для реалізації програмного продукту обрана об'єктно- орієнтована мова програмування високого рівня PHP. Графічний інтерфейс оформлено за допомогою мови розмітки HTML та мови стилів CSS. Застосування розробленої системи надає можливість користувачам отримати оптимально якісну послугу безпечного пошуку та аналізу інформації. Загальний обсяг роботи становить 76 сторінки. У кваліфікаційній роботі 7 рисунках, 3 таблицях. Для виконання роботи використано 17 літературних джерел.
URI: https://er.chdtu.edu.ua/handle/ChSTU/8593
Appears in Collections:123 Комп’ютерна інженерія (Комп'ютерні системи та мережі)

Files in This Item:
File Description SizeFormat 
01_ТИТУЛКА_Хайтмурадов-merged.pdf
  Restricted Access
2.5 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему:
«Інформаційна система прогнозування пошукових
запитів користувача»
ЧДТУ.239047.006 ПЗ
Виконав: студент 4 курсу, групи КМ-1905
спеціальності 123 – «Комп’ютерна інженерія»
за освітньою програмою – «Комп’ютерні системи
та мережі»
Азат ХАЙТМУРАДОВ
Керівник
к.т.н., доцент Тетяна МИРОНЮК
Рецензент
к.т.н., доцент, начальник відділу персоналу
ЗАЖОМА В.М.
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ______ Володимир РУДНИЦЬКИЙ
Черкаси 2023 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет: інформаційних технологій і систем
Кафедра: інформаційної безпеки та комп’ютерної інженерії
Освітньо-кваліфікаційний рівень: Бакалавр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ______ Володимир РУДНИЦЬКИЙ
«28» лютого 2023 року
ЗАВДАННЯ
на кваліфікаційну роботу бакалавра студенту
Хайтмурадову Азату
(прізвище, ім‘я, по батькові)
1. Тема роботи: Інформаційна система прогнозування пошукових запитів
користувача
Керівник роботи: к.т.н. Миронюк Тетяна Василівна
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «24» лютого 2023 р. № 43/04
2. Строк подання студентом роботи:
3. Вихідні дані до роботи:
 Web - сервер додатків Apache 2.2.
 ;Сервер балансування навантаження NginX Load Balancer 1.4.
 Сервер баз даних MySQL 5.5.
 W; eb - інтерфейс роботи з базами даних MySQL - PhpMyAdmin 4.1.

4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
1 Постановка завдання та аналіз предметної області
2 Дослідження наявних сьогодні моделей для пошуку інформації
3 Реалізація інформаційної системи прогнозування
4 Тестування отриманих результатів під час застосування вдосконаленого алгоритму роботи
Висновки
Додатки
Список використаних джерел
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
1. Специфікація
2. Текст програми
3. Інструкція користувача
6. Консультанти розділів роботи:
Розділ Прізвище, ініціали Підпис, дата
консультанта завдання видав завдання прийняв
7. Дата видачі завдання: 27 лютого 2023 року
КАЛЕНДАРНИЙ ПЛАН
Термін
№ з/п Назва етапів роботи виконання Примітка
етапів роботи
1 Отримання завдання 01.03 – 14.03 виконано
2 Збір матеріалу 15.03 – 1.04 виконано
3 Обробка матеріалу 02.04 – 10.04 виконано
4 Вибір програмного забезпечення та його виконано
обґрунтування 11.04 – 15.04
5 Розробка програмного продукту 16.04 – 26.04 виконано
6 Розробка бази даних 27.04 – 05.05 виконано
7 Синхронізація програмного продукту з базою 06.05 – 11.05 виконано
даних та тестування програмного продукту
8 Оформлення пояснювальної записки 12.05 – 22.05 виконано
9 Оформлення графічного матеріалу 22.05 – 31.05 виконано
10 Подання кваліфікаційної роботи на відгук та 01.06.23 виконано
рецензування
11 Захист кваліфікаційної роботи 07.06.23
Студент ____________________________ Азат ХАЙТМУРАДОВ
(підпис)
Керівник роботи _____________________________ Тетяна МИРОНЮК
(підпис)
АНОТАЦІЯ
Досліджувана тема кваліфікаційної роботи бакалавра є актуальною
через те, що сприяє полегшенню прогнозування конкретних пошукових
запитів користувачів різних вікових категорій.
Метою виконання кваліфікаційної роботи на здобуття освітнього
ступеня «бакалавр» полягає у проектуванні і розробці аналітичної
інформаційної системи, яка забезпечить можливість прогнозування
конкретних користувальницьких пошукових запитів.
У кваліфікаційній роботі розглянуто особливості процесу пошуку
актуальної інформації, її фільтрація та аналіз в мережі Інтернет. Для
вирішення поставленого завдання проведений аналіз основних проблем в
роботі алгоритмів в існуючих, на сьогоднішній день, аналогах.
Проаналізовані реалізовані в розглянутих програмних продуктах методи
вдосконалення алгоритму пошуку та систематизації отриманої інформації.
Створено програмне забезпечення у вигляді експериментальної програми для
пошуку необхідної інформації та прогнозування подій відповідно до аналізу
вже існуючих даних. Для реалізації програмного продукту обрана об'єктно-
орієнтована мова програмування високого рівня PHP. Графічний інтерфейс
оформлено за допомогою мови розмітки HTML та мови стилів CSS.
Застосування розробленої системи надає можливість користувачам отримати
оптимально якісну послугу безпечного пошуку та аналізу інформації.
Загальний обсяг роботи становить 76 сторінки. У кваліфікаційній
роботі 7 рисунках, 3 таблицях. Для виконання роботи використано 17
літературних джерел.
Ключові слова: АНАЛІЗ, ВЕБ-СЕРЕДОВИЩЕ, БАЗА ДАНИХ,
СИСТЕМИ ПРОГНОЗУВАННЯ, ПОШУКОВІ ЗАПИТИ КОРИСТУВАЧА.
ANNOTATION
The research topic of the bachelor's qualification work is relevant because it
facilitates the prediction of specific search queries of users of different age
categories.
The purpose of the qualification work for obtaining the bachelor's degree is
to design and develop an analytical information system that will provide the ability
to predict specific user searches.
In the qualification work, the peculiarities of the process of searching for
relevant information, its filtering and analysis on the Internet are considered. To
solve the task, an analysis of the main problems in the work of algorithms in the
existing analogues was carried out. The methods of improving the search algorithm
and systematization of the received information implemented in the considered
software products were analyzed. Software was created in the form of an
experimental program for searching for the necessary information and forecasting
events according to the analysis of already existing data. The high-level object-
oriented programming language PHP was chosen for the implementation of the
software product. The graphical interface is designed using the HTML markup
language and the CSS style language. The application of the developed system
provides an opportunity for users to receive an optimally high-quality service of
safe search and analysis of information.
The total volume of work is 76 pages. There are 7 figures, 3 tables in the
qualifying work. 17 literary sources were used to perform the work.
Keywords: ANALYSIS, WEB ENVIRONMENT, DATA BASE,
FORECASTING SYSTEMS, USER SEARCH QUERIES.
ЗМІСТ
ВСТУП......................................................................................................................4
РОЗДІЛ 1 ПОСТАНОВКА ЗАВДАННЯ ТААНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ 6
1.1 Проведення аналізу ключових понять ....................................................6
1.2 Ранжування інформації для інформаційної системи прогнозування.11
1.3 Основи прогнозування щодо визначених даних..................................13
1.4 Аналіз основних характеристик для існуючих рішень........................19
1.5 Постановка завдання на розробку.........................................................21
РОЗДІЛ 2 ДОСЛІДЖЕННЯ НАЯВНИХ СЬОГОДНІ МОДЕЛЕЙ ДЛЯ ПОШУКУ
ІНФОРМАЦІЇ..........................................................................................................23
2.1 Види моделей для пошуку інформації..................................................23
2.2 Класифікація інформаційно-пошукових систем..................................25
РОЗДІЛ 3 РЕАЛІЗАЦІЯ ІНФОРМАЦІЙНОЇ СИСТЕМИПРОГНОЗУВАННЯ..28
3.1 Структура інформаційної системи......................................................28
3.2 Збір статистичних даних ...................................................................... 30
3.3 Проектування схеми баз даних для реалізованої системи................32
3.4 Реалізація екранних форм та тестування інформаційної системи ... 36
ЧДТУ.239047.006 ПЗ
Змн. Арк. № докум. Підпис Дата
РозрКобив Хайтмурадов Інформаційна система Літ. Лист Листів
Керівник АМ.иронюк Т.В. 2 76
Рецеанзент Зажома В.М. прогнозування
Н.Контроль Гресько С.О. пошукових запитів Кафедра ІБ та КІ
Затвфердив Рудницький В.М. користувача гр. КМ-1905
Пояснювальна записка
е
д
р
а
К
К
-
0
6
РОЗДІЛ 4 ТЕСТУВАННЯ ОТРИМАНИХ РЕЗУЛЬТАТІВ ПІД ЧАС
ЗАСТОСУВАННЯ ВДОСКОНАЛЕНОГОАЛГОРИТМУ РОБОТИ...................38
4.1 Результати отримані під час тестування...............................................38
4.2 Опис процесу тестування інформаційної системи...............................39
4.3 Приклади вихідних табличних статистичних даних...........................43
4.4 Порівняльний аналіз методів та моделей для прогнозування............44
ВИСНОВКИ............................................................................................................46
ПЕРЕЛІК СКОРОЧЕНЬ ТА УМОВНИХПОЗНАЧЕНЬ...................................... 48
ДОДАТКИ:
А – 482.ЧДТУ.39047-01 Інформаційна система прогнозування
пошукових запитів користувача
ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………………….75
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 3
ВСТУП
На сьогоднішній день в мережі Інтернет розміщуються надзвичайно
великі обсяги інформації. Деяка її частина надається у відкритий доступ для
будь-якого користувача мережі Інтернет. Основуючись на те, що потреба в
швидкому пошуці релевантної інформації зросла, з’явилася окрема галузь в
сфері інформаційних технологіях, як сфера надання пошукових послуг для
користувачів в мережі Інтернет. Одим із лідерів даної галузі в світовому
масштабі являється компанія Google, що обробляє близько 41 млрд. 345 млн.
запитів користувачів щомісяця [1].
Відповідно до отриманих результатів можна зробити припущення, що
найбільш часто повторювані пошукові запити можна згрупувати і
проаналізувати. У випадку вдалого прогнозування зміни величини для
конкретного пошукового запиту можна буде визначати потреби користувачів
мережі Інтернет в майбутньому.
Зазвичай, реалізацією інформаційних систем для прогнозування
займаються комерційні компанії, які отримані результати від дослідження
найчастіше закривають від публічного доступу. Але отримані вихідні
статистичні дані все ж таки можна знайти у відкритому доступі і відповідно
можуть просто бути отримані під час використання програмних інтерфейсів.
Метою дослідження для кваліфікаційної роботи бакалавра є
проектування та розробка аналітичної інформаційної системи, що
забезпечить можливість прогнозування конкретних пошукових запитів
користувачів.
Для досягнення поставленої мети було сформульовано та вирішено
наступні завдання:
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 4
 проаналізовано спеціальну літературу, зібрано, систематизовано
та узагальнено отриману інформацію;
 проведено аналіз предметної області;
 проаналізовано методологій збору і аналізу даних;
 проаналізовано інформаційні технології для розробки системи;
 реалізовано інформаційно-аналітичну систему;
 протестувано та налагоджено реалізовану інформаційну систему.
Як результат було реалізовано програмний продукт у вигляді
бібліотеки, що дозволяє застосовувати покращений метод для пошуку та
аналізу даних на основі закладених алгоритмів.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 5
РОЗДІЛ 1 ПОСТАНОВКА ЗАВДАННЯ ТА АНАЛІЗ
ПРЕДМЕТНОЇ ОБЛАСТІ
1.1 Проведення аналізу ключових понять
Двадцять років тому пошукові системи в мережі Інтернет тільки
розпочинали свій розвиток [4]. В той же час було оцінено практичну користь
щодо того, як часто люди подають запити відносно тої або іншої інформації.
Першимхтовідзначивпрактичнузначимістьдослідженняпошуковихзапитівкор
истувачівбула Аманда Спинк в своїйстатті "SearchingtheWeb: The
publicandtheirqueries" ще в 2001 році [10]. На початку дослідити статистику
пошукових запитів користувача на протязі декількох років мали змогу лише
пошукові сервіси або їх компанії – партнери. Потім з'явилися вільні
інтерфейси, які давали можливість отримати статистики пошукових запитів
користувача.
Слово, словосполучення або речення, які вводиться людиною в
пошукову веб-систему для того, щоб отримати релевантну інформацію
називається призначеним для користувача пошуковим запитом. Пошукові
запити можуть бути для графічних зображень, відео або звуку. Але в рамках
досліджуваної роботи буде розглянуто лише текстові запити.
Під поняттям пошукова веб-система розуміється так званий «Search
Engines». Це сервіс, який дає користувачам мережі Інтернет отримувати
необхідну інформацію [15]. Тобто, пошукові системи весь час «сканують» та
індексують веб- «простір», при цьому, визначають цінність того або іншого
ресурсу, його користь та відповідність для того або іншого пошукового
запиту призначеного для користувача. Гарним прикладом пошукових веб-
систем є сервіси компаній Google, Bing,Yahoo [2].
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 6
На сьогоднішній деньнезначна кількістьопублікованонаукових статей в
галузівивчення пошукових запитів від людей в мережіІнтернет. По-перше
цезв'язано з відносно недавнімрозвитокпошукових.Попит на
проведеннятакихдослідженьз'являється в
площімаркетинговихтасоціологічнихдослідженьдля
приватнихкомпаній.Відсутність строговизначеноїв
данійобластібазисноїосновищодопідтвердження тих абоіншихрезультатів не
зменшує того факту, щобільша частинакористувачівмережіІнтернетв якійсь
мірівзаємодіють з пошуковими системами, тобтознаходяться в
процесіпошукунеобхідноїінформації [11]. Необхіднозвернутиувагу,
щочастинаінформації, що шукається,користується великим попитом, а
частинаєменшцікавою для людей;частинаінформації
вводитьсякористувачами з певноюперіодичністю, іншамаєспонтанний
характер. Таким наприкладом може служити інформація
проподробиціщодоекстреноїновини.
Результатищодо прогнозуванняпошуковихзапитівкористувача, в першу
чергуцікавінаступним групам користувачів:
 соціологамта людям,
якізаймаютьсямаркетинговимидослідженнями;
 компаніям, роботаяких прямо чипобічнозв'язана з простором
Інтернет.
Рекламнікомпанії, якіпроводяться в мережіІнтернет, опираються на
деякіключові слова чигрупиключовихслів.Підпоняттям «ключові
слова»розумієтьсяпризначені для
користувачаочікуванізапити.Актуальністьзавдання
кваліфікаційноїроботибакалавра полягає в потребіотриматиінформації про
пошукові запити людей через місяць з мінімальноюпохибкою. Оскільки, саме
відповідність ключових слів до отриманих фактичних результатів щодо
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 7
запитівкористувача залежить успішність та ефективність рекламної компанії
в Інтернет, охоплення їїаудиторії та бюджет[17].
Відповідно до цього для
прогнозуваннядоцільнозастосовуватиметодирегресійногоаналізу
тааналізчасовихрядів. Данийвисновокбуло висвітлено в статті [13] і
розумнобуде погодитися з ним. Алеу випадках, коли виконується
якасьнепередбаченаподія, наприклад, виводитьсянесподіванановина, то
метод регресійногоаналізуне надастькоректного результату. Для
такоговипадкукращим є застосуваннянейронних мереж.Враховуватифактори,
яківпливають на постійну змінукористувачапошуковихзапитів, в
площікласичнихматематичних моделей значитьвипуститиіз зору великий ряд
факторів. Відповідноновийматематичнийапарат, що
називаєтьсянейромережевимитехнологіями, надаєзмогу
включатиіншіпараметри, що не вкладені в модель.Запропоновані в
робітахУ.Мак-Каллока, Ф.Розенблаттата В.Піттса [9] нейроннімережі
розробляютьсяпо принципупобудовитафункціонуваннялюдськогомозку.
Нейроннімережі унаслідуютьсявідсвого головного прототипу,
тобтомозкуйогонайкориснішівластивості. Дані мережі включають в себе:
 вмінняузагальнюватиїх у виглядізакономірностейта
законівпредметних областей, властивостейінтуїції [16];
 вміннявилучатизнання з статистичнихданих.
Під
приведенимиздібностямирозумієтьсяпобудовапрогнозівтавиконаннякеруючи
хвпливіву тих випадках, в якихзвичайналогіка не можеістотнодопомогти.
Виходячи з отриманихданих, можназробитивисновок,
оскількипошуковий запит користувачапов'язаний з семантикою тадеяким
контекстом, потрібнозастосовувати
такожнейромережевітехнологіїприскладанні прогнозу.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 8
Аналізданихєдослідженням, якеполягає в різнихобчисленнях, що
виконуютьсянадвихіднимиданими з великою кількістюпараметрів,
якізалежатьвідзавданнядослідження.Основнимзавданняманалізу є
визначеннязакономірностей, характеристик для описуваного предмету
відповіднодовихіднихданих [13]. Длябільшостівипадківпід
часпроведенняаналізуданихвикористовуютьсяматематичніметоди, тобто
аналізданихявляєтьсяінструментомперевіркигіпотез.В процесідослідження
часто застосовуєтьсямоделювання, якедоситьспрощуєвивченняявищ,
щоцікавлятьдослідника.Основнацільмоделюваннязаключається в тому, щоб
модель відображалафункціонуваннямодельованоїсистеми [3].
Модель являєтьсяоб'єктабоописоб'єктусистеми для заміщення (при
деякихумовах)однієїсистемиіншою для покращеннявивченняабовідтворення
будь-якихвластивостейоригіналусистеми [15].
Для
прогнозуванняпошуковихзапитівкористувачапотрібнозастосовуватиемпіричн
ий тип математичногомоделювання, оскільки вихідніданіотримано на
основіемпіричнихфактів тазалежностей, що були зафіксованимипошуковими
системами.
У випадкуфіксуваннячітко
визначенихзакономірностейпоміжвизначених для
користувачапошуковихзапитівможнависуваннягіпотезудляподальшогоїхпідт
вердженням чи спростуванням. У
випадкупідтвердженнягіпотезможназастосовувати не тількиемпіричні
методи, а й отриманітапідтвердженізакономірності, які строго
описаніматематично.
Аналізданихдля пошуковихзапитівтісно пов'язано з моделюванням.
Наступним кроком єпроектуваннянайважливішихвластивостей будь-
якоїмоделівідповідно дозавданняданої кваліфікаційноїроботи [12].
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 9
 Відповідно до того, щоресурси реалізованіінформаційною системою
необхідновраховуватикінцівкузакладеної в систему моделі.
 Модель виводитьтількисуттєвісторонидосліджуваногоявища.
Відповідно, модель повинна бути простою для виведенняабодослідження.
Длявипадку з визначеними для користувачазапитами,
кількістьвихіднихпараметрівповинна бути обмеженанайбільшзначними з
доступнихпараметрів.
 Вихіднідані не можуть бути на 100 % вірними,
оскількикількістьзапитівкористувачівв агрегованій формі
збираютьсятазберігаютьсяпошуковими системами, щопризводить до
отриманняякоїсьпохибки. У випадку
застосуванняприближенихчисельнихметодів чинейронних мереж під
часпрогнозування, даний факт може привести до похибки в прогнозі,
якунеобхідновраховуватипід часрозробкиінформаційноїсистеми.
 Цілісністьмоделі. Розроблюванаінформаційна система має бути
задана у визначених рамках.
 Адекватністьмоделі. Інформаційна система, що реалізуєтьсямає з
деякоюточністюописуватиявище, щодосліджується,
наприклад,кількістьпошуковихзапитіввідповідно до того абоіншогозапиту.
 Керованість. Інформаційна система повинна приймати на вхідхоча б
один заданий параметр, щоб перевіритикоректністьроботи.
 Замкнутістьінформаційноїсистемизаключається у
застосуванніобмеженоїкількостівходівтавиходів, і
відповідновнутрішніхметодівтаалгоритмів.
Інформаційна система, що реалізуєтьсямає на виходіотримувати
результативідображеннядля однієївивченоїструктури на
іншумаловивчену.Будь-яка модель досліджуєтьсята будуєтьсяна основі
певнихприпущеннях тагіпотезах.У разі з визначеними для
користувачапошуковими системами потрібновипустити великий спектр
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 10
факторів, яківпливають на результат, у
випадкунестачіможливостейсучаснихтехнологійпід
часоблікувсіхможливихвхіднихвпливів[11].
Використанняметодіваналізуданихзвільняєаналітика, за
рахуноквикористаннясучаснихматематичнихметодів,відрутиннихопераційта
можливихскладнощівпід часрозумінні результатів, що в
деякомусенсізнижуєімовірністьпрояву негативного людського
фактору.Інформаційнийпідхід до аналізу данихосновується на алгоритмах
видаленнязакономірностей з вихіднихданихтапобудовінормальноїмоделі.
До методіваналізуданихможна
віднестинейромережевітехнології.Окільки машинненавчаннянадає
можливістьзнаходитизакономірності, щоприіншихрівних умовах не
можназнайтикласичнимиматематичними методами, то в його основу
покладенонавчальнувибірка. Данувибірку булоотримано у
виглядісукупностіспостережень за зміноюкількостіпошуковихзапитів в
минулому, щопризначені для користувача.
1.2 Ранжування інформації для інформаційної системи
прогнозування
Існує велика кількістьможливихваріантівшляхівдля
залученняпотенційнихклієнтівщодо перегляду цільовихресурсів,
включаючирозміщенняреклами. Але не вартонедооцінюватитакі
джерелазалученняпотенційнихклієнтів, якпошуковісистеми.Відповідно
допевнихключовихслівта фраз, з точки зорупошуковоїсистеми, той
абоіншийінформаційний ресурс можез’явитися в перших рядах,
якрезультуючийнабір длякористувачавідпповідно допевногозапиту, а як
результатстворитипотікновихкористувачів. Розглянутеджерелоназивають
«природним» [7] тому, щолюдинаперейшла на веб-ресурс не за якимось
рекламнимоголошенням, а через відповідность ресурсу ташуканогозапиту. В
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 11
якій міріпропозиціявідповідаєочікуваннямцільовоїаудиторіївизначає
великакількістькомпаній, якідають доступ до пошуковихпослуг, зокрема
Google. Відповідно доінформації Google [9], механізмиранжирування
інформаціїпов'язанііз великою кількістючинників.
Пошуковоївидачіранжуванняпередбачаєавтоматичнедослідженняпросканової
інформації на предмет відповідностідеякомуключовомузапитукористувачау
визначеномурегіоні і в деякий час.
Щобвизначитивідповідністьзастосовуютьвідоміалгоритмиймовірнісного
латентно-семантичногоаналізу [16] та алгоритм «BM25F», а ще ряд інших,
більшвдосконаленихалгоритмів. ПрихованийрозподілДіріхлезастосовується
дляймовірніснихалгоритмів. Але необхіднозауважити, щоінформацію по
описанихвище алгоритмах можнавідшукати у відкритихджерелах, і у
випадку, колиранжуваннягрунтувалосялише на зазначених алгоритмах, а
саме,завданінаданняпошуковим системам проробленоюінформації з
ціллюполіпшитирелевантністьсвоїхінформаційнихресурсівдляпошукових
систем відносно до конкретнихпошукових запитівбула б
майжевирішеною.Одним з важливихфакторів, яківпливають на
визначеннярелевантності того абоіншогоінформаційного ресурсу має
впливнаявністьйогоцитованості на іншихвеб - ресурсах. З цієї сторони
проблема вирішується не лишекількіснимипоказниками, тобто,з якою
частотоюпосилаються на ресурс, але і якаякістьпосилаємихресурсів, фактор
того, як часто та самехтопосилається на них і т.д.Алгоритм
являєтьсярекурсивнимтавизначає деяку «вагу» для кожного посилання,
цінністьтакористь для людей.Дану «вагу» по-
іншомуназиваютьтематичнимиіндексомцитування, що є
аналогічниміндексуцитуваннянауковихпраць, щонадають
можливістьвизначитинаскількиє важливоюпрацяабостаття для науки [5].
Декількароків тому з'явиласяціла сфера послуг в мережіІнтернетдля
перепродажу посиланьіз відповіднимиякіснимитехнічнимипоказниками, а
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 12
саме, «вагами» таіндексомцитування. Однактакий вид
бізнесутасупутнірезультатидля подібнихперепродажіввідповідно до
здоровоїлогіки негативно позначаються на роботіпошуковихсервісів,
якимпотрібновиявлятитафільтруватисхожіперепроданіпосилання та
перевизначатирелевантністьінформації.
Окрімсервісів, що пов'язані з наданнямдопомоги
відноснопошукуінформації,
пошуковісистемимаютьвласнірекламніпартнерськісистеми, великий спектр
сторонніхсервісів, наприклад, електроннапошта.Велика
кількістьінформаційнихсервісівнадає можливістьвідстежувати шляхи
«переміщення» користувачівувеб-просторі, а в деяких
випадках,відстежуватидії людей. Одним з таких прикладів
єбезкоштовнісервіси для аналітикивідвідуваностівеб-ресурсів, як Google
Analytics, яківикористовуютьбільшеніж 60% власниківвеб-ресурсів
[7].Інформація, яка накопиченапід часроботианалітичнихсервісівнадає
можливістьвизначатикрімрелевантностіінформаціїщодо того
абоіншогозапитукористувача;визначати той факт, як довго люди
проводятьчасу за переглядом наданоїінформації чи не закінчують вони
вивченнявеб-ресурсу через 10 секунд післяпереходу
заелектроннимпосиланням. В даномусенсі ресурс має бути крім того,
щоінформативним, ще й з якіснимунікальнимвмістом, але й користувачам
необхіднопроводитипевний час на ресурсі.
Наявністьрекламованогосервісудлярезультуючоїпошуковоївидачі, що
призначена для користувачащодо пошуковогозапитуу пошуковій системі
дужезначущий фактор. У випадку, коливизначеніпопулярніключові слова
тапошукові фрази веб-ресурсу знаходиться на 1-10 рядку з результуючого
набору відповіднокількістьвідвідувачів даного веб-ресурсу
починаєзбільшуватисяприродним чином[2]. Інформація,
щошукаєтьсянеоднорідна в часі, тобто люди зазвичай
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 13
шукаютьрізноманітнуінформацію в різний час, щомає залежність, наприклад,
від сезону. Щеіснуютьтрендирізноговиду, ситуації, при яких люди
розпочинаютьпошукпевноїінформації, наприклад, щодо
якоїсьнезвичайноїподії абоновини. У визначеномувипадкуз'являєтьсяпотреба
щодовизначенняу майбутньомукількостіпошуковихзапитівпризначених для
користувачащодопевної тематики, відповіднопевномуключовому запитуу
визначеномурегіоніта часовому діапазоні. Отриманаінформаціяможенадати
можливістьїївласниковіпідготуватирелевантнуінформаціювідповідно до
свого веб-ресурсу заздалегідь для конкретнихключовихзапитів, щов свою
чергу, надастьконкурентнуперевагу[4].
1.3 Основи прогнозування щодо визначених даних
Прогнозуванняможнавизначити, як деякуможливістьпередбачити стан
явища, щодосліджується, виконатианаліз стану тамайбутньоїзміни
характеристик та властивостейдосліджуваногоявища. Враховуючи той факт,
що будь-яке рішенняабо прогноз єпроекцієюявища в майбутньому, а
оскільки майбутнєміститьелементневизначеності, то дуже важливо під час
виборуметодівта моделей для прогнозуванняоцінювати в якіймірі та абоінша
модель чи метод відповідаєреальнійситуації, таякоїякостіможнаодержати
результат, а саме з допустимою похибкоюабоні.
Види таформипрогнозування даних
Для загальногорозуміння, якісаме
методичимоделіпотрібновикористовувати під
часпрогнозуванняпошуковихзапитівкористувача необхідно провести
класифікаціюметодівта моделей, щобвизначитиключовіособливості того
абоіншого методу для визначенняпереваг та
недоліківвідповідноспецифікивирішуванихзавдань.
Методпрогнозуванняділить на двіосновнігрупи:
формалізованітаінтуїтивні. Якщо говорити про інтуїтивніметоди, то
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 14
вониґрунтуються на судженнях, з іншої
сторониформалізованіметодиосновуються на математичномуапараті.
Методипрогнозування, що засновані на інтуїціїтасудженнях,
зазвичай,включають в себе опитуваннятаоцінкуекспертів з
використаннямнайпростішихматематичних формул (як
середньоарифметичне)тощо. Інтуїтивніметодидля прогнозуваннядуже часто
застосовуються в політиці, маркетингу,економіці, длявипадків, коли явища,
щодосліджуються є дужескладними і не підлягаютьчіткоїформалізації, або ж
навпаки доситьпрості, а томуданіявищане потрібнооформляти. Інтуїтивні
методипрогнозуваннядокладноописано в статтяхАмстронга Дж. С. [6]. З
іншої сторони, формалізованіметоди, щоописані в літературі,
виділяютьматематичнузалежність застосовуючи яку в
подальшомувиконуютьпрогнозуванняіззаданими параметрами.
Моделіпрогнозуванняможна поділити на двіосновнігрупи[7]:
 моделіпредметноїобласті;
 моделічасовихрядів.
Для
побудовиматематичноїмоделіпрогнозуваннязастосовуютьзаконипредметноїо
бласті, щодосліджується, то таку
модельприйнятоназиватимоделлюпредметноїобласті. Якщо, для прикладу
розглянути прогноз рівня холестерину в організмілюдини, то результати для
ньогоформутьсяу вигляді обчисленьсистемидиференціальнихрівнянь. Втаких
моделях застосовуютьсявзаємозалежності,
щовластивіпредметнійобластіявища, щодосліджується.Моделі,
щопрагнутьзнайтизалежностіпоказників в розрізі часу всередині самого
явища тавідносно до визначенихзалежностей
обрахункупрогнозованогозначеннямають назву моделями часовихрядів. Дані
моделісамі по собіуніверсальніщодорізнихпредметних областей [8].
Властивістю моделей
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 15
часовихрядівявляєтьсявисокапрогностичназдатністьдлявипадківдосліджень,
щопов'язані з сезоннимиявищами.
Застосовуючимодельчасовихрядівдля вирішеннязавданнь, що
дужесхожііз
завданнямпрогнозуванняпошуковихзапитівкористувача.Цевизначено з
урахуванням того факту, щобільша частиназапитівповторюються з року в рік
абокожен квартал чимісяцьЗначначастинарозповсюджених запитів
повторюється з відносноювірогідністю [11]. На сьогодні існує велика
кількістьрізнихваріантівдля класифікації моделей
часовихрядів,загальнакласифікація для якихзапропонована в статті «Power
System Short-termLoadForecasting» [8]. Відповіднодо цієї
класифікаціїмоделічасовихрядівможна поділити на двіосновнігрупи:
структурні та статистичні.
В той же час, необхіднозазначити, що в описанійкласифікації моделей
таметодів не було включенонаступнімоделі: модель генетичного алгоритму
та метод опорнихвекторівтаінші.
Узагальнену описанукласифікацію моделей прогнозуваннянаведенона
рисунку 1.1.
Длястатистичнихмоделейвзаємозалежностіщодопрогнозуванняможнап
редставити у виглядіякогосьрівняння.Наприклад, моделі з
експоненціальнимзгладжуванням аборегресивноїмоделі таін.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 16
Рисунок 1.1 - Класифікаціяметодівта моделей прогнозування запитів
Також, до структурних моделей можна віднестимоделі
нейромережногоаналізу, моделікласифікаційного(регресійного)аналізута
моделіланцюгів Маркова.У таких моделях залежностіхарактеризуються у
виглядідеяких правил абоструктуридля перехода за однієюіз заданихточок до
майбутньогозначення.
Суть прогнозування пошукових запитів
Можнавиділити великий набірфакторів, якідіють на
змінукількостізапитівпопевнихключових словахабогрупіслів.
Сюдиможнавіднестивплив сезону, перевагспоживачів,моди,
політичноїситуації в світі,визначеномурегіоні, економічноюобстановкою.
Такожвпливможеописуватисяособливостями предмету,
об'єктузапитуабосутізапиту та ін. Але, більше 60-70% всіхвизначених для
користувачазапитівтіснозв'язані з щоденнимипитаннями, відповідно
пошукомінформації в площі контексту, якимиможецікавитисякористувач
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 17
[11]. Данеявищевизначаєнаявністьочнихсезоннихта«історичниххвиль»,
щорічних повторів, зростанняцікавості до того
абоіншогооб'єктукористувацькогоінтересу.
Порівняння моделей таметодів для
прогнозуванняаналізупошуковихзапитів
У кваліфікаційнійроботібакалавра було проведено порівняльнийаналіз
моделей та методівпрогнозуваннявідповідно
довиділенихкритеріївоцінкиякості,проведено огляд моделей та
методівпрогнозування, з врахуваннямпоставленихзавданьта мети
реалізаціїінформаційноїсистемидля
прогнозуванняпошуковихзапитівкористувача.Вимоги та критеріїщодооцінки
моделей та методівпрогнозуваннябулорозглянуто в статті [1]. Наступним
крокомпотрібнодокладнішепровести огляд всьогоспискувимогтакритеріїв.
По-перше метод або модель, яківикористовуються з метою
прогнозуваннямає [10]:
 задовольнятиумовам, що пов'язані з кінцівкоюалгоритмів
(обмежує час отриманнярішення);
 задовольнятивимогамповноти,адаптивності таеволюції;
 передбачатиперевіркуістинності, а саме відповідностіотриманих
реальнихрезультатів;
 орієнтуватися на можливість розробкипід час
використанняіснуючихзасобів та бути нормальновиконаною на
визначеномурівнірозвиткуінформаційноїтехнікита технологій;
 бути «абстрактної», включаючизмінніпараметри;
 будуватисяіз
застосуванняміснуючоїкласичноїнауковоїтермінології;
 забезпечуватиповерненняпотрібноїінформації про явище,
щодосліджується, в контекстіпоставленогозавдання.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 18
Під часвибору
прогнозуваннязастосовуютьсяголовнітазагальнікритерії.До
загальнихкритеріїввідносяться: мета;завдання; об'єкти; проблеми; характер;
методи; організаціяструктуридля здійснення прогнозу [1] та ін. Реалізація
прогнозу багато в чомувизначається метою для якоїпризначено прогноз, що і
являєтьсяголовнимкритерієм.
Прогнозиможнахарактеризуватизацілями, формі тавідповідіна якубуло
зроблено прогноз.
Ціліпрогнозуванняподіляються на такі типи[14]:
 технологічна мета, що
характеризуєтьсянаданнямкорисноюінформації для діїабо
керуючогорішення;
 безадресна мета, основнимзавданнямякоїє отриманняновихзнань
про подібнівідповідно до об'єктаявища, щодосліджується.
Виділяютьтакіформипрогнозів:
1. Активна (конкретна);
2. Пасивна (абстрактна);
3. Вербальний вид прогнозування.
Прогноз може бутирозглянутимвідповідновідповіді на запитання:
oякісаме явищавідбудуться на зазначену дату?
oколивідбудетьсявизначенеявище?
Основні правила та принципи, що використовуються під
часрозробкинаукового прогнозу[11]:
1. «Узгодженість», тобто узгодженнянормативнихта
пошуковихпрогнозіврізного родутаперіодупопередження.
2. «Системність» - це підпорядкованістьта
взаємопов'язаністьоб'єктупрогнозування та прогнозованого фону
та їхелементів.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 19
3. «Безперервність» - це процес облікуновихданих про
об'єктпрогнозування в процесіїхнадходження.
4. «Варіантність» - облікваріантівпрофілю прогнозу та
прогнозного фону.
5. «Рентабельність» - ефективністьзастосування прогнозу для
обґрунтуванняприйнятогорішення над витратами на його
реалізацію.
6. «Верифіковані» - точність, достовірність таобґрунтованість
прогнозу.
Вибірмоделіабо методу для прогнозуванняабопоєднаннядекількох
методів, а такожприйманнянавиконанняопераційзалежить не лишевідоб'єкту,
але йвідтого, якаситуаціяскладається на даний момент,
кількостіматеріальнихталюдськихресурсів, щовключаються в
розробку,наявностідоступнихджерелінформації, та ін., але жоденз прогнозів
не можевміщувативідомостіпроподії, щовідбудутьсята коли вони
відбудуться. Длявипадкупризначених для користувачапошукових
запитівбуло проведенопорівняльнийаналіз моделей та методівдля
прогнозування в розрізівідповідностіперерахованих вищекритеріям, а також
в площізавданьданоїкваліфікаційної роботи.На
основіпроведеногоаналізубулообрано такіспособипрогнозування[12]:
oстатистичнімоделі:
 регресійнийаналіз;
 методХольта-Вінтерса;
oструктурнімоделі:
 Нейроннімережі.
1.4 Аналіз основних характеристик для існуючих рішень
Існує ряд аналогів для інформаційної системи, що розробляється.
Частина з них носить лише демонстраційний характер і не використовується
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 20
для комерційного застосування у відкритому доступі. Першим рішенням є
Google Trends [14]. Цей веб -сервіс дозволяж отримати прогноз на популярні
запити (понад 100 тисяч на місяць) на місяць вперед. В розробці цього
рішення бере участь і технологія машинного навчання. Але застосування
прогнозів в комерційних цілях (тобто, відповідне звернення користувача
зазвичай регулюються певними квотами щодо кількості запитів) можливо
тільки після придбанні дорогої пошукової ліцензії Google [7].
У компанії Google розроблено сервіс FluTrends [13], який демонструє
можливості компанії під час прогнозування того або іншого явища на основі
певної кількості запитів користувача.
Фахівці компанії Google в даному сервісі стверджується, що деякі
пошукові запити користувачів можуть бути показниками вірусної активності
грипу протягом заданого часу. Сервіс GoogleFluTrends застосовує в своїй
роботі агреговані та зведені дані щодо запитів користувача, щоб оцінювати
ситуацію відносно поширення грипу в світі. Кожну секунду мільйони
користувачів по всьому світу виконують пошук інформацію про здоров'я в
мережі Інтернет. Фахівці компанії Google знайшли тісний взаємозв'язок, що
підтверджено математично, між кількістю користувачів, що цікавляться
грипом і числом хворих на грип безпосередньо.
Зрозуміло, людина, що шукає інформацію, яка пов'язана зі словом
"грип", не обов'язково насправді є хворою, але скомбінувавши масив
подібних запитів можна визначити загальну тенденцію. Кількість пошукових
запитів було порівняно із спостереженнями систем епідеміологічного
контролю. Результати даного порівняння показали, що деякі терміни
надзвичайно поширені при піку захворюваності. Виконавши розрахунок
відповідних коефіцієнтів, що показують наскільки часто застосовуються ті
або інші запити, можна виконати оцінку масштабів поширення вірусного
захворювання грипу в межах країн або регіонів. Отримані фахівцями Google
результати обчислень було опубліковано в журналі [7].
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 21
Співвідношення даних щодо кількість запитів (в площі масиву запитів,
що помножено на відповідні коефіцієнти), та даних санітарно-
епідеміологічних станцій відносно поширення вірусу грипу наведені на
рисунку 1.2.
Рисунок 1.2 - Співвідношенняоцінки Google та реального
поширеннявірусугрипу в США
В опублікованій статті [7] стверджується, що є можливість
спрогнозувати поширення на Землі вірусу грипу ще до того, коли люди
розпочнуть шукати відповідну інформацію в пошукових системах.
1.5 Постановка завдання на розробку
Метою кваліфікаційної роботи бакалавраявляєтьсяпроектуваннята
реалізація аналітичної інформаційної системи, щодозволить прогнозування
конкретних пошукових запитівкористувача.
До задачікваліфікаційної роботи можна віднести підвищення
показників для прогнозування пошукових запитів користувачів без офлайн
збору статистики.
Під час реалізації інформаційної системи було поставлено такі
завдання:
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 22
 виконати аналіз спеціальної літератури, зібрати, систематизувати
та узагальнити інструктивні та нормативні матеріали;
 проаналізувати предметну область реалізації;
 виконати аналіз методологій збору та аналізу даних;
 проаналізувати інформаційні технології для розробки системи;
 реалізувати інформаційно-аналітичну систему;
 виконати тестування та налагодження реалізованої інформаційної
системи.
Результатом роботи являється інформаційна система, що дозволяє
застосовувати вдосконалений метод пошуку та аналізу даних на основі
закладених алгоритмів.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 23
РОЗДІЛ 2 ДОСЛІДЖЕННЯ НАЯВНИХ СЬОГОДНІ МОДЕЛЕЙ
ДЛЯ ПОШУКУ ІНФОРМАЦІЇ
2.1 Види моделей для пошуку інформації
 Булева модельдля пошуку інформації являється однією з
найпростіших та передбачає вичерпнепорівняння документу та
запиту користувача. Модель має таку назву завдяки
використанню булевої алгебри, адже слова в запиті логічно
пов’язуються булевими операторами АБО, І та використанням
заперечення.
 Модель векторного простору.Функціонал даної моделі
характеризується трансформацією текстових даних у числові
матриці та вектори, а також виявленням ключових зв`язків у
тексті під час аналізу матриць. Вага окремих термів для цієї
моделі обраховується як TF*IDF, де TermFrequencyє локальною
частотоютерма, а InverseDocumentFrequency величиною, яка
обернена до частоти застосування цього терму в інших
документах.
 Ймовірнісна модель. Для цієї моделі актуально, що
документиранжуються відповідно до величин релевантності, а це
значить, прямо пропорційноімовірності їх відповідності запиту і
в свою чергу обернено пропорційно ймовірності того, що вони не
відповідають запиту.
Теперішні пошукові системи мають таку архітектуру[16]:
 Сrawler (тобто, павук) виконує сканування Інтернет ресурсів для
пошуку інформації, зберігає її та категоризує.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 24
 Репозиторій сторінок виконує зберігання сторінок, що були
повернуті павуками, але ще не були проіндексованими або ж
популярні сторінки.
 Модуль індексування реалізує стиснутий опис сторінки та будує
бази даних по ключовим словам.
 Індекси виконують збереження бази даних по ключовим
словами у форматі зручному для пошуку за цими словами.
 Модуль запитів виконує запити до індексів та перетворює
запити користувача написані природною мовою на мову
пошукової системи.
 Модуль ранжування ранжує отримані набори релевантних
данихвідповідно до певного критерію (наприклад, за оцінкою
змісту та популярністю).
На рисунку 2.1 наведено архітектуру для сучасних пошукових
систем.
Рисунок 2.1 – Архітектура існуючих пошукових систем
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 25
2.2 Класифікація інформаційно-пошукових систем
 Класифікаційні інформаційно-пошукові системи (ІПС) [15].
Для таких ІПСзастосовується ієрархічна (деревовидна)
організація інформації, яку називають«КЛАСИФІКАТОРОМ».
Розділи класифікатора називаються «РУБРИКАМИ». Якщо
говорити про аналог бібліотечної класифікаційної ІПС, то таким
є систематичний каталог. Класифікатор реалізовується
тавдосконалюється колективом авторів. Далі систематизатори
вичитують документи та каталогізують їх до певного розділу
класифікатора.
 Словарні ІПС. Проблеми, що пов`язані зізастосуванням
класифікаційних ІПС, привели до розробки ІПС словарного типу,
що носить узагальнюючу назву«searchengines». Основною ідеєю
для словарної ІПС є реалізація словника зі слів, що зустрічаються
у документах Інтернет, для якого під час зустрічі кожного слова
буде зберігатись список документів в яких зустрічається дане
слово.
 Предметна ІПС.Предметна ІПС говорить про те, що з кожною
назвою зв`язані списки відповідних ресурсів в Інтернеті.
Використання таких системи є доволі ефективними під час
роботи з невеликими обсягами інформації.
Існує два основних алгоритми роботи словарних ІПС, а саме, із
застосуванням ключових слівта дескрипторів. У першому випадку, щоб
оцінити склад документу застосовуютьсятільки ті слова, що в ньому
зустрічаються тапід час запиту ІПС співставляє слова із запиту відповідно до
слів з документу, а потім визначає за розташуванням, кількістю та вагою
слів відповідно до запиту в документі його релевантність. Усі сучасні ІПС
застосовують даний алгоритм у різних його модифікаціях.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 26
Під час роботи з дескрипторами документи, які індексуються
перекладаються на певну інформаційну дескрипторну мову. Дескрипторна
мова складається з алфавіту (символів), слів, засобів для вираження
синтагматичних та парадигматичних зв'язків між словами. Парадигматика
використовується для зв`язків між поняттями. Такими зв`язками можутьбути
наприклад, синонімію або омонімію. Це означає, що запит користувача
перетворюється в дескриптори та обробляються ІПС вже в такому вигляді.
Даному підходунеобхідно більше обчислювальних ресурсів, але в свою
чергу, він є потенційно більш продуктивним, адженадає можливість
відмовитись від критерію релевантностіта працювати безпосередньо з
документами [6].
Сьогодні все частіше пошукова інформація, також копії документів,
зберігається у самій інформаційно-пошуковій системі. Це було визначено
ненадійністю обладнання та початкових каналів зв’язку і давало можливість
користувачу ІПС незалежно від типу доступності документу знайомитися з
ним. На відміну від цього це призводить до того, що інформаційно-пошукові
системиповинні збільшувати свої обчислювальні потужності
експоненціальновідповідно до збільшення кількості документів в Інтернет.
Відповідно до цьоговиникає проблема оновленості проіндексованих
сторінок. Вона являється також важливою під час пошуку наукових
матеріалів, у випадку коли існує потреба у актуальній інформації.
Іншою проблемою сучасних пошукових систем є «невидимий веб»
(invisibleweb). Даний термін з’явився ще в 1994році. Його
застосувавДжіллІллсворт (JillEllsworth), щоб позначити джерела, що з будь-
яких причин недоступні для звичайних пошукових систем. Іншими назвами
для даного терміну є «темний веб» (darkweb) або «глибокий веб» (deepweb).
Основною причиною потрапляння джерел до невидимої частини вебу
являється їх інтерактивний характер. Декілька основних причин цієї
проблеми [17]:
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 27
 У випадку, якщо інформація розміщена не в традиційному
для веб html-форматі. Одним з кроків, що було зроблено для
подоланняданої проблеми було початок індексування файлів у .docта
pdf-форматах у лютому 2001 рокусистемою Google. Це дало
можливістьзбільшити проіндексовану частину наукових матеріалів,
адже більшість їх викладено в форматах .doc та .pdf;
 доступні через web бази даних, якідинамічно генерують
інформаційні сторінки в процесі виконання користувацьких запитів та
не можуть бути проіндексовані звичайними пошуковими машинами,
які переходять за посиланнями.
 але найважливішою проблемою під час пошуку наукових
матеріалів за допомогою пошукової системи являється те, що під час
ранжування не буде враховуватися тематика документу, що,в свою
чергу, призводить до великої кількості «шуму» у пошукових
результатах.
Одним з варіантів для вирішення визначеної проблеми булареалізація
спеціалізованих систем для пошуку наукових матеріалів.
Можна зробити висновок, що до основних рисіснуючих пошукових
систем можна віднести:
 роботу з великим обсягом проіндексованих сторінок;
 потужність;
 динамічність.
Але, якщо говорити, наприклад, про пошук наукових публікацій, то для
таких систем характерна відсутність методів виділення наукової інформації,
що, в свою чергу, робить ці системи недостатньо ефективними під час
пошуку наукових матеріалів.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 28
РОЗДІЛ 3 РЕАЛІЗАЦІЯ ІНФОРМАЦІЙНОЇ СИСТЕМИ
ПРОГНОЗУВАННЯ
3.1 Структура інформаційної системи
Відкритістандартидля
інформаційнихтехнологійнадаютьвідносновисокугнучкістьсистеми з
мінімальнимивитратами. Але необхідно памятати,
щозастосуванняінформаційнихтехнологій з відкритими стандартами тавільно
- поширюваногопрограмногозабезпеченнясаме по собі не є безпечним,
оскільки такірішенняможутьперебувати в зоніризику через
доступностіінформації про саму структуру технологій.
Для реалізаціїінформаційноїсистемипрогнозуванняпризначених для
користувачазапитівбулообранотакікомпоненти:
1. Web -сервер додатківApache2.2.
2. Сервер баз даних під назвою MySQL5.5.
3. Сервер для балансуванняавантаження NginX Load Balancer 1.4.
4. ОС Linux.
5. Web - інтерфейсдля роботи з базами
данихMySQLPhpMyAdmin 4.1.
Сервер для балансуваннянавантаженняNginXLoadBalancer1.4 надає
можливість розпаралелитивиконуваний код для
оптимізаціїобчислювальнихвитрат. Даний процес наведено на рисунку3.1.
Всі необхідні компоненти поширюються за безкоштовною ліцензією
GNU GPL та ліцензією MIT. Для розробки програмного додатку було обрано
мову програмування PHP версії 5.4. Визначені компоненти у сукупності
надають можливість найбільш ефективно налаштовувати віддалений web -
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 29
сервер для того, щоб виконувати поставлені обчислювальні задачі для
автоматизації [7].
Рисунок 3.1 - Сервер балансувальник навантаження
NginX Load Balancer 1.4.
Для розробки модулів зі збору статистичних даних застосовується
кросплатформенна службова програма командного рядка з URL. Виклик
даної програми можливий безпосередньо з php-коду, що надає можливість
інформаційній системі співпрацювати з великою кількістю серверів за
безліччю різними протоколами із синтаксисом URL. Говорячи іншими
словами, робота з URL надає можливість завантажувати дані з відкритих
джерел. Таким наприкладом є статистика пошукових запитів із
«WordStatYandex» та «GoogleTrends» [4]. Реалізація інформаційної системи у
спрощеному форматі виглядає наступним чином, як наведено на рисунку 3.2.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 30
Далі після збору інформації та під час доступності вільних ресурсів
будуть викликатися функції обробки даних, аналіз часових рядів,
регресійний аналіз, і підхід, що пов'язаний з нейромережевими технологіями.
Рисунок 3.2 - Узагальнена схема роботи інформаційної системи
3.2Збір статистичних даних
Збір статистичних даних виконується за допомогою менеджера
завантажень з URL за наперед відомим джерелам даних. Звернення
виконуються ітераційно кожні кілька хвилин протягом доби, допоки дані не
буде отримано або не буде отримано повідомлення про помилку.
Інструменти для обробки дублікатів та протиріч включено в комплекс засобів
інформаційної системи для обробки даних та структурування інформації, яка
завантажується. Під час обробки протиріч та дублікатів потрібно
враховувати специфіку предметної області.
В процесі виконання досліджуваної кваліфікаційної роботи над одними
пошуковими запитами, в процесі завантаження статистики потрібно
контролювати коректність даних відносно запиту користувача, що
досліджується, датою та локації кількості запитів. Це надасть можливість
уникнути втрачання інформації із-за неправильної інтерпретації дублюючих
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 31
та суперечливих записів, а як результат, уникнути надмірності інформації.
Щоб уникнути даних характеристик було використано присвоювання часу
обробки запису та відсотку схожості до інших записів в системі у вигляді
окремих атрибутів.
Трансформація даних являє собою комплекс методів та алгоритмів, що
спрямований на оптимізацію представлень та форматів даних в площі
завдань, що вирішуються та мети аналізу. Трансформація даних не полягає в
зміні інформаційного змісту даних, а її завдання заключається у представлені
цієї інформації в такому вигляді, щоб інформацію можна було б використати
найбільш ефективно [8].
Трансформація даних для аналітичного додатку відбувається перед
виконанням аналізу, у випадку, коли цілі та методи додатку визначені, що
надає можливість аналітику найкраще підготувати дані, виділити та
визначити в них найнеобхіднішу інформацію для найефективнішого її
застосування.
Збирання даних про кількість пошукових запитів виконується шляхом
формування запиту HTTP GET до web -серверу GoogleTrends. Отриманий
набір даних, зазвичай, представлено у форматі json. До стандартних функцій
мови php версії 5.4 можна віднести можливість конвертувати json-маса в
php -масу. Після виконання конвертування отримані дані заносяться в базу
даних MySQL.
Наприклад, джерелом даних збору статистики про кількість згадок в
новинах застосовувалися агрегатори новин «rss-каналів», а саме «Google-
Новини» та «Feedly». В даних каналах інформаційна система виконує перебір
основних новинних стрічок по категоріям новин та робить оцінку того, як
часто зустрічається повна відповідность запиту користувача, що
досліджується. В процесі дослідження під час наявності частих згадок для
прогнозування, крім методу Хольта-Вінтерса також підключається
розрахунок тренду при застосуванні регресійного аналізу [4].
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 32
Для розробки методів прогнозування було використано бібліотеку для
нейронних мереж FANN та запрограмовано метод для регресійного аналізу
та метод Хольта-Вінтерса. Більш детально з розробкою вихідного коду
можна ознайомитися в Додатку Б, де представлено лістинг вихідного коду.
Отримані розрахунки для лінійної та поліноміальної регресії, методу
Хольта-Вінтерса та нейронних мереж зберігаються в базу даних
інформаційної системи та виводяться у вигляді зведеної таблиці на екран
користувача, як результати роботи системи.
Для того, щоб отримати найкращі оцінки для розрахунку
поліноміальной регресії виконується перевірка виконання передумов, тобто
умов Гаусса-Маркова - коефіцієнти розраховуються методом найменших
квадратів [2].
У випадку виявлення частого використання шуканого пошукового
запиту в новинах протягом останніх 2 місяці, в такому випадку, окрім методу
Хольта-Вінтерса та регресійного аналізу виконується розрахунок з
використанням нейронних мереж. Тобто, на входи нейронної мережі
надаються відсортовані дані про кількість запитів за пошуковим запитом
протягом останніх 5 місяців і частоту цитування запиту, що шукається в
новинах за останні 2 місяці.
Для можливості автоматичного проектування застосовується один
внутрішній шар, для якого кількість нейронів збільшена на 1 в порівнянні з
вхідними нейронами; з одного з вихідних нейроннів виводиться
відсортований показник (від 0 до 1), а це означає прогнозування щодо того,
наскільки відсотків буде змінено майбутній показник.
3.3Проектування схеми баз даних для реалізованої системи
Основною метою бази даних є економія ресурсів інформаційної
системи, тобто скорочення кількості обчислень для прогнозування. Отримані
під час аналізу та прогнозування дані для запиту «А» будуть збереженні в
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 33
системі і під час повторного виклику для обробки запиту користувач отримає
вже збережений в базі даних результуючий набір.
Для нормального функціонування системи було спроектовано та
приведено до нормальної форми третина бази даних, яка містить 15 таблиць.
Схему бази даних наведено на рисунку 3.3.
Рисунок3.3 – Схема базиданих для розроблюваної інформаційної
системи
Спроектована база данихмістить 6 довідників тадвідопоміжнітаблиці
для типу зв'язку «багато-до-багатьох». Реалізація коду для проекту, його
функцій, що взаємодіють в додаткахтавиконуютьрозрахункинаведено в
Додатку Б.
До базиданих включенотакірозділи:
 інформація про прогнозування;
 інформаціящодопошуковихзапитів;
 інформація про клієнтаінформаційноїсистеми.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 34
Вбазіданихнаявнінаступні поля:
1. “Слово дляпошукового запиту”. Використовуєтьсякожнеокреме
слово дляпошуковогозапитукористувача, що в сукупності
складаєпідмножиназапитівкористувачів. Дане поле маєрядковий тип
–“STRING”.
2. “Пошуковий запит”. Це може бути слово абословосполучення,
що досліджуються в площіроботиінформаційноїсистемиз
прогнозуванняпошуковихзапитівкористувача. Для полявизначенорядковий
тип, тобто список ключів, щопосилаються на окремі слова.
3. “Статус слова в пошуковомузапиті”.Дане поле є
допоміжнимдодатковим полем тамаєчисловий тип –“INTEGER”.
4. “Статус пошуковогозапиту”. Єдопоміжнимдодатковим полем з
числовим типом“INTEGER”.
5. “Дата отримання кількостізапитівза заданимпошуковимзапитом”.
Поле,що фіксуєкількостізапитів за датою. Визначений тип для даного поля
“DATETIME”.
6. “Кількістьзапитівза заданимпошуковим запитом”єчисловим
полем, щопоказує, кількістьзапитів, щобула отриманаза заданимключовим
запитом(тип ‘INTEGER”);
7. “Тип джереладаних”являєтьсядопоміжним поле, щохарактеризує
тип джереладаних, яке призначено для визначенняметодівтаінтерфейсівпід
час роботи з визначенимджереломстатистичнихданих.
8. “Джерелоданихкількостівиконаних запитівза заданимпошуковим
запитом”являє собоюдеякеджерелоданих (наприклад, « Google Trends » або
«Яндекс WordStat »). Має тип поля представлене якпосилання на ключ в
таблиці-довідникуджерела статистики.
9. “Статус джереладаних”єдопоміжнимдодатковим поле, яке
маєчисловий тип даних“INTEGER”.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 35
10. “Версіяджереладаних”.Поле в
якомувказуєтьсяверсіяджереластатистичнихданих, щоб
контролювативерсіїпрограмнихінтерфейсів (наприклад, введення
облікуоновлення API ). Має тип поля “STRING”.
11. ”Датастворення прогнозу”. В полі вказується час і дата
формування прогнозузапошуковим запитом. Має тип поля “DATETIME”.
12. “Визначенезначенняпо заданомупошуковому
запиту”.Являєтьсячисловийпоказником, щовизначає результат отриманого
прогнозу за заданимпошуковим запитом. Тип зазначеного поля “INTEGER”.
13. “Статус прогнозу”єдопоміжнимдодатковим поле,
щомаєчисловий тип.
14. “Дата останньогооновленняпрогнозу”Визначаєдату та
часостанньогооновлення прогнозу запошуковим запитом. Має тип поля
“DATETIME”.
15. “Статус помилки прогнозу”. Єдопоміжнимдодатковим
полечислового типу.
16. “Похибка прогнозу”.Поле, щовказуєочікувану у
відсоткахпохибкудля прогнозуваннята має тип “TINYINT”.
17. “Кількістьдійклієнта”. Єдопоміжнимдодатковим поле, що
рахуєкількістьдійкористувача в площіінформаційноїсистеми. Тип поля–
“INTEGER”.
18. “Статус клієнта”. Поле єдодатковимдопоміжнимта маєчисловий
тип.
19. “Клієнт”. Є ключем, щоідентифікуєкористувача, щозвертається
до інформаційноїсистемищодопрогнозуваннязапитів. Поле міститьчисловий
тип даних.
20. “Дата запитуклієнта” являєтьсядопоміжнимдодатковим поле,
щозберігає дату та час, коли запит надійшов відкористувача до системи.
Типом даних поля є “DATETIME”.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 36
21. “Запит клієнта”.Допоміжнедодаткове поле,
якепозв'язуєкористувачівінформаційноїсистемивідповідно
допроаналізованих ними пошукових запитів.
3.4 Реалізація екранних форм та тестування інформаційної системи
Щобвізуалізувати результатироботиінформаційноїсистеми і щоб
отриматиможливістьекспортурезультатів, застосовувався формат данихjson.
Такий формат надає можливістьпередаватидані на клієнта, що в свою
чергумає можливістьїхоброблятитавізуалізувати на своємубоці, при
цьомузнижуючинавантаження на серверисамої інформаційноїсистеми.
Для візуалізації одержанихрезультатівзастосовувалисябібліотеки
«A mcharts», якідозволяють виводитидані форматуjsonу виглядіграфіків на
клієнтськомупристрої використовуючи мову програмування javascript.
Візуалізаціяданих єодниміззатребуванішихзасобіпід
часвирішеннябільшостізавданьіз
аналізуданихтапрогнозування.Візуалізаціяінформації тіснопов'язаної з
машиннимнавчанням, тобтонейронним мережам дозволяєможливість очно
ташвидкооцінюватипроцеспроектування, навчання,
збіганнямоделінейронноїмережі та ін.
Під час реалізаціїінформаційноїсистемибули розробленотакі типи
візуалізації.
•Загальногопризначення, який в
інформаційнійсистемівикористовується для візуальноїоцінкиякостіта
характеру даних, статистичних характеристик
пошуковихзапитівкористувача,розподілузначеньдля ознак і т.д.
•Інтерпретаціярезультатіваналізузастосовується для наочного
представленнякінцевихрезультатіваналізу у найбільшзручномувигляді для
користувача.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 37
•Оцінкаякостірезультатів. Означає можливість в
інформаційнійсистеміоцінити характеристики прогнозування,
включаючиефективність,точність та достовірністьрезультатів, щонаведено в
розділі «Статистика» інформаційноїсистеми.
Під час тестування та налагодженняінформаційноїсистемибуло
застосовано наборивхіднихтавихіднихтестів. У першу чергу було проведено
перевіркупрацездатностіінформаційноїсистеми, щопов'язанаіз
штатнимизахистамивідрізного родуsql – injection та
наобмеженнявеликоїкількостізапитіввід одного користувача (так звана
фільтраціяddos-атаки). Також в перевірку було включено тести длявхідних
даних на довжинунаборів: «нуль», «один» та «багато». А це значить, щобуло
зробленоспробувведенняпорожніхвхідних даних. Також
необхідноперевіритидовжинурядків, щовводяться, а самебільшетаменше 255,
оскільки в процесіреалізації, виконуєтьсязаповненнядеякогочастин тексту
вподальшому для йогообробки.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 38
РОЗДІЛ 4 ТЕСТУВАННЯ ОТРИМАНИХ РЕЗУЛЬТАТІВ ПІД ЧАС
ЗАСТОСУВАННЯ ВДОСКОНАЛЕНОГО АЛГОРИТМУ РОБОТИ
4.1 Результати отримані під час тестування
В процесі розробки алгоритму пошуку та обробки інформації однією з
основних задач є необхідність перевірити роботи системи на коректне
відображення даних, введення та обробки інформації, саме для цих цілей
було проведено велику кількість різноманітних тестів.
Для того, щоб унеможливити виникнення помилок в процесі
використання розробленої програми було виконано тестування процесу
введення даних користувачем шляхом введення пустих значень, введення
одного слова або групи слів.
Було виконано тестування функціоналу за методами Хольта-Вінтерса,
нейронної мережі та поліноміальної регресії. Виконано їх порівняльний
аналіз для можливості визначення найбільш коректних результатів для
пошуку та застосування відповідно до поставленого завдання.
Загальна кількість проведених тестів рівна 13, під час яких було
виконано зміну параметрів користувацького введення та безпосередньо зміна
функціоналу.
Така кількість тестів та відповідно зібрані статистичні дані надали
можливість повністю перевірити програму на присутність помилок та
визначити її придатність для використання.
Отримані результати тестування було занесено до таблиці 4.1, щоб
мати можливість комфортно ознайомитися з результатами та мати
можливість порівняти визначені помилки та результати під час зміни вхідних
умов тестування для алгоритму пошуку.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 39
Результати тестування для класів вхідних і вихідних даних
представлено в таблиці 4.1.
Таблиця4.1–Тестування для класів вхідних та вихідних даних
4.2 Опис процесу тестування інформаційної системи
У процесі тестування було проведено тестування введення даних
користувачем для перевірки достовірності фактичного результату відносно
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 40
очікуваному, щоб впевнитися у коректності роботи системи та її реагуванні
на різного роду запитикористувача.
Було проведено 13 тестів для різних варіантів введення даних
користувачем для різних методів. Перелік тестів наведено нижче:
1. Введення користувачем запиту, що рівний більше 255 символам.
2. Порожнє введення.
3. Введення користувачем одного слова в запиті.
4. Введення користувачем групи слів у запиті.
5. Введення великої групи «незв'язних слів».
6. Введення користувачем групи «незв'язних слів».
7. Часте введення користувачем запитів в систему, а саме частіше
одного рази в хвилину на протязі 5 хвилин.
8. Повторне введення групи «незв'язних слів».
9. запитів в систему, а саме частіше одного рази в хвилину на протязі
5 хвилин.
10.Повторне введення користувачем великої групи «незв'язних слів».
11.Повторне введення групи «незв'язних слів».
12.Повторне введення користувачем великої групи «незв'язних слів».
13.Повторне часте введення запитів користувачем в системі (частіше
одного разу в хвилину на протязі 5 хвилин).
Як результат було отримано результати, що в повній мірі відповідають
очікуваним, а тому можна зробити висновок, що реалізована інформаційна
система функціонує коректно та виконує покладені на неї завдання.
Невідповідності під час тестування та порівняння фактичного та
очікуваного результату виявлено не було.
Результати тестування вхідних даних наведено в таблиці 4.2.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 41
Таблиця 4.2 –Опис процесу тестування для реалізованої
інформаційної системи
Тест Введення Очікуваний Фактичний
результат результат Відповідність
Виведення Виведення
1 Порожнє повідомлення повідомлення
введення про помилку про помилку +
порожнього порожнього
введення введення
Введення Повідомлення Повідомлення
запиту про помилку про помилку
2 користувачем «Некоректна «Некоректна +
більше 255 довжина довжина
символів введення» введення»
Введення Відповідний Відповідний
3 користувачем набір у вигляді набір у вигляді
одного слова в результату результату +
запиті прогнозу прогнозу
Введення Відповідний Відповідний
4 користувачем набір у вигляді набір у вигляді
групи слів під результату результату +
час запиту прогнозу прогнозу
Повідомлення Повідомлення
Введення про помилку про помилку
користувачем неможливості неможливості
5 групи виконання виконання +
«незв'язних прогнозу прогнозу
слів» внаслідок внаслідок
нестачі даних нестачі даних
Повідомлення Повідомлення
Введення про помилку про помилку
6 великої групи неможливості неможливості
«незв'язних виконання виконання +
слів» прогнозу прогнозу
внаслідок внаслідок
нестачі даних нестачі даних
Часте введення Повідомлення Повідомлення
запитів у про помилку про помилку
систему, а саме неможливості неможливості
7 частіше одного прогнозу прогнозу +
разу в хвилину внаслідок внаслідок
на протязі 5 нестачі вільних нестачі вільних
хвилин ресурсів ресурсів
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 42
Продовження таблиці 4.2
Повідомлення Повідомлення
Введення про помилку про помилку
користувачем неможливості неможливості
8 групи прогнозу прогнозу +
«незв'язних внаслідок внаслідок
слів» нестачі вільних нестачі вільних
ресурсів ресурсів
Введення Повідомлення Повідомлення
користувачем про помилку про помилку
9 великої групи неможливості неможливості +
«незв'язних прогнозу прогнозу
слів» внаслідок внаслідок
нестачі даних нестачі даних
Часте введення Повідомлення Повідомлення
запитів у про помилку про помилку
систему, а саме неможливості неможливості
10 частіше одного прогнозу прогнозу +
разу в хвилину внаслідок внаслідок
на протязі 5 нестачі вільних нестачі вільних
хвилин ресурсів ресурсів
Повідомлення Повідомлення
Введення про помилку про помилку
користувачем неможливості неможливості
11 групи прогнозу прогнозу +
«незв'язних внаслідок внаслідок
слів» нестачі вільних нестачі вільних
ресурсів ресурсів
Введення Повідомлення Повідомлення
користувачем про помилку про помилку
12 великої групи неможливості неможливості
«незв'язних прогнозу прогнозу +
слів» внаслідок внаслідок
нестачі даних нестачі даних
Часте введення Повідомлення Повідомлення
запитів у про помилку про помилку
систему, а саме неможливості неможливості
13 частіше одного прогнозу прогнозу +
разу в хвилину внаслідок внаслідок
на протязі 5 нестачі вільних нестачі вільних
хвилин ресурсів ресурсів
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 43
4.3 Приклади вихідних табличних статистичних даних
Нижче наведено приклад для вихідних табличних даних за методом
прогнозування події на прикладі тимчасово-подієвого критерію.
Наведений вище приклад для вихідних табличних даних для методу
прогнозування події на прикладі тимчасового-подієвого критерію. Це працює
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 44
наступним чином: користувач вказав подію та її час, програма, в свою чергу,
зібрала дані відповідно до періодичності та аналогічності подій, а потім на
основі вже структурованих даних видає результат щодо можливого часу
перебігу аналогічної події.
Відповідно для користувача сформовані дані буде наведено в
подальшому в більш зрозумілій формі.
4.4 Порівняльний аналіз методів та моделей для прогнозування
Відповідно до визначеного завдання для виконання прогнозування для
даних можнавизначити критерії вибору типу прогнозу та оптимальний метод
для прогнозування, а саме:
 інтуїтивний метод;
 формалізовані методи.
Кожен варіант проведеного тестування включав всебевизначений клас,
короткий відповідний опис та приклад.
Виконавши порівняння класів відповідно визначеним методам
прогнозування було отримано результати, що відповідають конкретним
прикладам та явно показують, який саме метод прогнозування є найбільш
доцільним та виводить найоптимальнішу інформацію.
Конкретний опис для тестуваннячи приклад надає можливість зрозуміти
в яких саме питаннях,сферах та прогнозах доцільний кожний метод,
відповіднодо аналізу статистичних даних.
Дослідивши результатинаведені в таблиці 4.3 булозроблено висновок,
що для прийняття конкретно керуючого рішення для визначеної задачі,
підходять всі визначені методи прогнозування, а для узгодження пошукових
та нормативних прогнозів різних видівта періоду попередньо доцільно
застосовувати виключно практичну модель прогнозування.
Якщо говорити про самі методи прогнозування, то видно, що
формалізовані методи, наприклад, моделі часових рядів являються найбільш
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 45
достовірними серед проаналізованих, а кажучи про структурну модель
нейронних мереж і класифікаційних дерев, то позитивний результату 12
тестах з 13.
Таблиця4.3.–Порівняльний аналізметодівта моделей для
прогнозування
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 46
ВИСНОВКИ
В процесі виконання кваліфікаційної роботи бакалавра було проведено
дослідженняактуальної темипрогнозування пошукових запитів користувачів.
Оскільки сьогодні рівень конкуренції організаційзбільшується,
особливо сфера діяльності яких пов'язана з наданням рекламних послуг в
мережі Інтернет, то такі організації можуть знизити вартість своїх послуг та
час за рахунок мінімізації зайвих витрат під час дослідження переваг
користувачів. В
подальшомуможливістьпрогнозуванняпошуковихзапитівкористувачівможена
дати можливістьзаздалегідьготуватипропозиціїнеобхідніїм.
В процесі
виконанняроботибулодослідженоджерелаінформаціїщодопошукових запитів
користувачів в мережіІнтернет, визначеноосновніметодитапідходи, що
використовуютьсяпід часскладаннякоректнихпрогнозів,
проведенийїхпорівняльнийаналіз під час виконання кваліфікаційної роботи.
У роботі було розглянуто особливості процесу пошуку актуальної
інформації, її аналізу в мережі Інтернет та фільтрація. Під час вирішення
поставленої задачі в існуючих алгоритмах та їх аналогах проведено аналіз
основних проблем в їх роботі. Проведено аналіз методівдля вдосконалення
алгоритму пошуку та систематизації отриманої інформації в досліджених
програмних продуктах. Розроблено у вигляді експериментальної програми
програмнийпродукт для пошуку необхідної інформації та прогнозування
подій відносно до проаналізованих вже існуючих даних. Для розробки
програмного забезпеченнябуло обрано об'єктно-орієнтовану мову
програмування PHP. Графічний інтерфейс оформлено з використанням мови
розмітки HTML та стилів CSS. Використання реалізованої системи дозволяє
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 47
користувачам отримати найоптимальнішу якісну послугу для безпечного
пошуку та аналізу інформації.
Розробленаінформаційня система має інтуїтивно зрозумілий інтерфейс,
що розрахований і для користувачів з низькими навичками користування
комп’ютером, та на фахівців зі сфери інформаційних технологій.
Щоб реалізувати поставлені в роботі завданння було виконано такі
кроки:
 проведено огляд основних недоліків в роботінаявних програмних
продуктів для пошуку інформації;
 побудовано алгоритм роботи відносно до мети розробки;
 реалізовано програмнийпродукт для пошуку і систематизації
інформації у вигляді експериментальної програми.
У результатівиконаннякваліфікаційноїроботи
бакалаврабулоспроектованотареалізованоінформаційну систему
дляпрогнозуванняпошуковихзапитівкористувача.Булореалізованомеханізмиз
борустатистичнихданих за допомогоюURLз «GoogleTrends. Також було
розроблено механізми «балансування» навантаження на інформаційну
систему, реалізовано методи аналізу часових рядів, а саме метод Хольта-
Вінтерса та поліноміальна регресія, автоматичне проектування та навчання
нейронної мережі. Для реалізованої системи було проведенотестуваннята
налагодження.
Як результат було визначено, що головна перевага аналізу пошукових
запитів користувачазаключається у відсутність необхідності упевних
випадках виконувати реальні і дорогі маркетингові та соціологічні
дослідження.
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 48
ПЕРЕЛІК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
Хостинг - сервер для розміщення ІС в мережі Інтернет.
Домен - адреса ІС в мережі Інтернет.
ІС - інформаційна система, набір web -сторінок, php -скріптов,
об'єднаних загальною тематикою, графічним оформленням, навігацією і
посиланнями. ІС є інформаційною одиницею, доступною для перегляду
користувачам через інтернет. ІС містить в сукупності з інтерфейсами
механізми програмної частини для функціонування.
Web -сторінка - HTML -документ ІС, що генерується на web -
сервер, який відображається браузером користувача та має унікальний
URL-адресу.
Php -скріпт - програма, яка виконується на web -сервер.
Вміст ІС - текстова, графічна чи табличная інформація, що
розміщується в ІС, без урахування оформлення сторінок.
Структура ІС - ієрархічне дерево web -сторінок ІС. Сторінки ІС
прив'язані до розділах і підрозділах. Вся сукупність розділів, підрозділів і
пов'язаних з ними сторінок і утворює структуру ІС.
Головна сторінка ІС - перша сторінка, яку бачить користувач при
вході в ІС (при введенні доменного імені ІС в адресний рядок браузера).
Внутрішня сторінка ІС - будь-яка інша сторінка, крім головної
сторінки ІС.
Дамп бази даних ІС - повна копія структури і всієї інформації БД,
необхідної для функціонування web -системи.
Верстка сторінки - процес формування html сторінки, що
складається з програмного коду на мовах html, javascript, стилів
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 49
оформлення і підвантажуваних картинок і фонів, на які спеціальним
чином розбивається макет, відповідно до дизайну.
HTML – HyperTextMarkupLanguage, мова розмітки гіпертекста
RTF – RichTextFormat, універсальній текстовий формат
PDF - PortableDocumentFormat, кросплатформений формат
електронних документів
WWW – WorldWideWeb, всесвітня павутина, всесвітня інформаційна
мережа
ІПС – інформаційно-пошукова система
УДК - Універсальна десяткова класифікація, міжнародна бібліотечно-
бібліографічна класифікація
TF - TermFrequency
ITF- InverseDocumentFrequency
ЧДТУ.239047.006ПЗ
Зм. Лист № докум. Підпис Дата 50
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Володимир РУДНИЦЬКИЙ
__________________
«___» _____________ 2023 р.
Інформаційна система прогнозування пошукових
запитів користувача
Специфікація
482.ЧДТУ.39047-01
Листів 2
Розробник _______________ Азат ХАЙТМУРАДОВ
Керівник _______________ Тетяна МИРОНЮК
Черкаси 2023
2
482.ЧДТУ.39047-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.39047-01 12 01 Текст програми
482.ЧДТУ.39047-01 34 01 Інструкція користувача
ДОДАТОК Б
Інформаційна система прогнозування пошукових
запитів користувача
Текст програми
482.ЧДТУ.39047-01 12 01
Листів 18
Розробник: Азат ХАЙТМУРАДОВ
Черкаси 2023
2
482.ЧДТУ.39047-01 12 01
Лістинг метод Хольта-Вінтерса
1 /* Triple exponential holt winters smoothing */
2
3 /**
4 * Smooth supplied timeline data 3 ways - overall, by trend and by
season.
5 *
6 * @param array $data - 1d array of data
7 * @param int $season_length - the number of entries that represent a
'season'
8 * @param float $alpha - data smoothing factor
9 * @param float $beta - trend smoothing factor
10 * @param float $gamma - seasonality smoothing factor
11 * @param float $dev_gamma - smoothing factor for deviations
12 * @return array - the smoothed data
13 */
14 function
holt_winters($data,$season_length=7,$alpha=0.2,$beta=0.01,$gamma=0.01,
15 $dev_gamma =0.1) {
16 // Calculate an initial trend level
17 $trend1 = 0;
18 for($i = 0; $i < $season_length; $i++) {
19 $trend1 += $data[$i];
20 }
21 $trend1 /= $season_length;
22
23 $trend2 = 0;
24 for($i = $season_length; $i < 2*$season_length; $i++) {
25 $trend2 += $data[$i];
26 }
27 $trend2 /= $season_length;
28
29 $initial_trend = ($trend2 - $trend1) / $season_length;
30
31 // Take the first value as the initial level
32 $initial_level = $data[0];
33
34 // Build index
35 $index = array();
36 foreach($data as $key => $val) {
37 $index[$key] = $val / ($initial_level + ($key + 1) *
$initial_trend);
38 }
39
40 // Build season buffer
41 $season = array_fill(0, count($data), 0);
42 for($i = 0; $i < $season_length; $i++) {
43 $season[$i] = ($index[$i] + $index[$i+$season_length]) / 2;
44 }
45
46 // Normalise season
47 $season_factor = $season_length / array_sum($season);
48 foreach($season as $key => $val) {
49 $season[$key] *= $season_factor;
50 }
51
52
53 $holt_winters = array();
54 $deviations = array();
55 $alpha_level = $initial_level;
56 $beta_trend = $initial_trend;
57 foreach($data as $key => $value) {
3
482.ЧДТУ.39047-01 12 01
58 $temp_level = $alpha_level;
59 $temp_trend = $beta_trend;
60
61 $alpha_level = $alpha*$value/$season[$key] + (1.0 - $alpha) *
($temp_level + $temp_trend);
62 $beta_trend = $beta * ($alpha_level - $temp_level) + ( 1.0 - $beta ) *
$temp_trend;
63
64 $season[$key + $season_length]=$gamma*$value/$alpha_level+(1.0 - $gamma)
* $season[$key];
65
66 $holt_winters[$key] = ($alpha_level + $beta_trend * ($key + 1))
* $season[$key];
67 $deviations[$key] = $dev_gamma * abs($value - $holt_winters[$key]) + (1-
$dev_gamma)
68 * (isset($deviations[$key - $season_length]) ? $deviations[$key -
$season_length] : 0);
69 }
70
71 /* Could forecast a bit!
72 for($i = 1; $i <= $season_length; $i++) {
73 $holt_winters[$key + $i] = $alpha_level + $beta_trend * $season[$key +
$i];
74 }
75 */
76
77 return array($holt_winters, $deviations);
78 }
Лістинг лінійної регресії
1 /*
2 linear regression function
3 @param $x array x-coords
4 @param $y array y-coords
5 @returns array() m=>slope, b=>intercept
6 */
7 function linear_regression($x, $y) {
8
9 // calculate number points
10 $n = count($x);
11
12 // ensure both arrays of points are the same size
13 if ($n != count($y)) {
14
15 trigger_error("Num of elems in coord arrs dont match.", E_USER_ERROR);
16
17 }
18
19 // calculate sums
20 $x_sum = array_sum($x);
21 $y_sum = array_sum($y);
22
23 $xx_sum = 0;
24 $xy_sum = 0;
25
26 for($i = 0; $i < $n; $i++) {
27
28 $xy_sum+=($x[$i]*$y[$i]);
29 $xx_sum+=($x[$i]*$x[$i]);
4
482.ЧДТУ.39047-01 12 01
30
31 }
32
33 // calculate slope
34 $m = (($n * $xy_sum) - ($x_sum * $y_sum)) / (($n * $xx_sum) - ($x_sum
* $x_sum));
35
36 // calculate intercept
37 $b = ($y_sum - ($m * $x_sum)) / $n;
38
39 // return result
40 return array("m"=>$m, "b"=>$b);
41
42 }
Лістинг поліноміальної регресії
1 /* Name: PolynomialRegression.php
*/
2 /* Uses: Calculates and returns coefficients for polynomial regression.
*/
3 /**
4 * Polynomial regression.
5 *
6 * <p>
7 * Used for calculating polynomial regression coefficients. Useful for
8 * linear and non-linear regression, and polynomial curve fitting.
9 *
10 * @package PolynomialRegression
11 * @author Andrew Que ({@link http://www.DrQue.net/})
12 * @copyright Copyright (c) 2009, 2012-2013, Andrew Que
13 * @license http://opensource.org/licenses/gpl-license.php GNU Public
License
14 * @version 1.0
15 */
16
17 /**
18 * Used for calculating polynomial regression coefficients and
interpolation using
19 * those coefficients. Useful for linear and non-linear regression, and
polynomial
20 * curve fitting.
21 *
22 * Note: Requires BC math to be compiled into PHP. Higher-degree
polynomials end up
23 * with very large/small numbers, requiring an arbitrary precision
arithmetic. Make sure
24 * to set "bcscale" as coefficients will likely have decimal values.
25 *
26 * Quick example (1st degree polynomial):
27 *
28 * <code>
29 * $regression = new PolynomialRegression( 2 );
30 * // ...
31 * $regression->addData( $x, $y );
32 * // ...
33 * $coefficients = $regression->getCoefficients();
34 * // ...
35 * $y = $regression->interpolate( $coefficients, $x );
36 * </code>
37 *
38 *
5
482.ЧДТУ.39047-01 12 01
39 * @package PolynomialRegression
40 */
41 class PolynomialRegression
42 {
43 private $X_Powers;
44 private $XY_Powers;
45 private $degree;
46 private $forcedValue;
47
48 /**
49 * Constructor
50 *
51 * Create new class.
52 * @param int $degree Degree + 1 of polynomial.
53 */
54 public function __construct( $degree = 3 )
55 {
56 $this->degree = $degree;
57 $this->reset();
58
59 } // __construct
60
61 /**
62 * Reset data.
63 *
64 * Clear all internal data and prepare for new calculation.
65 * Must be called *after* setDegree if degree is changed.
66 */
67 public function reset()
68 {
69 $this->forcedValue = array();
70 $this->X_Powers = array();
71 $this->XY_Powers = array();
72
73 $squares = ( $this->degree - 1 ) * 2;
74
75 // Initialize power arrays.
76 for ( $index = 0; $index <= $squares; ++$index )
77 {
78 $this->X_Powers[ $index ] = 0;
79 $this->XY_Powers[ $index ] = 0;
80 }
81
82 } // reset
83
84 /**
85 * Set degree.
86 *
87 * This is the maximum degree polynomial function that will be
88 * calculated. Note that the request for coefficients can be lower
89 * then this value. If degree is higher, data must be reset and
90 * added again.
91 * @param int $degree Max degree
92 */
93 public function setDegree( $degree )
94 {
95 $this->degree = $degree;
96
97 } // setDegree
98
99 /**
100 * Set a forced coefficient.
6
482.ЧДТУ.39047-01 12 01
101 *
102 * Force a coefficient to be assumed a specific value for the
calculation.
103 * Most often used to force an offset of zero, but can be used to set
any
104 * known coefficient for a set of data.
105 * @param int $coefficient Which coefficient to force.
106 * @param int $value Value to force this coefficient.
107 */
108 public function setForcedCoefficient( $coefficient, $value )
109 {
110 $this->forcedValue[ $coefficient ] = $value;
111
112 } // setForcedCoefficient
113
114 /**
115 * Add data.
116 *
117 * Add a data point to calculation.
118 * @param float $x Some real value.
119 * @param float $y Some real value corresponding to $x.
120 */
121 public function addData( $x, $y )
122 {
123 $squares = ( $this->degree - 1 ) * 2;
124
125 // Remove the effect of the forced coefficient from this value.
126 foreach ( $this->forcedValue as $coefficient => $value )
127 {
128 $sub = bcpow( $x, $coefficient );
129 $sub = bcmul( $sub, $value );
130 $y = bcsub( $y, $sub );
131 }
132
133 // Accumulate new data to power sums.
134 for ( $index = 0; $index <= $squares; ++$index )
135 {
136 $this->X_Powers[ $index ] =
137 bcadd( $this->X_Powers[ $index ], bcpow( $x, $index ) );
138
139 $this->XY_Powers[ $index ] =
140 bcadd
141 (
142 $this->XY_Powers[ $index ],
143 bcmul( $y, bcpow( $x, $index ) )
144 );
145 }
146
147 } // addData
148
149 /**
150 * Get coefficients.
151 *
152 * Calculate and return coefficients based on current data.
153 * @param int $degree Integer value of the degree polynomial desired.
Default
154 * is -1 which is the max degree set by class.
155 * @return array Array of coefficients (as BC strings).
156 */
157 public function getCoefficients( $degree = -1 )
158 {
159 // If no degree specified, use standard.
7
482.ЧДТУ.39047-01 12 01
160 if ( $degree == -1 )
161 $degree = $this->degree;
162
163 // Build a matrix.
164 // The matrix is made up of the sum of powers. So if the number
represents the power,
165 // the matrix will look like this for a 4th degree polynomial:
166 // [ 0 1 2 3 4 ]
167 // [ 1 2 3 4 5 ]
168 // [ 2 3 4 5 6 ]
169 // [ 3 4 5 6 7 ]
170 // [ 4 5 6 7 8 ]
171 //
172 $matrix = array();
173 for ( $row = 0; $row < $degree; ++$row )
174 {
175 $matrix[ $row ] = array();
176 for ( $column = 0; $column < $degree; ++$column )
177 $matrix[ $row ][ $column ] =
178 $this->X_Powers[ $row + $column ];
179 }
180
181 // Create augmented matrix by adding X*Y powers.
182 for ( $row = 0; $row < $degree; ++$row )
183 $matrix[ $row ][ $degree ] = $this->XY_Powers[ $row ];
184
185 // Add in the forced coefficients. This is done by nulling the row
and column
186 // for each forced coefficient. For example, a 3th degree
polynomial
187 // matrix with have the 2nd coefficient set to F:
188 // [ a b c d w ] [ a 0 c d w ]
189 // [ b c d e x ] -> [ 0 1 0 0 F ]
190 // [ c d e f y ] [ c 0 e f y ]
191 // [ d e f g z ] [ d 0 f g z ]
192 foreach ( $this->forcedValue as $coefficient => $value )
193 {
194 for ( $index = 0; $index < $degree; ++$index )
195 {
196 $matrix[ $index ][ $coefficient ] = "0";
197 $matrix[ $coefficient ][ $index ] = "0";
198 }
199
200 $matrix[ $coefficient ][ $coefficient ] = "1";
201 $matrix[ $coefficient ][ $degree ] = $value;
202 }
203
204 // Determine number of rows in matrix.
205 $rows = count( $matrix );
206
207 // Initialize done.
208 $isDone = array();
209 for ( $column = 0; $column < $rows; ++$column )
210 $isDone[ $column ] = false;
211
212 // This loop will result in an upper-triangle matrix with the
213 // diagonals all 1--the first part of row-reduction--using 2
214 // elementary row operations: multiplying a row by a scalar, and
215 // subtracting a row by a multiple of an other row.
216 // NOTE: This loop can be done out-of-order. That is, the first
217 // row may not begin with the first term. Order is tracked in the
218 // "order" array.
8
482.ЧДТУ.39047-01 12 01
219 $order = array();
220 for ( $column = 0; $column < $rows; ++$column )
221 {
222 // Find a row to work with.
223 // A row that has a term in this column, and has not yet been
224 // reduced.
225 $activeRow = 0;
226 while ( ( ( 0 == $matrix[ $activeRow ][ $column ] )
227 || ( $isDone[ $activeRow ] ) )
228 && ( $activeRow < $rows ) )
229 {
230 ++$activeRow;
231 }
232
233 // Do we have a term in this row?
234 if ( $activeRow < $rows )
235 {
236 // Remember the order.
237 $order[ $column ] = $activeRow;
238
239 // Normalize row--results in the first term being 1.
240 $firstTerm = $matrix[ $activeRow ][ $column ];
241 for ( $subColumn = $column; $subColumn <= $rows; ++$subColumn )
242 $matrix[ $activeRow ][ $subColumn ] =
243 bcdiv( $matrix[ $activeRow ][ $subColumn ], $firstTerm );
244
245 // This row is finished.
246 $isDone[ $activeRow ] = true;
247
248 // Subtract the active row from all rows that are not finished.
249 for ( $row = 0; $row < $rows; ++$row )
250 if ( ( ! $isDone[ $row ] )
251 && ( 0 != $matrix[ $row ][ $column ] ) )
252 {
253 // Get first term in row.
254 $firstTerm = $matrix[ $row ][ $column ];
255 for ( $subColumn = $column; $subColumn <= $rows;
++$subColumn )
256 {
257 $accumulator = bcmul( $firstTerm,
$matrix[ $activeRow ][ $subColumn ] );
258 $matrix[ $row ][ $subColumn ] =
259 bcsub( $matrix[ $row ][ $subColumn ], $accumulator );
260 }
261 }
262 }
263 }
264
265 // Reset done.
266 for ( $row = 0; $row < $rows; ++$row )
267 $isDone[ $row ] = false;
268
269 $coefficients = array();
270
271 // Back-substitution.
272 // This will solve the matrix completely, resulting in the identity
273 // matrix in the x-locations, and the coefficients in the last
column.
274 // | 1 0 0 ... 0 c0 |
275 // | 0 1 0 ... 0 c1 |
276 // | . . . . . |
277 // | . . . . . |
9
482.ЧДТУ.39047-01 12 01
278 // | 0 0 0 ... 1 cn |
279 for ( $column = ( $rows - 1 ); $column >= 0; --$column )
280 {
281 // The active row is based on order.
282 $activeRow = $order[ $column ];
283
284 // The active row is now finished.
285 $isDone[ $activeRow ] = true;
286
287 // For all rows not finished...
288 for ( $row = 0; $row < $rows; ++$row )
289 if ( ! $isDone[ $row ] )
290 {
291 $firstTerm = $matrix[ $row ][ $column ];
292
293 // Back substitution.
294 for ( $subColumn = $column; $subColumn <= $rows;
++$subColumn )
295 {
296 $accumulator =
297 bcmul( $firstTerm, $matrix[ $activeRow ][ $subColumn ] );
298 $matrix[ $row ][ $subColumn ] =
299 bcsub( $matrix[ $row ][ $subColumn ], $accumulator );
300 }
301 }
302
303 // Save this coefficient for the return.
304 $coefficients[ $column ] = $matrix[ $activeRow ][ $rows ];
305 }
306
307 // Coefficients are stored backward, so sort them.
308 ksort( $coefficients );
309
310 // Return the coefficients.
311 return $coefficients;
312
313 } // getCoefficients
314
315 /**
316 * Interpolate
317 *
318 * Return y point for given x and coefficient set.
319 * @param array $coefficients Coefficients as calculated by
'getCoefficients'.
320 * @param float $x X-coordinate from which to calculate Y.
321 * @return float Y-coordinate (as floating-point).
322 */
323 public function interpolate( $coefficients, $x )
324 {
325 $degree = count( $coefficients );
326
327 $y = 0;
328 for ( $coefficentIndex = 0; $coefficentIndex < $degree;
++$coefficentIndex )
329 $y =
330 bcadd
331 (
332 $y,
333 bcmul
334 (
335 $coefficients[ $coefficentIndex ],
336 bcpow( $x, $coefficentIndex )
10
482.ЧДТУ.39047-01 12 01
337 )
338 );
339
340 return floatval( $y );
341
342 } // interpolate
343
344 } // Class{
/**
* img array
*
* @var array
*/
protected $imgs;
/**
* img filter
*
* @var array
*/
protected $filter = [
'width' => 0,
'height' => 0,
'size' => 0,
'include' => ''
];
protected $lastSaveDir;
/**
*
* @var wxStatusBar
*/
protected $statusBar;
/**
*
* @var wxTextCtrl
*/
protected $txtUrl;
/**
*
* @var wxTextCtrl
*/
protected $txtUrlReplace;
/**
*
* @var wxTextCtrl
*/
protected $txtInclude;
/**
*
* @var wxCheckBox
*/
protected $chkIncludeTitle;
/**
*
* @var wxDirPickerCtrl
11
482.ЧДТУ.39047-01 12 01
*/
protected $pickerSaveDir;
/**
*
* @var wxButton
*/
protected $btnTestUrl;
/**
*
* @var wxButton
*/
protected $btnPreview;
/**
*
* @var wxButton
*/
protected $btnPreviewAll;
/**
*
* @var wxButton
*/
protected $btnSave;
/**
*
* @var wxChoice
*/
protected $sleSaveFile;
/**
*
* @var wxNotebook
*/
protected $nbookResult;
/**
*
* @var wxTextCtrl
*/
protected $txtUrlResult;
/**
*
* @var wxScrolledWindow
*/
protected $swinImgResult;
protected $gSizerImgResult;
public function __construct($parent = null)
{
parent::__construct($parent);
// url and urlReplace
$this->txtUrl->SetValue("https://wslim.cn/article/{id}");
$this->txtUrlReplace->SetValue("id=5-9");
// savedir
12
482.ЧДТУ.39047-01 12 01
$this->lastSaveDir = dirname(__DIR__) . '/tmp/';
// $this->pickerSaveDir->SetInitialDirectory(__DIR__); // 不支持
$this->pickerSaveDir->SetPath($this->lastSaveDir);
$this->pickerSaveDir->Connect(wxEVT_DIRPICKER_CHANGED, array(
$this,
'onSaveDirChanged'
));
$this->btnTestUrl->Connect(wxEVT_COMMAND_BUTTON_CLICKED, array(
$this,
'onTestUrlClick'
));
$this->btnPreview->Connect(wxEVT_COMMAND_BUTTON_CLICKED, array(
$this,
'onPreviewClick'
));
$this->btnPreviewAll->Connect(wxEVT_COMMAND_BUTTON_CLICKED, array(
$this,
'onPreviewAllClick'
));
$this->btnSave->Connect(wxEVT_COMMAND_BUTTON_CLICKED, array(
$this,
'onSaveClick'
));
// result
$this->txtUrlResult = new wxTextCtrl($this->nbookResult, wxID_ANY,
wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
$this->swinImgResult = new wxScrolledWindow($this->nbookResult,
wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL);
$this->swinImgResult->SetScrollRate( 20, 20 );
$this->gSizerImgResult = new wxGridSizer(6,0,0);
$this->nbookResult->AddPage($this->txtUrlResult, 'url');
$this->nbookResult->AddPage($this->swinImgResult, 'img');
$this->statusBar->SetStatusText("welcome");
}
public function onTestUrlClick()
{
$urls = $this->txtUrl->GetValue();
$replace = $this->txtUrlReplace->GetValue();
$urls = ImageDownTool::parseUrl($urls, $replace);
$source = implode("\r\n", $urls);
$this->txtUrlResult->SetValue($source);
$this->nbookResult->SetSelection(0);
}
public function onPreviewClick()
{
static::previewImages(5);
}
public function onPreviewAllClick()
{
static::previewImages(1000);
}
13
482.ЧДТУ.39047-01 12 01
public function previewImages($count=5)
{
$this->swinImgResult->DestroyChildren();
$this->gSizerImgResult->Clear();
$imgs = static::getFilterImgs();
if (!$imgs) {
$this->statusBar->SetStatusText("images after filer: 0");
return;
}
// get $count
$preImgs = array_slice($imgs, 0, $count);
// save image to temp
//$save_dir = wxGetUserHome() . '/tmp';
$save_dir = $this->pickerSaveDir->GetPath();
$res = ImageDownTool::saveImages($preImgs, $save_dir);
if ($res['errcode'] || !$res['imgs']) {
$this->statusBar->SetStatusText("save image failure");
return;
}
$panels = [];
$width = floor($this->nbookResult->GetSize()->GetWidth()/6) - 20;
if ($width < 50) $width = 120;
foreach ($res['imgs'] as $k => $item) {
if (!isset($item['save_path'])) continue;
$wximg = new wxImage($item['save_path']);
$height = floor($wximg->GetHeight()/$wximg->GetWidth() * $width);
$wximg = $wximg->Rescale($width, $height);
$panels[$k] = new ImagePanel($this->swinImgResult);
$panels[$k]->SetId(wxID_ANY);
//$panels[$k]->SetSize($width, $height + 60);
$panels[$k]->SetMinSize(new wxSize($width-10, $height+60));
$panels[$k]->staBmpImg->SetBitmap(new wxBitmap($wximg));
$panels[$k]->staTxtTitle->SetLabelText($item['title']);
$panels[$k]->staTxtFilename->SetLabelText($item['filename']);
$panels[$k]->chkBox->SetValue(true);
$this->gSizerImgResult->Add($panels[$k], 1,
wxALL|wxEXPAND|wxALIGN_TOP, 10);
}
//$this->swinImgResult->SetScrollbar(1, 1, 1, 1);
$this->swinImgResult->SetSizer( $this->gSizerImgResult);
$this->swinImgResult->Layout();
$this->gSizerImgResult->Fit($this->swinImgResult);
$this->nbookResult->SetSelection(1);
}
public function onSaveDirChanged()
{
$save_dir = $this->pickerSaveDir->GetPath();
$this->lastSaveDir = $save_dir;
//$this->pickerSaveDir->SetPath($save_dir);
}
14
482.ЧДТУ.39047-01 12 01
public function onSaveClick()
{
$imgs = static::getFilterImgs();
if (!$imgs) return;
$save_dir = $this->pickerSaveDir->GetPath();
$save_dir = DataHelper::fromLocalePath($save_dir);
$save_type =
$this->sleSaveFile->GetString($this->sleSaveFile->GetSelection());
$options = [
'save_type' => $save_type
];
$res = ImageDownTool::saveImages($imgs, $save_dir, $options);
$this->statusBar->SetStatusText($res['errmsg']);
}
private function getFilterImgs()
{
$urls = $this->txtUrl->GetValue();
$replace = $this->txtUrlReplace->GetValue();
$includeTitle = $this->chkIncludeTitle->GetValue();
$this->filter['include'] =
DataHelper::fromLocalePath($this->txtInclude->GetValue());
$this->imgs = ImageDownTool::getImages($urls, [
'replace' => $replace
]);
if ($includeTitle && $this->imgs && !$this->filter['include']) {
$this->filter['include'] =
ImageDownTool::getPageTitle($this->imgs);
$this->txtInclude->SetValue($this->filter['include']);
}
if (!$this->imgs) {
wxMessageBox("get images failure or no images");
$this->statusBar->SetStatusText("get images failure");
return;
}
$imgs = ImageDownTool::filterImages($this->imgs, $this->filter);
if (!$imgs) {
$this->statusBar->SetStatusText("images after filer: 0");
}
return $imgs;
}
}class ImageDownFrameBase extends wxFrame {
function __construct( $parent=null ){
parent::__construct ( $parent, wxID_ANY, _("ImageDown"),
wxDefaultPosition, new wxSize( 741,438 ),
wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
$this->SetSizeHints( wxDefaultSize, wxDefaultSize );
$this->SetBackgroundColour( wxSystemSettings::GetColou
r( wxSYS_COLOUR_HIGHLIGHTTEXT ) );
$this->statusBar = $this->CreateStatusBar( 1, wxSTB_SIZEGRIP,
wxID_ANY );
15
482.ЧДТУ.39047-01 12 01
$bSizer5 = new wxBoxSizer( wxVERTICAL );
$bSizerMain = new wxBoxSizer( wxHORIZONTAL );
$fgSizer = new wxFlexGridSizer( 6, 2, 0, 0 );
$fgSizer->AddGrowableCol( 1 );
$fgSizer->SetFlexibleDirection( wxBOTH );
$fgSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
$this->staUrl = new wxStaticText( $this, wxID_ANY, _("Url:"),
wxDefaultPosition, wxDefaultSize, 0 );
$this->staUrl->Wrap( -1 );
$fgSizer->Add( $this->staUrl, 0,
wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
$this->txtUrl = new wxTextCtrl( $this, wxID_ANY, wxEmptyString,
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
$fgSizer->Add( $this->txtUrl, 0,
wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
$fgSizer->Add( 0, 0, 1, wxEXPAND, 5, null );
$this->staUrlDesc = new wxStaticText( $this, wxID_ANY, _("1. 一行一
个url; 2. 可用{name:type}表示变量和类型,如
https://wslim.cn/article/{id:int}/{page} 在下面指定替换值."), wxDefaultPosition,
wxDefaultSize, 0 );
$this->staUrlDesc->Wrap( -1 );
$fgSizer->Add( $this->staUrlDesc, 0, wxALL, 5 );
$this->staUrlReplace = new wxStaticText( $this, wxID_ANY, _("Url替
换"), wxDefaultPosition, wxDefaultSize, 0 );
$this->staUrlReplace->Wrap( -1 );
$fgSizer->Add( $this->staUrlReplace, 0,
wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
$this->txtUrlReplace = new wxTextCtrl( $this, wxID_ANY,
wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
$fgSizer->Add( $this->txtUrlReplace, 0, wxALL|wxEXPAND, 5 );
$fgSizer->Add( 0, 0, 1, wxEXPAND, 5, null );
$this->staUrlReplaceDesc = new wxStaticText( $this, wxID_ANY,
_("1. 一行一个替换变量; 2. 如url使用了{id:int}/{page} 则这里可以填id=\"1-5\"
page=\"1-3\""), wxDefaultPosition, wxDefaultSize, 0 );
$this->staUrlReplaceDesc->Wrap( -1 );
$fgSizer->Add( $this->staUrlReplaceDesc, 0, wxALL, 5 );
$this->staOptions = new wxStaticText( $this, wxID_ANY, _("选项:"),
wxDefaultPosition, wxDefaultSize, 0 );
$this->staOptions->Wrap( -1 );
$fgSizer->Add( $this->staOptions, 0,
wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
$bSizerOptions = new wxBoxSizer( wxHORIZONTAL );
$this->staWidth = new wxStaticText( $this, wxID_ANY, _("width:"),
wxDefaultPosition, wxDefaultSize, 0 );
16
482.ЧДТУ.39047-01 12 01
$this->staWidth->Wrap( -1 );
$bSizerOptions->Add( $this->staWidth, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->txtWidth = new wxTextCtrl( $this, wxID_ANY, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0 );
$this->txtWidth->SetMaxSize( new wxSize( 40,-1 ) );
$bSizerOptions->Add( $this->txtWidth, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->staHeight = new wxStaticText( $this, wxID_ANY,
_("height:"), wxDefaultPosition, wxDefaultSize, 0 );
$this->staHeight->Wrap( -1 );
$bSizerOptions->Add( $this->staHeight, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->txtHeight = new wxTextCtrl( $this, wxID_ANY, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0 );
$this->txtHeight->SetMaxSize( new wxSize( 40,-1 ) );
$bSizerOptions->Add( $this->txtHeight, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->staInclude = new wxStaticText( $this, wxID_ANY, _("包含文
本:"), wxDefaultPosition, wxDefaultSize, 0 );
$this->staInclude->Wrap( -1 );
$bSizerOptions->Add( $this->staInclude, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->txtInclude = new wxTextCtrl( $this, wxID_ANY,
wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
$bSizerOptions->Add( $this->txtInclude, 1,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->chkIncludeTitle = new wxCheckBox( $this, wxID_ANY, _("自动包
含标题"), wxDefaultPosition, wxDefaultSize, 0 );
$this->chkIncludeTitle->SetValue(True);
$bSizerOptions->Add( $this->chkIncludeTitle, 0,
wxALIGN_CENTER|wxALL, 5 );
$this->btnTestUrl = new wxButton( $this, wxID_ANY, _("测试Url"),
wxDefaultPosition, wxDefaultSize, 0 );
$bSizerOptions->Add( $this->btnTestUrl, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->btnPreview = new wxButton( $this, wxID_ANY, _("预览5张"),
wxDefaultPosition, wxDefaultSize, 0 );
$bSizerOptions->Add( $this->btnPreview, 0, wxALL, 5 );
$this->btnPreviewAll = new wxButton( $this, wxID_ANY, _("预览全部
"), wxDefaultPosition, wxDefaultSize, 0 );
$bSizerOptions->Add( $this->btnPreviewAll, 0, wxALL, 5 );
$fgSizer->Add( $bSizerOptions, 1, wxALL|wxEXPAND, 0 );
$this->staOperator = new wxStaticText( $this, wxID_ANY, _("操
作:"), wxDefaultPosition, wxDefaultSize, 0 );
17
482.ЧДТУ.39047-01 12 01
$this->staOperator->Wrap( -1 );
$fgSizer->Add( $this->staOperator, 0,
wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
$bSizerOperator = new wxBoxSizer( wxHORIZONTAL );
$this->staSaveDir = new wxStaticText( $this, wxID_ANY, _("目录:"),
wxDefaultPosition, wxDefaultSize, 0 );
$this->staSaveDir->Wrap( -1 );
$bSizerOperator->Add( $this->staSaveDir, 0, wxALIGN_CENTER|wxALL,
5 );
$this->pickerSaveDir = new wxDirPickerCtrl( $this, wxID_ANY,
wxEmptyString, _("Select a folder"), wxDefaultPosition, wxDefaultSize,
wxDIRP_DEFAULT_STYLE );
$bSizerOperator->Add( $this->pickerSaveDir, 1, wxALL, 5 );
$this->staSaveFile = new wxStaticText( $this, wxID_ANY, _("文件
名:"), wxDefaultPosition, wxDefaultSize, 0 );
$this->staSaveFile->Wrap( -1 );
$bSizerOperator->Add( $this->staSaveFile, 0, wxALIGN_CENTER|wxALL,
5 );
$sleSaveFileChoices = array( _("filename"), _("title+filename") );
$this->sleSaveFile = new wxChoice( $this, wxID_ANY,
wxDefaultPosition, wxDefaultSize, $sleSaveFileChoices, 0 );
$this->sleSaveFile->SetSelection( 0 );
$bSizerOperator->Add( $this->sleSaveFile, 0, wxALIGN_CENTER|wxALL,
5 );
$this->staStartId = new wxStaticText( $this, wxID_ANY, _("序号:"),
wxDefaultPosition, wxDefaultSize, 0 );
$this->staStartId->Wrap( -1 );
$bSizerOperator->Add( $this->staStartId, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->txtStartId = new wxTextCtrl( $this, wxID_ANY, _("1"),
wxDefaultPosition, wxDefaultSize, 0 );
$this->txtStartId->SetMaxSize( new wxSize( 30,-1 ) );
$bSizerOperator->Add( $this->txtStartId, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->staEndId = new wxStaticText( $this, wxID_ANY, _("到:"),
wxDefaultPosition, wxDefaultSize, 0 );
$this->staEndId->Wrap( -1 );
$bSizerOperator->Add( $this->staEndId, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->txtEndId = new wxTextCtrl( $this, wxID_ANY, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0 );
$this->txtEndId->SetMaxSize( new wxSize( 30,-1 ) );
$bSizerOperator->Add( $this->txtEndId, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->staPerCount = new wxStaticText( $this, wxID_ANY, _("每
次:"), wxDefaultPosition, wxDefaultSize, 0 );
$this->staPerCount->Wrap( -1 );
18
482.ЧДТУ.39047-01 12 01
$bSizerOperator->Add( $this->staPerCount, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->txtPerCount = new wxTextCtrl( $this, wxID_ANY, _("3"),
wxDefaultPosition, wxDefaultSize, 0 );
$this->txtPerCount->SetMaxSize( new wxSize( 20,-1 ) );
$bSizerOperator->Add( $this->txtPerCount, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$this->btnSave = new wxButton( $this, wxID_ANY, _("保存"),
wxDefaultPosition, wxDefaultSize, 0 );
$bSizerOperator->Add( $this->btnSave, 0,
wxALIGN_CENTER_VERTICAL|wxALL, 5 );
$fgSizer->Add( $bSizerOperator, 1, wxEXPAND, 0 );
$bSizerMain->Add( $fgSizer, 1, wxALL|wxEXPAND, 5 );
$bSizer5->Add( $bSizerMain, 1, wxEXPAND, 5 );
$bSizerPreview = new wxBoxSizer( wxHORIZONTAL );
$this->nbookResult = new wxNotebook( $this, wxID_ANY,
wxDefaultPosition, wxDefaultSize, 0 );
$bSizerPreview->Add( $this->nbookResult, 1, wxEXPAND | wxALL, 5 );
$bSizer5->Add( $bSizerPreview, 10, wxALIGN_TOP|wxEXPAND, 5 );
$this->SetSizer( $bSizer5 );
$this->Layout();
$this->Centre( wxBOTH );
}
function __destruct( ){
}
}
ДОДАТОК В
Інформаційна система прогнозування пошукових запитів
користувача
Інструкція користувача
482.ЧДТУ.39047-01 34 01
Листів 5
Розробник: Азат ХАЙТМУРАДОВ
ф
Черкаси 2023
2
482.ЧДТУ.39047-01 34 01
У базу даних включені наступні розділи:
 інформація по пошуковому запиті ;
 інформація про прогноз ;
 інформація про клієнта інформаційної системи;
У базі даних будуть такі поля:
1. «Пошуковий запит» - слово або словосполучення (кілька слів)
досліджувані в рамках роботи інформаційної системи прогнозування
користувальницьких пошукових запитів; поле має строковий тип - список
ключів, які посилаються на окремі слова.
2. «Слово в пошуковому запиті» - кожне окреме слово з
пошукового запиту користувача, в сукупності складають підмножина запитів
користувачів; поле має строковий тип - « STRING ».
3. «Статус пошукового запиту» - допоміжне додаткове поле; поле
має числовий тип - « INTEGER ».
4. «Статус слова в пошуковому запиті» - допоміжне додаткове
поле; поле має числовий тип - « INTEGER ».
5. «Кількість запитів по заданому пошуковому запиту» - числове
поле, яке показує, скільки запитів було по заданому ключовому запиту - тип
« INTEGER »;
6. «Дата кількості запитів по заданому пошуковому запиту» - поле
для визначення дати фіксування кількості запитів; тип поля « DATETIME ».
7. «Джерело даних кількості запитів по заданому пошуковому
запиту» - певне джерело даних ( « Google Trends », або «Яндекс WordStat »),
тип поля - посилання на ключ в таблиці довіднику джерел статистики.
8. «Тип джерела даних» - допоміжне поле характеризує тип джерела
даних, призначене для визначення методів і інтерфейсів роботи з певним
джерелом статистичних даних.
3
482.ЧДТУ.39047-01 34 01
9. «Версія джерела даних» - поле, яке вказує версію джерела
статистичних даних для контролю версій програмних інтерфейсів (облік
поновлення API ); тип поля - « STRING ».
10. «Статус джерела даних» - допоміжне додаткове поле; поле має
числовий тип - « INTEGER ».
11. «Передбачене значення за заданим пошуковим запитом» -
числовий показник, що позначає результат прогнозу по заданому
пошуковому запиту; тип поля - « INTEGER »;
12. «Дата створення прогнозу» - поле позначає час і дату, коли був
сформований прогноз по пошуковому запиту; тип поля - « DATETIME ».
13. «Дата останнього оновлення прогнозу» поле позначає час і дату,
коли було останнє оновлення прогнозу по пошуковому запиту; тип поля -
« DATETIME ».
14. «Статус прогнозу» - допоміжне додаткове поле; поле має
числовий тип - « INTEGER ».
15. «Похибка прогнозу» - поле, що позначає очікувану похибка
прогнозу (у відсотках); тип поля - « TINYINT ».
16. «Статус помилки прогнозу» - допоміжне додаткове поле; поле
має числовий тип - « INTEGER ».
17. «Клієнт» - ключ, що ідентифікує користувача, який звертається
до інформаційної системи для прогнозування запитів; поле має числовий тип
- « INTEGER ».
18. «Кількість дій клієнта» - допоміжне додаткове поле, враховує
кількість дій користувача в рамках інформаційної системи; поле має
числовий тип - « INTEGER ».
19. «Статус клієнта» - допоміжне додаткове поле; поле має числовий
тип - « INTEGER ».
4
482.ЧДТУ.39047-01 34 01
20. «Запит клієнта» - допоміжне додаткове поле, що зв'язує
користувачів інформаційної системи з проаналізованими ними пошуковими
запитами.
21. «Дата запиту клієнта» допоміжне додаткове поле, яке зберігає
дату і час запиту користувача до системи; тип поля « DATETIME ».
Для роботи з розробленою інформаційною системою була реалізована
екранна форма для обробки запиту і виведення результатів роботи системи.
Результат роботи системи представлено на рисунку В.1
Рисунок В.1 - Результати роботи інформаційної системи
Для візуалізації результатів роботи інформаційної системи, а також для
можливості експорту результатів, використовувався формат
даних json . Даний формат дозволяє передавати дані на клієнта, який в свою
чергу може їх обробляти і візуалізувати на своєму боці, тим самим,
знижуючи навантаження на сервери інформаційної системи.
5
482.ЧДТУ.39047-01 34 01
Для візуалізації отриманих результатів використовувалися бібліотеки
« A mcharts», що дозволяють відображати дані формату json за допомогою
мови javascript у вигляді графіків на клієнтському пристрої.
Візуалізація даних - одне із затребуваних засобів, при вирішенні
більшості завдань аналізу даних і прогнозування. Візуалізація інформації,
пов'язаної з машинним навчанням, а саме нейронними мережами надає
можливість наочно і швидко оцінити процес проектування, навчання,
збіжність моделі нейронної мережі та ін.
В ході розробки інформаційної системи були реалізовані наступні типи
візуалізації.
• Загального призначення, в інформаційній системі застосовуються для
візуальної оцінки якості і характеру даних, розподілу значень ознак,
статистичних характеристик користувальницьких пошукових запитів і т.д.
• Оцінка якості результатів; в інформаційній системі дозволяє оцінити
характеристики прогнозування, в тому числі точність, ефективність,
достовірність результатів і т.п., що відображається в розділі «Статистика»
інформаційної системи.
• Інтерпретація результатів аналізу - служить для представлення
кінцевих результатів аналізу у вигляді найбільш зручному з точки зору
інтерпретації для користувача.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Основні відомості про GoogleWebmaster. // GoogleWebmaster –
довідкова інформація компанії Google про принципи функціонування
механізмів сканування, ранжування інформації в мережі Інтернет.
[Електронний ресурс]. Режим доступу:
https://support.google.com/webmasters/answer/182072?hl=uа]
2. Armstrong J.S. Forecasting for Marketing. United Kingdom, London,
International Thompson Business Press, 1999.
3. Detecting influenza epidemics using search engine query data. // Nature
Publishing Group (NPG) is a publisher of high impact scientific and medical
information in print and online. [Електронний ресурс] [Режим доступу:
http://www.nature.com/nature/journal/v457/n7232/full/nature07634.html]
4. Jingfei Yang M. Sc. Power System Short-term Load Forecasting: Thesis
for Ph.d degree. Germany, Darmstadt, Elektrotechnik und Informationstechnik der
TechnischenUniversitat, 2006. 139 p.
5. Rosenblatt F. Principles of Neurodynamics. – New York: Spartan
Books, 1962.
6. Spink A., Wolfram D., Jansen B.J., Saracevic T. “Searching the Web:
The Public and Their Queries. Journal of the American Society for Information
Science and Technology”, 52(3).
7. Teevan J., Adar E., Jones R., Potts M., “History repeats itself: Repeat
Queries in Yahoo's query logs,” in Conf. Rec. 2005 IEEE Proceedings of the 29th
Annual ACM Conference on Research and Development in Information Retrieval.
8. Основні відомості про GoogleAnalytics. // GoogleAnalytics – портал
компанії Google, що надає послуги введення статистики відвідувачів web-
сайтів. [Електронний ресурс] [Режим доступу:
https://support.google.com/analytics/answer/1008065?hl=ru&ref_topic=1008008].
Лист
ЧДТУ.239047.006 ПЗ т
Зм. Лист № докум. Підпис Дат 75
а
9. Основні відомості про GoogleFluTrends. // GoogleFluTrends – це
сервис, що дозволяє визначити швидкість розповсюдження вірусу грипа в
різних країнах. [Електронний ресурс] [Режим доступу:
http://www.google.org/flutrends/about/faq.html].
10. Основні відомості про GoogleTrends. // GoogleTrends – портал
компанії Google, що надає послуги ведення статистики користувацьких
пошукових запитів. [Електронний ресурс] [Режим доступу:
http://www.google.uа/trends/].
11. SQL для професіоналів. Розробка та дизайн сайтів [Електронний
ресурс]. Режим доступу: https://webbooks.com.ua/books-
main/phpmysql/wordpress-dlya-professionalov/
12. Duckett J. HTML and CSS: Design and Build Websites / Jon Duckett -
New York: John Wiley & Sons, 2011. – 512 с.
13. Brown, T. CSS Master 2nd Edition / Tiffany Brown – New York:
SitePoint, 2018. – 354 с.
14. Верніков Г. Основні методології дослідження організацій. Стандарт
IDEF0. Режим доступу : http://www.cfin.com/vernikov/idef/idef0.shtml.
15. Сергій Маклаков. BPWIN та ERWIN. CASE-засоби для розробки
інформаційних систем. Режим доступу:
https://profilib.com/chtenie/91598/sergey-maklakov-bpwin-i-erwin-case-sredstva-
dlya-razrabotki-informatsionnykh-sistem-10.php.
16. Все про PHP, MySQL і не тільки. Режим доступу:
http://www.php.com.
17. Лінн Бейлі, Майкл Моррісон. Вивчаємо PHP та MySQL. Режим
доступу: http://progbook.com/bd/mysql.
Лист
ЧДТУ.239047.006 ПЗ т
Зм. Лист № докум. Підпис Дат 76
а