Система аналізу on-line контенту

Комплексна обробка просторово-розподілених ресурсів мережі Інтернет. Системи інформаційного моніторингу в мережі. Обґрунтування технологій, розробка системи інтеграції Інтернет-контенту для конкурентного середовища ринку праці. Оцінювання систем аналізу.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 14.07.2013
Размер файла 763,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

У машинних залах ПК не дозволяється встановлювати шафи для зберігання матеріалів і предметів.

Над і під машинними залами ПК не допускається розміщувати пожежонебезпечні і вибухонебезпечні приміщення і склади.

Ремонтувати блоки ПК безпосередньо в машинних залах не дозволяється.

У машинних залах ПК допускається мати в небиткій тарі не більше 0,5 л легкозаймистих рідин для дрібного ремонту і технічного обслуговування машин.

Не дозволяється залишати без нагляду включену в електричну мережу радіоелектронну апаратуру, використовувану для випробувань і контролю ПК.

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

Висновки

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

Проаналізовано та порівняно існуючі системи інформаційного моніторингу в мережі Інтернет, які є оптимальним рішенням завдання орієнтації в інформації з Інтернет в даний час є інформаційні мережеві служби нового типу. Але більшість із них платні та доволі дорогі, а ті, що безкоштовні -- не досить функціональні та усі вони направлені на моніторинг в основному новин та статей.

Проаналізовано та порівняно існуючі технології інтеграції Інтернет-контенту до яких належать Data Mining, Text Mining, Web Mining. В основі двох останніх покладена перша. Вони базуються на одних і тих самих принципах, але можуть використовувати різні методи витягнення потрібної інформації.

Сформульовано критерії оцінювання систем інформаційного моніторингу, до яких належать як критерії функціональної частини, так і критерії оцінювання інтерфейсу.

Спроектовано та розроблено повнофункціональну систему інформаційного моніторингу середовища ринку праці за обраною технологією, яка пропонується як вбудовуваний модуль до сайту.

В якості подальшого вдосконалення системи інформаційного моніторингу представляється можливим розширення її функціоналу в аналітичній частині, тобто створення більшої кількості графіків та діаграм. Так само можливе доопрацювання інтерфейсу сайту з метою подальшого підвищення його інформативності, привабливості та зручності.

Список використаних джерел

1. Berry M.W. Survey of Text Mining. Clustering, Classification, and Retrieval. -- Springer-Verlag. -- 2004. -- 244 p.

2. Brink D., PKI Return on Investment. RSA Security Newsletter, April 2001, Vol. 2, No. 2.

3. Clauset A., Moore C., Newman M. E. G. Hierarchical structure and the prediction of missing links in networks // Nature. -- 2000. -- Vol 453. -- pp. 98-101.

4. Newman M.E. J. The structure and function of complex networks // SIAM Review. -- 2003. -- Vol. 45. -- pp. 167-256.

5. Persse J.R. "Implementing the Capability Maturity Model". Wiley Computer Publishing, 2001.

6. Наталiя Костенко, Валерiй Iванов. Досвiд контент-аналiзу: моделi та практики: Монографiя. -- К.: Центр вiльної преси, 2003. -- 62 с.

7. Ахо А. Теория синтаксического анализа, перевода и компиляции. Т. І. Синтаксический аналіз. / А. Ахо, Дж. Ульман. -- М.: Мир, 1978. -- 650 с.

8. Дридзе Т.М. Текстовая деятельность в структуре социальной коммуникации. М., 1984

9. Белоногов Г.Г. Компьютерная лингвистика и перспективные информационные технологии / Г.Г. Белоногов. -- М.: Русский мир, 2004. -- 248 с.

10. Берко А. Ю. Системи електронної контент-комерції: моногр. / А. Ю. Берко, В. А. Висоцька, В. В. Пасічник. -- Львів: Видавництво Львівської політехніки, 2009. -- 612 с. 2.

11. Боркова Т.И. Технология оценки и использования результатов тестирования: опыт ДВГУ и УНО АПК внедрения образовательного мониторинга для управления качеством образования / Т.И. Боркова, В.И.Вовна, И.А.Морев // Развитие системы тестирования в России. Тезисы докладов III Всероссийской научно-методической конф. (Москва 22-23 ноября 2001 г.): материалы конф. -- М. -- 2001. -- С.55.

12. Брайчевский С.М., Ландэ Д.В. Современные информационные потоки: актуальная проблематика // Научно-техническая информация: Сер. 1. -- 2005. -- Вып. 11. -- С. 21-33

13. Георгіаді Н.ГОсобливості оцінки ефективності інформаційних систем підприємств / Н.Г. Георгіаді, С.В. Князь, Я.Я. Пушак // Економіка промисловості. -- 2004. -- № 1(23). -- С. 79-88.

14. Гершензон Л. М., Ножов И. М., Панкратов Д. В. Система извлечения и поиска структурированной информации из больших текстовых массивов СМИ. Архитектурные и лингвистические особенности // Компьютерная лингвистика и интеллектуальные технологии: Труды международной конференции «Диалог'2005» (Звенигород, 1-6 июня, 2005 г.)/ Под ред. И. М. Кобозевой, А. С. Нариньяни, В. П. Селегея. -- М.: Наука.

15. Годин В.В. Модульная программа для менеджеров: 17-модул. прогр. "Упр. развитием орг."/ В.В. Годин, И.К. Корнеев // Гос. ун-т упр. -- М.: ИНФРА-М, 2000. -- 269 с.

16. Григорьев А. Н., Ландэ Д. В. Адаптивный интерфейс уточнения запросов к системе контент-мониторинга InfoStream // Компьютерная лингвистика и интеллектуальные технологи. 2002. -- №. -- С. 345-348.

17. Григорьев А., Ландэ Д. В. Контент-мониторинг сетевых информационных потоков [Электронный ресурс] / Официальный ежемесячный www-регистр бизнес-ресурсов Украины и зарубежья -- Режим доступа: http://infostream.com.ua/infostream/publ/cbr/index.shtml -- Загол.с экрана.

18. Григорьев А.Н. InfoStream. Мониторинг новостей из Интернет: технология, система, сервис: научно-методическое пособие / Григорьев А.Н., Ландэ Д.В., Бороденков С.А., Мазуркевич Р.В., Пацьора В.Н. -- К., ООО “Старт-98”, 2007. -- 40 с.

19. Григорьев А.Н., Ландэ Д.В. Система мониторинга новостей InfoStream -- информационное пространство из одних рук // Построение информационного общества: ресурсы и технологии. Тезисы докладов и информационные материалы XI международной научно-практической конференции. -- К: УкрИНТЭИ. -- 2005. -- С. 17-20.

20. Додонов А. Г. Виявлення категорій і їх взаємозв'язків у рамках технології контент-моніторингу / Додонов А. Г., Ланде Д.В. //Вісник державної служби України. -- 2006. -- № 4. -- С. 45-52 с. 3.

21. Додонов А. Г., Ландэ Д. В. Выявление понятий и их взаимосвязей в рамках технологии контент- мониторинга // Регистрация, хранение и обработка данных, 2006, Т. 8, № 4. -- С. 45-52.

22. Ермаков А. Е. Автоматическое извлечение фактов из текстов досье: опыт установления // Компьютерная лингвистика и интеллектуальные технологии: Труды международной конференции «Диалог 2007» (Бекасово, 30 мая -- 3 июня 2007 г.) / Под ред. Л. Л. Иомдина, Н. И. Лауфер, А. С. Нариньяни, В. П. Селегея. -- М.: Изд- во РГГУ. -- 2007. -- С. 172-177.

23. ЗАКОН УКРАЇНИ Про охорону праці [Електронний ресурс] / Режим доступу: http://zakon.rada.gov.ua/cgi-bin/laws/main.cgi?nreg=2694-12. -- Назва з екрана.

24. Информационные системы: [учеб. пособие / под ред. В.Н. Волковой, Б.И. Кузина]. -- СПб.: Изд-во СПбГПУ. -- 2004. -- 224 с.

25. Исаев Г.Г. Информационные системы в экономике / Г.Г. Исаев, И.В. Чернышев -- Ульяновск: УлГТУ -- 2003. -- 100 с.

26. Каган М. Синергетика и культурология / М.Каган [электронный ресурс]. -- Режим доступa: URL: http://bioinformatix.ru/content/view/412/49. -- Загол. с экрана.

27. Квєтний Р. Н. Визначення сенсу текстової інформації на основі моделі розповсюдження обмежень / Р. Н. Квєтний, О. В. Бісікало, І. О. Назаров // Вимірювальна та обчислювальна техніка в технологічних процесах. -- 2012. -- №1. -- С. 93-95.

28. Кули Ч. Человеческая природа и социальный порядок / Ч. Кули. -- М.: Идея-Пресс, 2001. -- 328 с.

29. Ланде Д. В. Основи теорії та технології інтеграції інформаційних потоків в інтернет-просторі: автореф. дис. на здобуття наук, ступеня докт. техн. наук: спец. 05.13.06 -- «автоматизовані системи управління та прогресивні інформаційні технології» / Д. В. Ланде. -- Київ. -- 2006. -- 20, [1] с.

30. Ландэ Д. В. Програмно-апаратнa система інформаційної підтримки прийняття рішень: наук.-метод. посіб. / Д. В. Ландэ, В. М.Фурашев, О. М. Григор'єв. -- Київ, 2006. -- 48 с. 5.

31. Ландэ Д. В. Системы мониторинга Internet-контента. / Д. В. Ландэ // Бизнес-регистр. -- 2002. -- №2 (8). -- С. 36-39.

32. Ландэ Д. В., Григорьев А. Н., Брайчевский С. М., Дармохвал А. Т., Снарский А. А. Труды 9-ой Всероссийской научной конференции «Электронные библиотеки: перспективные методы и технологии, электронные коллекции» -- RCDL- 2007, Переславль-Залесский, Россия. -- 2007. -- С. 148-150.

33. Ландэ Д. В. Интернетика: Навигация в сложных сетях: модели и алгоритмы / Д. В. Ландэ, А. А. Снарский, И. В. Безсуднов -- M.: Либроком (Editorial URSS). -- 2009. -- 264 с.

34. Ландэ Д.В. Затерянный веб // Журнал "Телеком". -- К., 2005. -- № 1-2. -- С. 46-51.

35. Ландэ Д.В. Поиск знаний в Internet. Профессиональная работа / Д.В. Ландэ -- М.: "Вильямс", 2005. -- 272 с.

36. Ландэ Д.В., Школа веб-разведки / Д.В. Ландэ, В.В. Прищепа // Журнал "Телеком". -- К., 2007. -- № 6. -- С. 40-45.

37. Леліков Г.І. Моніторинг діяльності органів виконавчої влади із застосуванням комп `ютерної системи контент-аналізу електронних ЗМІ / Г.І. Леліков, В.М. Сороко, О.М. Григор'єв, Д.В. Ланде //Вісник державної служби України. -- 2002. -- № 2. -- С. 72-78 с. 6.

38. Майоров А. Н. Мониторинг как научно-практический феномен / А.Н. Майоров // Школьные технологии. -- 1998. -- № 5. -- С. 25.

39. Массон Г. В. Взаимосвязь системы личностных терминальных ценностей и типов межличностных отношений: Дис.... канд. психол. наук: 19.00.01: Красноярск, 2004. -- 146 c. РГБ ОД, 61:05-19/11

40. Мейор Т. Методологии оценки ИТ. / Т. Мейор // Директор ИС. -- 2002. -- № 9. -- 215 с.

41. Методика оценки научно-технического уровня АСУ. Типовые положения (РД 50-492-84) / [под. ред. Т.А. Киселевой]. -- М.: Изд-во стандартов, 1985. -- 18 с.

42. Методические рекомендации по выбору и адаптации применительно к средствам вычислительной техники и информатики методик расчета показателей экономической эффективности / Ин-т кибернетики им. В.М. Глушкова. -- К., 1992. -- 56 с.

43. Мещеряков С. В. Эффективные технологии создания информационных систем. / C.В. Мещеряков, В.М. Иванов -- СПб.: Политехника. -- 2005. -- 309 с.

44. Нога Р. Аналітичний огляд методів та засобів опрацювання текстової інформації / Р. Нога, Н. Б. Шаховська // Видавництво: Львівська політехніка. -- 2011. -- С. 323-332.

45. Плэтт В. Информационная работа стратегической разведки / В. Плэтт-- М. -- 1958. -- 510 с.

46. Романюк А. Розпізнавання багатослівних конструкцій. / А. Романюк, Г. Кваснюк, М. Романишин. // Комп'ютерні системи проектування теорія і практика. -- 2011. -- №711. -- С. 158-165.

47. Савенко О. С. Методи лексичного аналізу технічного завдання на розробку програмного забезпечення. / О. С. Савенко, Ю. П. Кльоц, В. С. Шевцов. // Вісник хмельницького національного університету. -- 2011. -- №5. -- С. 167-171.

48. Скрипкин К. Г.. Экономическая эффективность информационных систем / Скрипкин К. Г. -- М.: ДМК Пресс. -- 2002. -- 256 с.

49. Смит П. Коммуникации стратегического маркетинга / П.Смит, К. Берри. -- М.: Юнити-Дана, 2001. -- 282 с.

50. Снарский А. А., Ландэ Д. В., Женировский М. И. Метод выявления неявных связей объектов // Труды 11й Всероссийской научной конференции «Электронные библиотеки: перспективные методы и технологии, электронные коллекции» -- RCDL'2009, Петрозаводск, Россия. -- 2009. -- C 46-49.

51. Сорока М., Танатар Н. Використання методу контент-аналiзу при створеннi автоматизованих iнформацiйних систем // Наук. пр. НБУВ. -- 1998. -- Вып. 1. -- С. 318-323.

52. Труды международной конференции «Диа- лог'2005» (Звенигород, 1-6 июня, 2005 г.) / Под ред. И. М. Кобозевой, А. С. Нариньяни, В. П. Селегея. -- М.:Наука -- С. 109-111.

53. Урсул А. Концепция современного естествознания / А. Урсул, В. Лось. -- М., 2005. -- 440 с.

54. Федорчук А. Г. Контент-мониторинг информационных потоков [Электронный ресурс] / Б-ки Нац. акад. наук: пробл. функционирования, тенденции развития. -- К., 2005. -- Вып. 3. -- Режим доступа: http://www.nbuv.gov.ua/articles/2005/05fagmip.html. -- Загол. с экрана.

55. Федорчук А., Танатар Н. Президентськi вибори 1999 року: контент-аналiз матерiалiв преси // Там само. -- С. 351- 354.

56. Фостер Дж. Автоматический синтаксический анализ / Фостер Дж.; пер. с англ. В.В. Мартынюка; под ред. Э.З. Любимского. -- М.: Мир, 1975. -- 70с.

57. Фрост, Р., Хафіз, Р. і Callaghan, P. (2007) «Модульний та ефективної зверху вниз розбору для неоднозначних лівої рекурсивних граматик». 10-й Міжнародний семінар з Аналіз технологій (IWPT), ACL-SIGPARSE, сторінки: 109 -- 120, червень 2007 р. в Празі.

58. Фрост, Р., Хафіз, Р. і Callaghan, P. (2008) "Parser комбінаторів для неоднозначних лівих рекурсивних граматик». Десятий Міжнародний симпозіум з практичним аспектам декларативних Мови (PADL), ACM-SIGPLAN, Том 4902/2008, сторінок: 167 -- 181, січні 2008 року, Сан-Франциско.

59. Хантер Р. Основные концепции компиляторов / Робин Хантер; пер. с англ. -- М.: Вильямс, 2002. -- 256 с.

60. Шибутан ИТ. Социальная психология / И.Т.Шибутан, Ш. Тамотсу. -- М.: Феникс, 1999. -- 544с.

61. Широков В.А. Корпусна лінгвістика. / В. А. Широков, О. В. Бугаков, Т. О. Грязнухіна. -- К.: Довіра, 2005. -- 471с.

62. Шишов С.Е. Школа: мониторинг качества образования / С.Е.Шишов, В.А.Кальней. -- М.: Педагогическое общество России, 2000. -- 320 с.

Додаток А

Лістинг програми

Головна сторінка (пошук, аналіз, аналітика запиту)

<?php header('Content-Type: text/html; charset=windows-1251'); ?>

<?php require_once 'lib/functions.php'; ?>

<html>

<head>

<title>Система інформаційного моніторингу</title>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<link rel="stylesheet" type="text/css" href="style.css" />

</head>

<body>

<table align="center" width="35%">

<tr>

<td width="15%"><?php if(!$_REQUEST['act'] or $_REQUEST['act'] == 'work'){echo "<a href=\"index.php\"><b>Пошук</b></a>";}else echo "<a href=\"index.php\">Пошук</a>"; ?></td>

<td width="15%"><?php if($_REQUEST['act'] == 'analytics'){echo "<b><a href=\"analytics.php?act=show\">Аналітика</a></b>";}else echo "<a href=\"analytics.php?act=show\">Аналітика</a>"; ?></td>

<td></td>

</tr>

</table>

<table align="center" width="35%" class="main">

<form>

<input type="hidden" name="act" value="work" />

<tr><td width="85%">

<input type="text" name="keyword" style="font-family: Tahoma; font-size: 10px; width: 100%;" />

</td>

<td>

<input type="submit" name="ok" value="Знайти" />

</td>

</tr>

</form>

</table>

<?php

// Парсинг, запись в базу и выведение результатов поиска

if ($_REQUEST['act'] == 'work')

{

$keyword = $_REQUEST['keyword'];

$jobsua = GetUrl("http://www.jobs.ua/vacancy/search/?todo=search&keywords={$_REQUEST['keyword']}&city=0"); // отправка запроса на сайт

$handle=@fopen("jobsua.txt","a"); // запись страницы результатов в файл

fwrite($handle,$jobsua);

fclose($handle);

$jobukrnet = GetUrl("http://job.ukr.net/vacancy/?ShowSearchResults=1&CityId=0&RegionId=9&Keywords={$_REQUEST['keyword']}");

$handle=@fopen("jobsukr.net.txt","a");

fwrite($handle,$jobukrnet);

fclose($handle);

//$workua = GetUrl("http://www.work.ua/jobs/?search={$_REQUEST['keyword']}&ss=1&region=39");

$links = GetVacancyArray($jobsua); // парсинг ссылок на вакансии

mysql_connect('localhost','chatlanin_umnik','5447221'); // подключение к базе

mysql_select_db('chatlanin_spy');

foreach($links as $url) // цикл перебора каждого файла с вакансией

{

$url = "http://www.jobs.ua".$url;

$vac_html = GetUrl($url);

file_put_contents("cache/".md5($url).".htm", $vac_html);

$file_name = "cache/".md5($url).".htm";

$file = file_get_contents($file_name);

$jobsua_company = GetCompany($file); // ок

$jobsua_city = GetCity($file); // ок

$jobsua_salary = GetSalary($file); // ок

$jobsua_sex = GetSex($file); // ок

$jobsua_post = GetPost($file); // ок

$jobsua_age = GetAge($file); // ок

$jobsua_education = GetEducation($file); // ок

$jobsua_experience = GetExperience($file); // ок

// ________Запрос в базу на запись _________

$query = "INSERT into report(company, city, salary, sex, post, age, education, experience, search_engine, search_query) values('".mysql_escape_string($jobsua_company)."','"

.$jobsua_city."','"

.$jobsua_salary."','"

.$jobsua_sex."','"

.$jobsua_post."','"

.$jobsua_age."','"

.$jobsua_education."','"

.$jobsua_experience."','jobs.ua','"

.$keyword."');";

mysql_query($query);

$query_select = "SELECT * from report where search_query = '".$keyword."';";

$result = mysql_query($query_select);

// проверка на существование результатов поиска

$fail = count($links);

}

if(!$links)

{

echo "<center>Не знайдено вакансій!</center>";

} else {

?>

<!--Вывод таблички с результатом-->

<table align="center" width="75%" class="main">

<tr>

<td>

Пошуковий запит: <b><?php $row1 = mysql_fetch_array($result); echo $row1['search_query']; ?></b>

</td>

<tr>

</tr>

<td>

Результати з сайту: <b><?php echo $row1['search_engine']; ?></b>

</td>

<td colspan="6" align="right">

<a href="index.php?act=analytics&keyword=<?php echo $_REQUEST['keyword'];?>"><img src="graf.png" /> Аналітика запиту</a>

<a href="stats.php?act=download&keyword=<?php echo $_REQUEST['keyword'];?>" target=_blank><img src="Excel.gif" /> Завантажити звіт</a>

</td>

</tr>

</table>

<table id="box-table-a" align="center" width="75%">

<thead>

<tr>

<th scope="col">Компанія</th>

<th scope="col">Місто</th>

<th scope="col">Зарплата</th>

<th scope="col">Стать</th>

<th scope="col">Посада</th>

<th scope="col">Вік</th>

<th scope="col">Освіта</th>

<th scope="col">Досвід роботи</th>

</tr>

</thead>

<tbody>

<?php

while($row = mysql_fetch_array($result))

{

echo "<tr><td>{$row['company']}</td><td>{$row['city']}</td><td>{$row['salary']}</td><td>{$row['sex']}</td><td>{$row['post']}</td><td>{$row['age']}</td><td>{$row['education']}</td><td>{$row['experience']}</td></tr>";

}

?>

</tbody>

</table>

<?php

}

} // Блок создания и вывода аналитики по поисковому запросу

if($_REQUEST['act'] == 'analytics')

{

echo "<p class=\"title_in_analytics\">Аналітика запиту <b>".$_REQUEST['keyword']."</b></p>";

mysql_connect('localhost', 'chatlanin_umnik', '5447221');

mysql_select_db('chatlanin_spy');

// Блок запросов к базе

$query = "SELECT education, count(*) FROM report WHERE search_query = '".$_REQUEST['keyword']. "'GROUP BY education ORDER BY education DESC"; // Круговая диаграмма по образованию

$query_vacancy = "SELECT date, search_query, count(*) FROM report WHERE search_query = '".$_REQUEST['keyword']. "' GROUP BY date ORDER BY date ASC"; // Столбики по вакансиям

$query_sex = "SELECT sex, count(*) FROM report WHERE search_query = '".$_REQUEST['keyword']. "' GROUP BY sex ORDER BY sex DESC"; // Круговая диаграмма по половому признаку

$query_age = "SELECT age, count(*) FROM report WHERE search_query = '".$_REQUEST['keyword']. "' GROUP BY age ORDER BY age DESC";

$query_city_salary = "SELECT city, AVG(salary) as 'avg' FROM report WHERE search_query = '".$_REQUEST['keyword']. "' GROUP BY city";

$result = mysql_query($query);

$result_vacancy = mysql_query($query_vacancy);

$result_sex = mysql_query($query_sex);

$result_age = mysql_query($query_age);

$result_city_salary = mysql_query($query_city_salary);

// Блок формирования структурных массивов с данными для построения графиков

$rs[] = array(iconv('cp1251', 'utf-8', 'Освіта'), iconv('cp1251', 'utf-8', 'Кількість'));

while($row = mysql_fetch_assoc($result))

{

$row['education'] = iconv('cp1251', 'utf-8', $row['education']);

$rs[] = array($row['education'], intval($row['count(*)']));

}

echo "<script type=\"text/javascript\">var x = ".json_encode($rs).";</script>";

$rs_vacancy[] = array(iconv('cp1251', 'utf-8', 'Вакансія'), iconv('cp1251', 'utf-8', $_REQUEST['keyword']));

while($row_vacancy = mysql_fetch_assoc($result_vacancy))

{

$row_vacancy['search_query'] = iconv('cp1251', 'utf-8', $row_vacancy['search_query']);

$rs_vacancy[] = array(date("d.m.y", strtotime($row_vacancy['date'])), intval($row_vacancy['count(*)']));

}

echo "<script type=\"text/javascript\">var y = ".json_encode($rs_vacancy).";</script>";

$rs_sex[] = array(iconv('cp1251', 'utf-8', 'Стать'), iconv('cp1251', 'utf-8', 'Кількість'));

while($row_sex = mysql_fetch_assoc($result_sex))

{

$row_sex['sex'] = iconv('cp1251', 'utf-8', $row_sex['sex']);

$rs_sex[] = array($row_sex['sex'], intval($row_sex['count(*)']));

}

echo "<script type=\"text/javascript\">var z = ".json_encode($rs_sex).";</script>";

$rs_age[] = array(iconv('cp1251', 'utf-8', 'Вік'), iconv('cp1251', 'utf-8', 'Кількість'));

while($row_age = mysql_fetch_assoc($result_age))

{

$row_age['age'] = iconv('cp1251', 'utf-8', $row_age['age']);

$rs_age[] = array($row_age['age'], intval($row_age['count(*)']));

}

echo "<script type=\"text/javascript\">var a = ".json_encode($rs_age).";</script>";

$rs_city_salary[] = array(iconv('cp1251', 'utf-8', 'Місто'), iconv('cp1251', 'utf-8', 'Зарплата'));

while($row_city_salary = mysql_fetch_assoc($result_city_salary))

{

$row_city_salary['city'] = iconv('cp1251', 'utf-8', $row_city_salary['city']);

$rs_city_salary[] = array($row_city_salary['city'], intval($row_city_salary['avg']));

}

echo "<script type=\"text/javascript\">var b = ".json_encode($rs_city_salary).";</script>";

?>

<!--Формированиие и вывод графиков-->

<script type="text/javascript">

google.load("visualization", "1", {packages:["corechart"]});

google.setOnLoadCallback(drawChart);

function drawChart() {

var data = google.visualization.arrayToDataTable(x);

var options = {

title: 'Освіта',

is3D: 'true'

};

var chart = new google.visualization.PieChart(document.getElementById('chart_div'));

chart.draw(data, options);

}

</script>

<script type="text/javascript">

google.setOnLoadCallback(drawChart);

function drawChart() {

var data_post = google.visualization.arrayToDataTable(y);

var options_post = {

title: 'Результати пошукових запитів',

hAxis: {title: 'Вакансії', titleTextStyle: {fontName: 'Tahoma', fontSize: 11}},

fontName: 'Tahoma',

fontSize: 12

};

var chart_post = new google.visualization.ColumnChart(document.getElementById('chart_post'));

chart_post.draw(data_post, options_post);

}

</script>

<script type="text/javascript">

google.load("visualization", "1", {packages:["corechart"]});

google.setOnLoadCallback(drawChart);

function drawChart() {

var data_sex = google.visualization.arrayToDataTable(z);

var options_sex = {

title: 'Стать',

is3D: 'true'

};

var chart_sex = new google.visualization.PieChart(document.getElementById('chart_sex'));

chart_sex.draw(data_sex, options_sex);

}

</script>

<script type="text/javascript">

google.load("visualization", "1", {packages:["corechart"]});

google.setOnLoadCallback(drawChart);

function drawChart() {

var data = google.visualization.arrayToDataTable(a);

var options = {

title: 'Вік',

is3D: 'true'

};

var chart = new google.visualization.PieChart(document.getElementById('chart_age'));

chart.draw(data, options);

}

</script>

<script type="text/javascript">

google.load("visualization", "1", {packages:["corechart"]});

google.setOnLoadCallback(drawChart);

function drawChart() {

var data = google.visualization.arrayToDataTable(b);

var options = {

title: 'Зарплата по містам',

is3D: 'true'

};

var chart = new google.visualization.LineChart(document.getElementById('city_salary'));

chart.draw(data, options);

}

</script>

<table>

<tr>

<td><div id="chart_div"></div></td>

<td><div id="chart_sex"></div><td>

<td><div id="chart_age"></div><td>

</tr>

<tr>

<td><div id="chart_post" style="width: auto; height: 500px;"></div></td>

<td><div id="city_salary" style="width: auto; height: 500px;"></div></td>

</tr>

</table>

<?php

}

?>

</body>

</html>

Генерація звіту

<?php

// Формирование Excel файла со статистикой

$link = mysql_connect('localhost', 'chatlanin_umnik', '5447221');

//mysql_query("SET NAMES 'cp1251'");

//mysql_query("SET CHARACTER SET 'cp1251'");

mysql_select_db('chatlanin_spy');

$select = "SELECT company as 'Фірма',

city as 'Місто',

salary as 'Зарплата',

sex as 'Стать',

post as 'Посада',

age as 'Вік',

education as 'Освіта',

experience as 'Досвід роботи',

search_query as 'Пошукове слово',

date as 'Дата',

search_engine as 'Пошукова система' FROM report WHERE search_query = '".$_REQUEST['keyword']."'";

$export = mysql_query ($select) or die ("Sql error: ". mysql_error());

$fields = mysql_num_fields ($export);

for ($i = 0; $i < $fields; $i++)

{

$header.= mysql_field_name($export, $i). "\t";

}

while($row = mysql_fetch_row($export))

{

$line = '';

foreach($row as $value)

{ //$value = iconv('utf-8', 'windows-1251', $value);

if ((!isset($value)) || ($value == ""))

{

$value = "\t";

}

else

{

$value = str_replace('"', '""', $value);

$value = '"'. $value. '"'. "\t";

}

$line.= $value;

}

$data.= trim($line). "\n";

}

$data = str_replace("\r", "", $data);

if ($data == "")

{

$data = "\n(0) Records Found!\n";

}

header("Content-type: application/octet-stream;");

header("Content-Disposition: attachment; filename=report.xls");

header("Pragma: no-cache");

header("Expires: 0");

print "$header\n$data";

Сторінка загальної аналітики

<?php header('Content-Type: text/html; charset=windows-1251'); ?>

<html>

<head>

<title>Система інформаційного моніторингу</title>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

<link rel="stylesheet" type="text/css" href="style.css" />

</head>

<body>

<table align="center" width="35%">

<tr>

<td width="15%"><?php if(!$_REQUEST['act'] or $_REQUEST['act'] == 'work'){echo "<a href=\"index.php\"><b>Пошук</b></a>";}else echo "<a href=\"index.php\">Пошук</a>"; ?></td>

<td width="15%"><?php if($_REQUEST['act'] == 'show'){echo "<b><a href=\"index.php?act=analytics\">Аналітика</a></b>";}else echo "<a href=\"index.php?act=analytics\">Аналітика</a>"; ?></td>

<td></td>

</tr>

</table>

<table align="center" width="35%">

<form>

<input type="hidden" name="act" value="work" />

<tr><td width="85%">

<input type="text" name="keyword" style="font-family: Tahoma; font-size: 10px; width: 100%;" />

</td>

<td>

<input type="submit" name="ok" value="Знайти" />

</td>

</tr>

</form>

</table>

<?php

// Блок формирования общей аналитики

if($_REQUEST['act'] == 'show')

{

echo "<center><h3>Загальна аналітика системи</h3></center>";

mysql_connect('localhost', 'chatlanin_umnik', '5447221');

mysql_select_db('chatlanin_spy');

// Блок запросов к базе

$query = "SELECT education, count(*) FROM report GROUP BY education ORDER BY education DESC"; // Круговая диаграмма по образованию

$query_vacancy = "SELECT search_query, count(*) FROM report GROUP BY search_query ORDER BY search_query DESC"; // Столбики по вакансиям

$result = mysql_query($query);

$result_vacancy = mysql_query($query_vacancy);

// Блок формирования структурных массивов с данными для построения графиков

$rs[] = array(iconv('cp1251', 'utf-8', 'Освіта'), iconv('cp1251', 'utf-8', 'Кількість'));

while($row = mysql_fetch_assoc($result))

{

$row['education'] = iconv('cp1251', 'utf-8', $row['education']);

$rs[] = array($row['education'], intval($row['count(*)']));

}

echo "<script type=\"text/javascript\">var x = ".json_encode($rs).";</script>";

$rs_vacancy[] = array(iconv('cp1251', 'utf-8', 'Вакансія'), iconv('cp1251', 'utf-8', 'Кількість'));

while($row_vacancy = mysql_fetch_assoc($result_vacancy))

{

$row_vacancy['search_query'] = iconv('cp1251', 'utf-8', $row_vacancy['search_query']);

$rs_vacancy[] = array($row_vacancy['search_query'], intval($row_vacancy['count(*)']));

}

echo "<script type=\"text/javascript\">var y = ".json_encode($rs_vacancy).";</script>";

?>

<!--Формированиие и вывод графиков-->

<script type="text/javascript">

google.load("visualization", "1", {packages:["corechart"]});

google.setOnLoadCallback(drawChart);

function drawChart() {

var data = google.visualization.arrayToDataTable(x);

var options = {

title: 'Освіта',

is3D: 'true'

};

var chart = new google.visualization.PieChart(document.getElementById('chart_div'));

chart.draw(data, options);

}

</script>

<script type="text/javascript">

google.setOnLoadCallback(drawChart);

function drawChart() {

var data_post = google.visualization.arrayToDataTable(y);

var options_post = {

title: 'Пошукові запити',

hAxis: {title: 'Вакансії', titleTextStyle: {fontName: 'Tahoma', fontSize: 11}},

fontName: 'Tahoma',

fontSize: 12

};

var chart_post = new google.visualization.BarChart(document.getElementById('chart_post'));

chart_post.draw(data_post, options_post);

}

</script>

<table width="70%">

<tr>

<td><div id="chart_div" style="width: 500px; height: 300px;"></div></td>

<td></td>

</tr>

<tr>

<td colspan="2"><center><div id="chart_post" style="width: auto; height: 500px;"></div></center></td>

</tr>

</table>

<?php

}

?>

</body>

</html>

Бібліотека регулярних виразів

<?php

function GetUrl($url) // отправка запроса на поисковый сайт и сохранение страницы результатов

{

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_HEADER, 0); // потому что HTTP-header в ответе тебе не нужен

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // потому что надо результат в переменную, а не на вывод

curl_setopt($curl, CURLOPT_TIMEOUT, 10);

$result_page = curl_exec($curl);

curl_close($curl);

return $result_page;

}

function get_matches($text, $regex, $index = null) // поиск совпадений

{

$matches = array();

$cnt = preg_match_all($regex, $text, $matches);

if(is_null($index))

return $matches;

else

return $matches[$index];

}

function GetVacancyArray($html) // поиск ссылок на вакансии

{

return get_matches($html, '/<a\s*?href="([0-9a-z\/]*?)"\s*?class="def_bl_vac".*?>([^<>]*?)<\/a>/ims', 1);

}

function GetCompany($text) // поиск компании-работодателя

{

$matches = array();

$pattern = '/viewcontcenter.*?<li>(.*?)<\/li>/ims';

$result = preg_match($pattern, $text, $matches);

$matches[1] = strip_tags($matches[1]);

return $matches[1];

}

function GetCity($text) // поиск города

{

$matches = array();

$pattern = '/viewcontcenter.*?<li>.*?<\/li>.*?<li>(.*?)<\/li>/ims';

$result = preg_match($pattern, $text, $matches);

$matches[1] = strip_tags($matches[1]);

return $matches[1];

}

function GetSalary($text) // поиск зарплаты, приведение зарплат и валют к общему формату

{

$matches = array();

$pattern = '/viewcontcenter.*?<li>.*?<\/li>.*?<li>.*?<\/li>.*?<li>(.*?)<\/li>/ims';

$result = preg_match($pattern, $text, $matches);

$matches[1] = strip_tags($matches[1]);

$pattern_currency = '/(\D*?)(\d*?)(\D+)/';

$result = preg_match($pattern_currency, $matches[1],$matches_currency);

$matches_currency[3] = trim($matches_currency[3]);

switch($matches_currency[3]){

case 'грн': return $matches_currency[2] * 1;

case '$': return $matches_currency[2] * 8;

case '€': return $matches_currency[2] * 11;

default: return $matches_currency[3];

}

return $matches_currency[1].'; '.$matches_currency[2].';lolol '.$matches_currency[3];

}

function GetExperience($text) // поиск опыта работы

{

$matches = array();

$pattern = '/viewcontcenter.*?<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>(.*?)<\/li>/ims';

$result = preg_match($pattern, $text, $matches);

$res = $matches[1];

//$res = preg_replace('/[^0-9,;\+]/i', '', $res);

$res = trim($res);

return $res;

}

function GetSex($text) // поиск пола

{

$matches = array();

$pattern = '/viewcontcenter.*?<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>(.*?)<\/li>/ims';

//$pattern = '/viewcontcenter.*?<li>.*?</li><li>.*?</li><li><a.*?</a></li><li>(.*?)</li><li>опыт работы 1-2 года</li><li>полная занятость</li><li>2900 грн</li><li>Аналітик продаж,економіст</li></ul><div class="viewcontright">/ims';

$result = preg_match($pattern, $text, $matches);

$matches[1] = strip_tags($matches[1]);

$matches[1] = trim($matches[1]);

return $matches[1];

}

function GetAge($text) // поиск возраста

{

$matches = array();

//$pattern = '/viewcontcenter.*?<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>(.*?)<\/li>/ims';

$pattern = '/viewcontcenter.*?<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>\D*?(\d+)?\D*?(\d+)?\D+<\/li>/ims';

$result = preg_match($pattern, $text, $matches);

return $matches[1];

}

function GetEducation($text) // поиск образования

{

$matches = array();

//$pattern = '/viewcontcenter.*?<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>(.*?)<\/li>/ims';

$pattern = '/viewcontcenter.*?<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>(.*?)<\/li>/ims';

$result = preg_match($pattern, $text, $matches);

$matches[1] = trim($matches[1]);

return $matches[1];

}

function GetPost($text) // поиск должности

{

$matches = array();

$pattern = '/viewcontcenter.*?<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>.*?<\/li>\s*<li>(.*?)<\/li>/ims';

$result = preg_match($pattern, $text, $matches);

$matches[1] = strip_tags($matches[1]);

return $matches[1];

}

function ScreenSQL($sql) // экранирование кавычек (защита от атак)

{

return str_replace("'", "''", $sql);

}

?>

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.