Разработка подхода к прогнозированию заработной платы по ключевым навыкам на основе вакансий на примере сайта hh.ru

Определение собственной ценности для организации, выраженной в заработной плате как одна из проблем для соискателей. Python - высокоуровневый язык программирования с высоким уровнем интерпретируемости кода. Алгоритм парсинга вакансий с сайта hh.ru.

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

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

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

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Введение

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

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

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

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

На данный момент всё большую популярность набирают интернет-технологии - сайты по трудоустройству такие как www.hh.ru, www.superjob.ru, www.job.ru. Не только поиск работы на данных сайтах происходит значительно быстрее и проще, чем по другим каналам.

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

Актуальность работы обусловлена требованиями рынка к автоматизации обработки данных в процессе подбора сотрудников работодателем и в процессе поиска соискателем работы.

Гипотеза исследования - заработная плата зависит от текстового описания вакансии.

Практическая значимость работы заключается в применении методов анализа данных для прогнозирования уровня заработной платы по ключевым компетенциям на основе объявлений hh.ru. Научная новизна данной работы заключается в выявлении зависимости между ключевыми компетенциями и уровнем заработной платы.

Объект исследования - объявление о трудоустройстве.

Предмет исследования - текстовая информация, представленная в объявлении.

Цель работы - разработать подход к прогнозированию заработной платы по ключевым компетенциям на основе объявлений hh.ru.

Задачи работы:

1. Парсинг данных с сайта hh.ru;

2. Анализ текстовой информации, указанной в объявлениях;

3. Применение различных алгоритмов для прогнозирования заработной платы по ключевым компетенциям на основе объявлений hh.ru;

4. Анализ качества работы моделей.

В данной работе были применены следующие методы и технологии:

· Парсинг данных;

· Анализ текста;

· Кластерный анализ;

· Визуализация данных;

· Построение предиктивной модели на основе алгоритмов машинного обучения.

1. Теоретические предпосылки прогнозирования заработной платы

1.1 Состояние рынка труда

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

Около 50% опрошенных в исследовании hh.ru указали, что в 2018г меняли либо место работы, либо занимаемую должность. При этом начинающие специалисты значительно чаще меняют работу, чем другие сегменты. С другой стороны, начинающих специалистов реже повышают. Более 50% респондентов указали, что их зарплата изменилась за последний год [1].

34% респондентов указали, что компания-работодатель проводила сокращение рабочих мест.

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

К ключевым критериям выбора компании помимо заработной платы относят:

1. Добровольное медицинское страхование - 77% респондентов;

2. Предоставление транспорта - 52% респондентов;

3. Увеличенный отпуск - 48% респондентов;

4. Финансовая поддержка дополнительного образования - 47% респондентов.

Стоит отметить рост числа специалистов, желающих работать по гибкому графику - 4% (81% в 2018г., 77% в 2017г.).

Около 80% работодателей отмечают завышенные зарплатные ожидания среди специалистов. Этот факт подтверждает то, что 25% отказов на предложение о найме происходит из-за низкой предложенной заработной платы [2].

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

1.2 Влияние развития информационных технологий на сферу HR

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

1. Проведение собственного исследования рынка среди резюме специалистов с указанной желаемой зарплатой со схожими характеристиками;

2. Проведение собственного исследования рынка среди соответствующих вакансий с указанной предлагаемой заработной платой;

3. Проведение анализа чужих отраслевых исследований.

Выделяют наиболее важные факторы, от которых зависит заработная плата - релевантный опыт работы, высшее образование, отрасль, местоположение и т.д. [3, 4, 5].

Основной недостаток всех трёх подходов в том, что сотрудник выбирает желаемую специальность и оценивает среднее значение заработной платы на данной позиции. Однако данные подходы не дают понимания о разнице между максимальным и минимальным предложением, т.е. не выявляет те компетенции, которые отделяют должность с минимальной заработной платой от максимальной. А значит данный метод не может называться точным и давать адекватный результат с достаточным уровнем вероятности.

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

Компании по-разному подходят к решению данной проблемы. Некоторые HR-подразделения становятся внутренними заказчиками для
IT-отделов. В таких случаях разрабатываются информационные системы разных типов для решения задач анализа рынка труда, внутренних кадровых ресурсов компании и т.д. Но это редкие случаи, относящиеся к крупному бизнесу.

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

Согласно исследованию hh.ru 11% компаний уже внедрили или внедряют технологии, связанные с интеллектуальным анализом данных в HR, а около 50% компаний планируют внедрение [6].

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

Основные автоматизируемые HR-задачи:

· Первичный скрининг и ранжирование резюме

· Распространение информации о компании среди соискателей

· Прогнозирование успеха кандидата на заданных ролях

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

1.3 Существующие системы прогнозирования заработной платы

Стоит отметить присутствие WEB-приложений на зарубежном рынке, таких как [7, 8], которые позволяют рассчитать уровень заработной платы по указываемым соискателем или работодателем данным. К сожалению, данные ресурсы хоть и доступны для пользователей интернета вне зависимости от места расположения пользователя, но рассчитаны на граждан США и Европы, т.к. информация для анализа и обучения моделей берётся со специализированных сайтов данных стран. При проведении исследования была заполнена анкета на должность BI Analyst. Результаты работы [4] представлены на рисунке 1.

Рис. 1. Результаты работы системы Payscale

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

Также существуют русскоязычные тесты по определению заработной платы. Однако в них есть ряд недостатков:

1. Нет понимания работы теста. Вся внутренняя логика недоступна для пользователя.

2. Вопросы, задаваемые в тестах, вызывают сомнения.

3. Результаты прохождения тестов достаточно далеки от реальности.

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

1.4 Алгоритмы анализа данных

В данном разделе рассмотрены алгоритмы анализа данных, которые будут применены в данной работе.

Two-step алгоритм

Данный алгоритм используется для кластеризации данных и модифицирует иерархический алгоритм.

Алгоритм, как следует из названия делится на два шага: предварительное разбиение на кластеры и построение иерархического алгоритма.

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

На втором шаге исполняется иерархический алгоритм с предварительными кластерами в качестве входной информации. Далее количество кластеров оценивается исходя из функции логарифма правдоподобия [9].

Метод опорных векторов

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

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

На рисунке 2 отображена работа метода на задаче бинарной классификации. Выделенные точки - опорные вектора. Чёрные линии - возможные гиперплоскости, а красная линия - гиперплоскость метода опорных векторов.

Рис. 2. Пример работы метода опорных векторов. [10]

Пусть имеется обучающая выборка: (x1, y1), (x2, y2), … , (xn, yn), где xi Rn, yi (-1,1).

Метод опорных векторов строит классифицирующую функцию F в виде

,

где -- скалярное произведение, w -- нормальный вектор к разделяющей гиперплоскости, b -- вспомогательный параметр. Те объекты, для которых F(x) = 1 попадают в один класс, а объекты с F(x) = -1 -- в другой. Выбор именно такой функции неслучаен: любая гиперплоскость может быть задана в виде для некоторых w и b. Далее необходимо получить такие параметры w, b, которые максимизируют расстояние гиперплоскости до класса.

Часто классы линейно неразделимы. В таких случаях всю обучающую выборку помещают в пространство более высокой размерности, где классы будут линейно разделимы. Функция в таком случае принимает вид

,

а выражение является ядром классификатора [10].

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

· Полиномиальное:

· Радиальная базисная функция:

· Гауссова радиальная базисная функция:

· Сигмоид: , k>0, c<0

Алгоритм решающего дерева.

Решающее дерево представляет собой ациклический граф, обладающий двумя типами вершин - внутренними и листовыми (терминальными). Внутренние вершины имеют дальнейшие ответвления, а листовые - нет. Кроме того, существует корневая вершина - вершина задающая первое условие.

Определение решающего дерева:

Рассмотрим бинарное дерево, в котором:

* каждой внутренней вершине приписана функция (или предикат)
: X > {0,1};

* каждой листовой вершине приписан прогноз ? Y (в случае с классификацией листу также может быть приписан вектор вероятностей).

Инициация алгоритма a(x) происходит из корневой вершины и вычисляет значение функции . Если оно равно единице, то алгоритм переходит в правую вершину и вычисляет значение предиката, если оно равно нулю, то алгоритм переходит в левую вершину и вычисляет значение предиката. Процесс прерывается при достижении листовой вершины. Алгоритм возвращает значение или класс приписанный достигнутой листовой вершине.

Каждая внутренняя вершина представляет собой некоторое условие, при выполнении которого происходит переход к одной вершине, а при невыполнении к другой [11, 12].

На рисунке 3 показан пример решающего дерева, отражающий его структуру.

Рисунок 3. Пример решающего дерева

Применительно к данной работе в листовых вершинах находятся значения заработной платы (зависимой переменной), а во внутренних вершинах находятся условия, которые определяют к какому значению зависимой переменной относится набор входных данных.

Одним из самых важных преимуществ деревьев является отсутствие жёстких требований к входным параметрам. Алгоритм может работать как с категориальными данными, так и с количественными, однако при повышении количества уровней у категориальной переменной будет ухудшаться качество модели. Также алгоритм может работать с пропусками в данных.

Однако данный алгоритм склонен к переобучению.

Алгоритм случайного леса

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

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

Бутстрэп:

Пусть имеется выборка X размера N. Из неё делается равномерный выбор элементов с возвратом. Это значит, что происходит N раз произвольное разбиение выборки, при чём каждый раз выбор происходит из всех элементов выборки X. Таким образом, получается N выборок Xn.

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

Для каждого n=1…N:

Сгенерировать выборку Xn с помощью бутстрэпа;

Построить решающее дерево bn по выборке Xn:

По заданному критерию выбирается лучший признак, делается разбиение в дереве по нему. Выполняется до окончания выборки.

Дерево строится, пока в каждом листе не более nmin объектов или пока не будет достигнута определённая высота дерева;

При каждом разбиении сначала выбирается m случайных признаков из n исходных, и оптимальное разделение выборки ищется только среди них [13].

Требования к данным соответствуют требованиям решающих деревьев.

Алгоритм градиентного бустинга

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

На вход в алгоритм подаются:

1. Входные данные X, Y;

2. Количество итераций t = 1...M;

3. Функция потерь L(y,f) с выписанным градиентом;

4. Выбор семейства функций базовых алгоритмов , с процедурой их обучения;

5. Начальное приближение;

6. Дополнительные параметры.

Алгоритм градиентного бустинга:

1. Инициализация бустинга константным приближением

;

2. Для каждой итерации t = 1...M:

1. Рассчитать псевдо-остатков ;

2. Построить новый базовый алгоритм , как регрессию на псевдо-остатках;

3. Найти оптимальный коэффициент при относительно исходной функции потерь

;

4. Сохранить

5. Обновить текущее приближение

6. Скомпоновать итоговую модель

Требования к данным соответствуют требованиям выбранных базовых алгоритмов [14].

1.5 Интеллектуальный анализ текста

Интеллектуальный анализ текста может выполняться для таких задача как:

· Классификация текстов;

· Текстовый поиск;

· Извлечение фактов;

· и т.д.

В данной работе будет использоваться извлечение фактов (Information Extraction) из текстового описания вакансий [15].

Обычно анализ текста состоит из нескольких шагов:

1. Разделение текста на абзацы, предложения, словосочетания и слова;

2. Нормализация слов (приведение слов в начальную форму);

3. Удаление стоп-слов (слова, не несущие семантической нагрузки);

4. Анализ связей и зависимостей между словами.

В зависимости от задачи могут добавляться другие этапы.

Представление данных:

Мешок слов (Bag of Words)

Это удобная форма представления, которая в силу своей простоты используется часто.

Метод работает в два этапа:

1. Составляется список уникальных слов во всех текстах, и каждому слову сопоставляется определенный индекс. Такая коллекция слов называется словарём.

2. Каждый текст представляется в виде вектора, длина которого равна количеству уникальных слов в словаре, а i-я компонента показывает, сколько раз данное слово встречается в данном тексте. В результате получится матрица «объекты -- признаки» с целочисленными данными. Такая матрица будет сильно разреженной, то есть в основном состоять из нулей. Модель называется мешком слов, поскольку она полностью игнорирует порядок слов в предложении.

TF-IDF (Term Frequency, Inverse DocumentFrequency)

Во время очистки данных из текста удаляются стоп-слова, которые не несут никакой смысловой нагрузки. Примеры таких слов: «и», «в», «на», «мне» и так далее. При этом для каждой темы есть слова, которые часто встречаются во всех типах текста и тоже не несут смысловой нагрузки. При анализе отзывов о банке таким словом может быть «банк».

Чтобы помочь модели сфокусироваться на значимых словах, используется подход TF-IDF вместе с мешком слов. Для каждого слова в отдельном документе рассчитывается параметр :

Где - число вхождений данного слова в конкретный документ, а
- общее количество слов в конкретном документе.

показывает, насколько конкретное слово важно в данном документе. Чем больше значение , тем важнее слово. Также для каждого слова t в словаре рассчитывается параметр :

Здесь - количество документов в коллекции , а
- количество документов из коллекции, в которых встречается слово t. показывает, как часто слово встречается в разных документах коллекции. Чем больше значение , тем в меньшее количество документов входит слово. Основание логарифма не имеет значения, поскольку оно определяет константу, на которую домножаются все значения в матрице «объекты - признаки».

Окончательно TF-IDF рассчитывается перемножением TF и IDF:

Чем больше значение TF-IDF, тем больше слово характеризует конкретный документ, а не всю коллекцию. Такая модель позволяет сфокусироваться на важных для классификации словах и отсеять фоновый шум.

После выполнения данных шагов начинается извлечение фактов. Существует три подхода для выполнения данной задачи [11]:

· По онтологиям

· Опираясь на машинное обучение

· Опираясь на правила.

Онтологии - некоторые модели, в которых описываются понятия/объекты и отношения между ними. Онтологии могут быть универсальными, отраслевыми и специализированными. Плюс данного подхода - высокая точность. Недостатком же является низкая полнота, потому что анализ проводится только на известных объектах.

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

Третий подход - составление правил вручную. Такой подход удобен для работы с такими объектами как даты, имена, наименования и т.д.

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

1.6 Метрики оценки результатов работы модели машинного обучения

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

Каждый вид задач машинного обучения требует разных методов оценки.

Основными типами задач машинного обучения являются [16]:

1. Обучение с учителем

2. Обучение без учителя

3. Обучение с подкреплением

4. Частичное обучение

В данной работе будут решается задача обучения с учителем. Далее представлены метрики для оценки модели машинного обучения решающей данный класс задач.

Обучение с учителем

Обучение с учителем разделяют на задачи регрессии и классификации. Соответственно, у данных задач разные метрики качества работы модели.

1. Метрики качества работы модели для задач регрессии [17].

1.1. Максимальная ошибка. Чем выше данная метрика, тем ниже качество модели. Данная метрика редко используется для оценки модели, т.к. не отражает полностью работу модели. Чем выше значение данной метрики, тем ниже качество работы модели.

1.2. Средняя абсолютная ошибка. Вычисляется абсолютное значение ошибки каждого предсказания, после чего вычисляется среднее арифметическое. Чем выше значение данной метрики, тем ниже качество работы модели.

1.3. Средний квадрат ошибки. Вычисляется квадрат ошибки каждого предсказания, после чего вычисляется среднее арифметическое. Чем выше значение данной метрики, тем ниже качество работы модели.

1.4. Медианная абсолютная ошибка. Вычисляется абсолютное значение ошибки каждого предсказания, после чего вычисляется среднее арифметическое. Чем выше значение данной метрики, тем ниже качество работы модели.

1.5. Коэффициент детерминации . Определяет насколько изменение признаков объясняет изменение целевой переменной. Чем выше значение данной метрики, тем выше качество работы модели. Максимальное значение - 1.

2. Метрики качества работы модели для задач классификации.
Для некоторых метрик, необходимо ввести понятия ошибок первого и второго рода. Ошибка первого рода - ситуация, в которой модель ошибочно присваивает предсказанию принадлежность к классу (false-positive). Ошибка второго рода - ситуация, в которой модель ошибочно не присваивает предсказанию принадлежность к классу (false-negative). Также существуют понятия правильно предсказанной принадлежности к классу (true-positive) и правильно предсказанному отсутствию принадлежности к классу (true-negative) [18].

2.1. Accuracy. Отношение правильных предсказаний модели к числу объектов. Чем выше значение метрики, тем выше качество модели. Диапазон значений метрики [0, 1].

2.2. Precision. Отношение true-positive к сумме true-positive и false-positive. Чем выше значение метрики, тем выше качество модели. Диапазон значений метрики [0, 1].

2.3. Recall. Отношение true-positive к сумме true-positive и false-negative. Чем выше значение метрики, тем выше качество модели. Диапазон значений метрики [0, 1].

2.4. F1-score. Гармоническое среднее precision и recall. Чем выше значение метрики, тем выше качество модели. Диапазон значений метрики [0, 1] [19].

В данной главе были разобраны теоретические предпосылки прогнозирования заработной платы.

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

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

Далее были разобраны алгоритмы анализа данных используемые в данной работе и метрики оценки результатов их применения.

В следующей главе будут разобраны технические вопросы разработки подхода к прогнозированию заработной платы.

2. Выбор инструментов разработки подхода к прогнозированию заработной платы

2.1 Постановка задачи для разработки подхода к прогнозированию уровня заработной платы на основе вакансий hh.ru

Работа разбита на следующие этапы:

· Выбор инструментов разработки

· Выгрузка данных о вакансиях с сайта hh.ru

· Предобработка данных

· Предварительный анализ данных

· Извлечение фактов из текстового описания вакансии

· Обучение прогностической модели

· Оценка качества модели

Пусть имеются входной вектора объясняющих переменных X и выходной вектор зависимой переменной - Y.

В данной работе объясняющие переменные:

· Название компании-работодателя;

· Город, в котором расположена компания-работодатель;

· График работы;

· Опыт работы;

· Текстовое описание вакансии.

Вектор зависимой переменной описывает уровень заработной платы:

· 1 - уровень заработной платы начинающего специалиста;

· 2 - уровень заработной платы среднего специалиста;

· 3 - уровень заработной платы специалиста высокого уровня.

2.2 Выбор инструментов разработки подхода к прогнозированию уровня заработной платы на основе вакансий hh.ru

Выбор языка программирования.

Для анализа данных традиционно используются Python и R. Ключевое различие данных языков программирования - область их применения. В то время как Python полноценный язык программирования, а значит может использоваться для решения практически любой прикладной задачи, R - язык программирования, применяемый в основном для анализа данных [20]. Данный факт отражён на рисунке 4.

Рис. 4. Частота упоминания языков программирования в вакансиях hh.ru

Так как для выполнения работы требовалось не только провести анализ данных, было принято решение о применении Python версии 3.6.

Далее было необходимо выбрать BI-систему для предварительного анализа данных.

Для сравнения были выбраны наиболее популярные на данный момент системы:

· Tableau

· QlickView

· Power BI

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

BI-система Tableau.

Для интеллектуального анализа текста можно использовать следующие системы [22]:

· IBM SPSS Modeler

· GATE

· KNIME

Несмотря на то, что данные системы схожи в базовом функционале по работе с текстом, IBM SPSS Modeler имеет ряд преимуществ:

1. Наличие встроенных словарей со специализацией по отраслям;

2. Удобный интерфейс;

3. Скорость работы;

4. Возможность работы с разными форматами данных;

5. Широкий функционал помимо модуля анализа текста.

Таким образом для работы были выбраны следующие инструменты:

· Python - для доступа к данным в интернете и построения предиктивных моделей

· Tableau - для предварительного анализа и визуализации данных

· IBM SPSS Modeler - для интеллектуального анализа данных

2.3 Python

Высокоуровневый язык программирования с высоким уровнем интерпретируемости кода. Чаще всего используется с целью анализа данных, хотя, как язык программирования подходит для решения широкого спектра задач. Большое количество разработанных библиотек сильно упрощает работу программиста. Язык поддерживает структурную, объектно-ориентированную, функциональную, императивную и аспектно-ориентированную парадигмы программирования [23].

В данной работе была использована версия Python 3.7.

Программирование осуществлялось в интегрированной среде программирования Python - Anaconda и в среде программирования PyCharm.

Библиотека pandas

Данная библиотека необходима для оформления данных в табличную форму [24].

В работе использовались следующие методы данной библиотеки:

read_csv - осуществляет чтение файла и преобразование его в таблицу;

value_counts - возвращает количество записей по каждой категории;

rename - используется, для изменения названия столбца;

replace - возвращает таблицу с изменёнными значениями;

values - возвращает значения в указанном диапазоне;

get_dummies - возвращает таблицу образованную из столбца путём создания дамми-переменных из каждой категории столбца;

concat - используется, для объединения таблиц;

std - возвращает стандартное отклонение значений столбца;

mean - возвращает среднее значение столбца;

max - возвращает максимальное значение столбца;

min - возвращает минимальное значение столбца.

Библиотека sklearn

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

Пакет sklearn.tree.DecisionTreeClassifier

Данный пакет использовался для построения модели решающего дерева.

В работе использовались следующие методы данного пакета:

fit - выполняет обучение модели. В качестве аргументов принимает обучающую выборку, разбитую на предикторы и значения целевой переменной.

predict - выполняет прогнозирование целевой переменной обученной моделью. В качестве аргументов принимает тестовые значения предикторов [26].

Пакет sklearn.ensemble.RandomForestClassifier

Данный пакет использовался для построения модели случайного леса.

В работе использовались следующие методы данного пакета:

fit - выполняет обучение модели. В качестве аргументов принимает обучающую выборку, разбитую на предикторы и значения целевой переменной.

predict - выполняет прогнозирование целевой переменной обученной моделью. В качестве аргументов принимает тестовые значения предикторов [27].

Пакет sklearn.SVM

Данный пакет использовался для построения модели метода опорных векторов.

В работе использовались следующие методы данного пакета:

fit - выполняет обучение модели. В качестве аргументов принимает обучающую выборку, разбитую на предикторы и значения целевой переменной.

predict - выполняет прогнозирование целевой переменной обученной моделью. В качестве аргументов принимает тестовые значения предикторов [28].

Пакет sklearn.metrics

Данный пакет использовался для оценки качества моделей.

В работе использовались следующие методы данного пакета:

accuracy_score - возвращает значение точности классификации [17].

Пакет sklearn.model_selection

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

В работе использовались следующие методы данного пакета:

KFold - используется для создания генератора разбиения выборки.

GridSearchCV - используется для подбора параметров модели и проверки модели на кросс-валидации [29].

Библиотека numpy

Данная библиотека добавляет поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых (и очень быстрых) математических функций для операций с этими массивами [30].

Библиотека xgboost

Данная библиотека использовалась для построения модели градиентного бустинга.

Пакет xgboost.XGBClassifier

Данный пакет использовался для построения модели градиентного бустинга для задачи классификации.

В работе использовались следующие методы данного пакета:

fit - выполняет обучение модели. В качестве аргументов принимает обучающую выборку, разбитую на предикторы и значения целевой переменной.

predict - выполняет прогнозирование целевой переменной обученной моделью. В качестве аргументов принимает тестовые значения предикторов [14].

2.4 Tableau

Tableau - система класса Business Intelligence, используемая для визуализации данных, построения корпоративных отчётов, анализа данных [21].

Данная система поддерживает использование большого числа разных форматов данных:

· Текстовые данные (csv, txt, tab)

· Excel таблицы

· Microsoft Access

· JSON файлы

· PDF файлы

Кроме того, данная система может подключаться к хранилищу данных или базам данных (реляционным и не реляционным) для доступа к данным.

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

Данная система представляет широчайшие возможности по визуализации данных:

· Таблицы

· Горизонтальные столбчатые диаграммы

· Вертикальные столбчатые диаграммы

· Линейные диаграммы

· Гистограммы

· Гистограммы с несколькими осями

· Круговые диаграммы

· Графики потока

· Пузырьковые диаграммы

· И т.д.

Данная система также выделяется среди аналогов простотой и удобством использования.

В данной работе Tableau использовалось для предварительного анализа данных.

2.5 IBM SPSS Modeler 18.2

IBM SPSS Modeler - это набор инструментов интеллектуального анализа данных, позволяющих быстро разрабатывать прогностические модели, использовать бизнес-опыт и внедрять его в бизнес-операции для улучшения принятия решений. Разработанный в рамках стандартной отраслевой модели CRISP-DM IBM SPSS Modeler поддерживает весь процесс интеллектуального анализа данных, от данных к лучшим бизнес-результатам. IBM SPSS Modeler предлагает различные методы моделирования, взятые из машинного обучения и статистики [31].

Для работы использовались следующие элементы системы:

Работа с данными

Источник данных - используется для импорта данных в систему.

Проверка данных - используется для визуализации данных.

Выбор данных - используется для исключения аномальных значений и для разбиения всей выборки на группы по специализациям.

Кластеризация

Two-step алгоритм - используется для кластеризации данных.

Анализ текста

Анализ текста - используется для извлечения ключевых концептов из текстового описания вакансий.

Алгоритм анализа текста работает следующим образом:

1. Текст переводится на английский язык;

2. Слова приводятся в начальную форму;

3. Удаляются все слова, встречающиеся слишком часто (более чем в 95% текстов);

4. Производится извлечение концептов на основании частотных и лингвистических методов;

5. Опционально вручную можно указать синонимы для концептов;

6. Опционально можно объединить концепты в категории вручную или с помощью шаблонов системы.

главе была произведена постановка задачи для разработки подхода к прогнозированию заработной платы.

Для этого задача была разбита на следующие этапы:

· Выбор инструментов разработки

· Выгрузка данных о вакансиях с сайта hh.ru

· Предобработка данных

· Предварительный анализ данных

· Извлечение фактов из текстового описания вакансии

· Обучение прогностической модели

· Оценка качества модели

Далее был произведён выбор инструментов разработки подхода к прогнозированию заработной платы. По совокупности разных критериев были выбраны следующие инструменты:

1. Python 3.6 используется для парсинга данных, построения предиктивных моделей и анализа качества моделей.

2. Tableau используется для предварительного анализа данных.

3. IBM SPSS Modeler используется для интеллектуального анализа текста.

3. Разработка подхода к прогнозированию заработной платы

3.1 Этапы разработки подхода

Разработка подхода к прогнозированию заработной платы по ключевым навыкам на основе объявлений hh.ru была поделена на следующие этапы:

1. Парсинг данных о вакансиях с сайта hh.ru;

2. Предварительный анализ данных;

3. Работа в IBM SPSS Modeler (кластеризация и анализ текста);

4. Построение предиктивных моделей и оценка качества.

3.2 Парсинг вакансий с сайта hh.ru

Для выгрузки данных с сайта использовалось API и стандартная библиотека requests.

Парсинг осуществлялся в пять этапов:

1. Извлечение списка специализаций;

2. Извлечение списка идентификаторов вакансий;

3. Извлечение заданных полей вакансий из списка, полученного на втором этапе.

4. Запись результатов третьего этапа в файл формата csv.

Извлечение списка специализаций

В соответствии с официальной документацией API сайта, максимальное число вакансий на запрос не может быть больше 2000. Они отранжированы по дате обновления вакансий. Для максимального охвата вакансий запросы для получения идентификаторов будут итерироваться по списку специализаций. Для этого была разработана функция, получающая в качестве ответа от сайта количество специализаций. Знать названия специализаций нет необходимости потому что для запроса к сайту на получение вакансий идёт итерирование от 1 до количества специализаций [32].

Функция загружающая список специализаций представлена на рисунке 5.

Рис. 5. Функция загрузки списка специализаций

Извлечение списка идентификаторов вакансий

Для получения списка идентификаторов вакансий используется число специализаций из предыдущего шага.

В запросе для получения списка вакансий используются следующие параметры:

· only_with_salary - если значение параметра - True (как в данной работе), то выдаётся список вакансий только с указанными зарплатами;

· per_page - значение параметра отвечает за количество вакансий на странице ответа. В работе используется значение 100;

· page - значение параметра отвечает за номер страницы ответа. В работе итерируется от 0 до 19 включительно;

· specialization - номер специализации. В работе итерируется от 1 до 588 включительно;

Таким образом осуществляется запрос к для вывода списка вакансий с указанными зарплатами, относящимися к определённой специализации. Ответ состоит из 20 страниц по 100 вакансий - итого 2000 вакансий максимум на каждую специализацию.

После этого из полученного ответа забираются идентификаторы вакансий. Они проверяются на присутствие в списке идентификаторов. Если данный идентификатор ещё не был получен, то он записывается в список.

Далее список идентификаторов записывается в текстовый файл для удобства работы.

Функция загрузки списка идентификаторов вакансий отображена на рисунке 6.

Рис. 6. Функция загрузки списка идентификаторов вакансий

Извлечение данных по вакансиям

Для каждого идентификатора вакансии, полученного на предыдущем этапе, отправляется запрос с помощью библиотеки requests (метод GET). В качестве ответа приходит json файл. Из него по ключам изымаются нужные позиции:

· Идентификатор вакансии

· Название вакансии

· Отрасль вакансии

· График работы

· Требуемый опыт работы

· Заработная плата

· Город, в котором располагается работодатель

· Название компании-работодателя

· Текстовое описание вакансии

Если указан диапазон возможной заработной платы, то значение yi определялось как среднее арифметическое между минимальным значением и максимальным.

Если указана минимальная возможная заработная плата, но не указана максимальная, то значение yi определялось как минимальная возможная заработная плата.

Если указана максимальная возможная заработная плата, но не указана максимальная, то значение yi определялось как минимальная возможная заработная плата.

Запись в файл

Каждая вакансия записывается в файл для дальнейшего анализа.

На рисунке 7 представлен код для записи в файл вакансий.

Рис. 7. Код для записи вакансий в файл

3.3 Предварительный анализ данных

В выборке присутствует 42156 вакансий.

Распределение вакансий по наиболее популярным отраслям приведено на рисунке 8.

Рис. 8. Распределение вакансий по отраслям

Как видно из рисунка доминирующей отраслью являются продажи. Остальные отрасли представлены в примерно равном соотношении.

Распределение вакансий по наиболее популярным городам приведено на рисунке 9.

Рис. 9. Топ-10 городов по числу вакансий

Как видно из рисунка 9 все города находятся примерно на одном уровне по числу вакансий. На данном графике не приведены Москва и
Санкт-Петербург. Данные города занимают доминирующее положение на рынке труда. Москва - около 11 тысяч вакансий. Санкт-Петербург - около 5 тысяч вакансий.

На рисунке 10 отображено распределение компаний-работодателей.

Рис. 10. Топ-10 компаний работодателей по числу вакансий

Как видно из рисунка 10 распределение компаний-работодателей более равномерно, чем распределение городов. Самый распространённый работодатель занимает около 2% от выборки.

На рисунке 11 отображено распределение графиков работы.

Рис. 11. Распределение вакансий по графикам работы

Как видно из рисунка, большая часть вакансий с полным рабочим днём. Вакансий с удалённой работой около 3 процентов от общей выборки.

На рисунке 12 указано распределение требуемого опыта работы. 0 - нет опыта, 1 - от 1 до 3 лет, 2 - от 3 до 6 лет, 3 - от 6 лет.

Рис. 12. Распределение требуемого опыта

Как видно из рисунка 12, большая часть вакансий относятся к начинающим специалистам (нет опыта или от 1 до 3 лет). Спрос на специалистов среднего и высокого уровня значительно ниже.

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

Рис. 13. Распределение заработной платы по отраслям

Как видно из рисунка 13 самые высокие средние заработные платы платят высшему менеджменту (90000 рублей), добыча сырья (около 70000 рублей), строительство (60000 рублей), информационные технологии (55000 рублей).

На рисунке 14 отражена зависимость заработной платы в Москве и
Санкт-Петербурге от опыта работы и отрасли.

Рис. 14. Зависимость заработной платы от города, отрасли и опыта работы

По оси y отложена медианная заработная плата. По оси x - опыт работы по отраслям в Москве и Санкт-Петербурге. Опыт работы 0 - означает отсутствие опыта работы, 1 - опыт работы от 1 до 3 лет. Как видно из графика наибольшая разница в зарплатах наблюдается в Москве в отраслях «Банки», «Информационные технологии» и «Продажи». В Санкт-Петербурге эта разница не столь заметна. Наибольшая разница видна в отраслях «Информационные технологии» и «Продажи».

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

Стандартное отклонение = 36629.91158328972

Среднее значение = 54743.780754815445

Максимальное значение = 300000.0

Минимальное значение = 15000.0

Далее данные были разбиты на подвыборки по отраслям с помощью ноды “Select” в системе IBM SPSS Modeler 18.2.

3.4 Кластерный анализ и интеллектуальный анализ текста

В IBM SPSS Modeler работа строится на составлении потоков данных, состоящих из связей, нод и моделей.

Поток для отрасли представлен на рисунке 15.

Рис. 15. Поток IBM SPSS Modeler

Из рисунка видна последовательность работы в системе. Сначала была произведена фильтрация данных - все данные с зарплатами выше 300000 рублей были удалены (т.к. являются выбросами), далее было произведено определение типов данных (категорные, порядковые, непрерывные, идентификаторы). После чего производился кластерный анализ и анализ текста. В завершении работы в системе производился экспорт данных в файл формата csv.

Кластерный анализ текста

Для сведения задачи регрессии к классификации было решено провести разбиение зарплаты на кластеры. Для этого использовалась нода “Two-step cluster”.

Для большинства подвыборок было произведено разбиение на 3 кластера. На некоторых подвыборках было произведено разбиение на 2 кластера.

На рисунке 16 представлены параметры модели на примере отрасли IT.

Рис. 16. Параметры модели

На рисунке 17 показан результат работы модели на примере отрасли IT.

Рис. 17. Результаты кластеризации

Кластер 1 представляет собой вакансии с зарплатами от 15000 рублей до 65000, кластер 2 - от 65000 рублей до 120000 рублей, кластер 3 - от 120000 рублей до 300000 рублей.

Как видно из рисунка 17 вакансии с зарплатами от 15000 до 65000 занимают больше 50% от общего числа выборки.

Анализ текста

Для анализа текста использовалась нода “Text analysis” в системе IBM SPSS Modeler 18.2. В качестве входных данных использовался идентификатор вакансии и её текстовое описание.

Анализ текста разобран на примере IT отрасли, однако алгоритм работы одинаковый для каждой отрасли. Отличаются лишь извлекаемые концепты.

Вначале из текста автоматически извлекались ключевые концепты (рисунок 18).

Рис. 18. Извлечение ключевых концептов

Далее анализировались первые 100 концептов. Было произведено добавление необходимых синонимов (чаще всего синонимы MS Office). Далее были удалены концепты относящиеся к типам «Проценты», «Время» или «Дата». IBM SPSS Modeler хорошо выделяет данные концепты, однако в данной работе они не значимы. После чего концепты объединялись в категории. Данное объединение отражено на рисунке 19.

Рис. 19. Объединение концептов в категории

Результатом анализа текста является разряженная матрица категорий. Каждая строка принимает значение 0 или 1 в зависимости от того упомянута ли данная категория в документе (рисунок 20).

Рис. 20. Результат анализа текста

Далее данные экспортируются в csv файл, для построения предиктивных моделей в Python.

3.5 Построение предиктивных моделей

Для дальнейшего анализа данные были преобразованы категориальные переменные employer, location, schedule были преобразованы в dummy-переменные.

Моделирование проводилось с помощью четырёх моделей, которые будут рассмотрены в данном пункте.

IT отрасль

SVM

На рисунке 21 отражён код исполняющий моделирование методом опорных векторов.

Рисунок 21. Модель - метод опорных векторов

Полученная с помощью данного метода точность = 0.673.

Дерево решений

На рисунке 22 отражён код исполняющий моделирование дерева решений.

Рисунок 22. Модель - дерево решений

Параметр max_depth отвечает за максимальную глубину дерева. Данный параметр подобран с помощью метода GridSearchCV.

Полученная с помощью данного метода точность = 0.673.

Случайный лес

На рисунке 23 отражён код исполняющий моделирование случайного леса.

Рисунок 23. Модель - случайный лес

Параметр max_depth отвечает за максимальную глубину дерева. Параметр n_estimators отвечает за число деревьев решений в составе модели. Данные параметры подобраны с помощью метода GridSearchCV.

Полученная с помощью данного метода точность = 0.697.

XGBoost

На рисунке 24 отражён код исполняющий моделирование XGBoost.

Рисунок 24. Модель - XGBoost

Параметр max_depth отвечает за максимальную глубину дерева. Параметр n_estimators отвечает за число деревьев решений в составе модели. Параметр learning_rate отвечает за длину шага корректировки весов предикторов. Данные параметры подобраны с помощью метода GridSearchCV.

Полученная с помощью данного метода точность = 0.72.

Сравнение результатов моделирования

В таблице 1 отражено сравнение качества моделей.

Таблица 1. Сравнение качества моделей

Модель

Accuracy

SVM

0.673

Решающее дерево

0.698

Случайный лес

0.701

XGBoost

0.72

Из данной таблицы видно, что самое высокое качество даёт модель градиентного бустинга.

Значимость предикторов лучшей модели

10 наиболее значимых предикторов модели отражены на рисунке 25.

Рис. 25. Топ-10 предикторов

Отрасль «Продажи»

Сравнение результатов моделирования

В таблице 2 отражено сравнение качества моделей.

Таблица 2. Сравнение качества моделей

Модель

Accuracy

SVM

0.58

Решающее дерево

0.614

Случайный лес

0.626

XGBoost

0.63

Из данной таблицы видно, что самое высокое качество даёт модель градиентного бустинга. Также видно, что точность в данной подвыборке значительно ниже чем в подвыборке IT. Это может быть связано со слабой зависимостью зарплаты в данной отрасли от текстового описания вакансии.

Значимость предикторов лучшей модели

10 наиболее значимых предикторов модели отражены на рисунке 26.

Рис. 26. Топ-10 предикторов

Отрасль «Банки»

Сравнение результатов моделирования

В таблице 3 отражено сравнение качества моделей.

Таблица 3. Сравнение качества моделей

Модель

Accuracy

SVM

0.689

Решающее дерево

0.698

Случайный лес

0.691

XGBoost

0.71

Из данной таблицы видно, что самое высокое качество даёт модель градиентного бустинга.

Значимость предикторов лучшей модели

10 наиболее значимых предикторов модели отражены на рисунке 27.

Рис. 27. Топ-10 предикторов

Отрасль «Бизнес»

Сравнение результатов моделирования

В таблице 4 отражено сравнение качества моделей.

Таблица 4. Сравнение качества моделей

Модель

Accuracy

SVM

0.557

Решающее дерево

0.563

Случайный лес

0.561

XGBoost

0.575

Из данной таблицы видно, что самое высокое качество даёт модель градиентного бустинга. Однако качество около 0.5 говорит он низкой предсказательной способности модели на данной выборке.

Значимость предикторов лучшей модели

10 наиболее значимых предикторов модели отражены на рисунке 28.

Рис. 28. Топ-10 предикторов

Отрасль «Дизайн»

Сравнение результатов моделирования

В таблице 5 отражено сравнение качества моделей.

Таблица 5. Сравнение качества моделей

Модель

Accuracy

SVM

0.85

Решающее дерево

0.843

Случайный лес

0.854

XGBoost

0.837

Из данной таблицы видно, что самое высокое качество даёт модель случайного леса. Качество заметно более высокое, чем в других подвыборках связано с разбиением на 2 кластера данной подвыборки.

Значимость предикторов лучшей модели

10 наиболее значимых предикторов модели отражены на рисунке 29.

Рис. 29. Топ-10 предикторов

Отрасль «Образование»

Сравнение результатов моделирования

В таблице 6 отражено сравнение качества моделей.

Таблица 6. Сравнение качества моделей

Модель

Accuracy

SVM

0.44

Решающее дерево

0.501

Случайный лес

0.522

XGBoost

0.499

Из данной таблицы видно, что самое высокое качество даёт модель случайного леса. Качество крайне низкое из чего можно сделать вывод, что зарплата на данной подвыборке слабо зависит от предикторов.

Значимость предикторов лучшей модели

10 наиболее значимых предикторов модели отражены на рисунке 30.

Рис. 30. Топ-10 предикторов

Отрасль «Фармакология»

Сравнение результатов моделирования

В таблице 7 отражено сравнение качества моделей.

Таблица 7. Сравнение качества моделей

Модель

Accuracy

SVM

0.649

Решающее дерево

0.65

Случайный лес

0.655

XGBoost

0.657

Из данной таблицы видно, что самое высокое качество даёт модель градиентного бустинга.

Значимость предикторов лучшей модели

10 наиболее значимых предикторов модели отражены на рисунке 31.

Рис. 31. Топ-10 предикторов

Отрасль «Госслужба»

Сравнение результатов моделирования

В таблице 8 отражено сравнение качества моделей.

Таблица 8. Сравнение качества моделей

Модель

Accuracy

SVM

0.628

Решающее дерево

0.656

Случайный лес

0.657

XGBoost

0.66

Из данной таблицы видно, что самое высокое качество даёт модель градиентного бустинга.

Значимость предикторов лучшей модели.

10 наиболее значимых предикторов модели отражены на рисунке 32.

Рис. 32. Топ-10 предикторов

Отрасль «Юриспруденция»

Сравнение результатов моделирования

В таблице 9 отражено сравнение качества моделей.

Таблица 9. Сравнение качества моделей

Модель

Accuracy

SVM

0.692

Решающее дерево

0.671

Случайный лес

0.68

XGBoost

0.689

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

Значимость предикторов лучшей модели

10 наиболее значимых предикторов модели отражены на рисунке 33.

Рис. 34. Топ-10 предикторов

...

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

  • Организационно-производственная структура университета. Обоснование проектных решений по созданию сайта. Проектирование сайта и базы данных "Центр содействия трудоустройству выпускников". Методика эксплуатации сайта, добавление и изменение вакансий.

    курсовая работа [1,9 M], добавлен 24.02.2013

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Понятие web-сайта и их типы. Программы для создания web-сайта. Описание структуры проекта. Алгоритм создания сайта. Описание конструктора Jimdo. Языки программирования серверного выполнения. Создание полнофункционального веб-сайта для ОАО "КУЛЗ".

    курсовая работа [3,5 M], добавлен 05.06.2015

  • Анализ процесса взаимодействия студентов и работодателей при поиске вакансий. Преимущества трудоустройства студентов во время учебы в ВУЗе, методы поиска работы. Проектирование базы данных и разработка веб-сайта для поиска предложений работы студентам.

    курсовая работа [3,3 M], добавлен 03.07.2017

  • Практическая значимость создания сайта. Язык программирования JavaScript. Основные области использования языка JavaScript при создании интерактивных HTML-страниц. Язык программирования PHP. Программная основа сайта. Создание оформления дизайна сайта.

    дипломная работа [1,1 M], добавлен 05.03.2013

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Разработка информативного, удобного и гибкого в управлении web-сайта, удовлетворяющего потребности посетителей и организации. Цепочка ценности индустрии компьютерных игр. Анализ и обоснование выбора среды проектирования и программирования сайта.

    дипломная работа [4,0 M], добавлен 20.05.2013

  • Основы моделирования и разработки Web-сайтов. Обзор и сравнительный анализ языков программирования. Фреймворки, используемые при создании сайта. Разработка графического дизайна, моделирование и создание Web-сайта, руководство по администрированию.

    курсовая работа [1,7 M], добавлен 07.11.2013

  • Характеристика отдела ЗАГСа Еловского района, его деятельности и структуры. Разработка сайта управления записью актов гражданского состояния. Обоснование выбора языков программирования и средств разработки сайта. Затраты на разработку и внедрение сайта.

    дипломная работа [4,7 M], добавлен 30.05.2014

  • Компоненты приложения Vue.js, использование шаблона MVVM. Характеристика Webpack и фреймворка NuxtJs. Python как язык программирования, модель MVC, компоненты и инструментарий фреймворка Django. Технология программирования Object Relational Mapping.

    контрольная работа [296,4 K], добавлен 22.03.2017

  • Анализ сетевых технологий в гостиничном деле. Официальные сайты компаний. Технологии при создании и поддержке сайтов. Разработка модели web-ресурса, шаблона, тестового примера. Основные этапы создания веб-сайта и презентации. Цены на разработку сайта.

    курсовая работа [3,6 M], добавлен 30.03.2014

  • Значение и обзор современных средств веб-программирования на основе языков четвертого поколения. Технологические особенности разработки структуры сайта Интернет-магазина средств связи. Способы форматирования контента, систем навигации и дизайна сайта.

    контрольная работа [3,2 M], добавлен 15.02.2011

  • Разработка сайта "Платные курсы", приложения базы данных которого исполняют функции управления данными заработной платы преподавателей, регистрации и хранения информации о студентах, курсах, дисциплинах, количестве проведенных занятий, их оплате.

    курсовая работа [45,4 K], добавлен 14.06.2010

  • Выбор сред разработки для реализации сайта. Основная концепция и содержание веб-сайта. Роль дизайна сайта в его создании и определение основных требований к его содержанию и внешнему виду. Особенности разработки удобного и красивого интерфейса сайта.

    курсовая работа [686,4 K], добавлен 13.06.2022

  • Проектирование сайта: сбор и компоновка информации, разработка технического задания; дизайн интерфейса, создание шаблонов и программных компонентов, интеграция сайта с системой управления, тестирование и отладка; сдача. Описание среды программирования.

    курсовая работа [60,2 K], добавлен 30.06.2014

  • Функциональные возможности веб-сайтов и их применение. Сравнительный анализ языков программирования для веб-разработки. Методические аспекты разработки образовательного веб-сайта. Определение трудозатрат на разработку и отладку программного продукта.

    дипломная работа [2,8 M], добавлен 03.09.2021

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

    курсовая работа [43,0 K], добавлен 08.06.2014

  • Анализ методов разработки сайта с помощью веб-инструментов, конструктора, системы управления сайтом. Выбор языка веб-программирования, графического редактора. Разработка корпоративного сайта, его внедрение в интернет и тестирование на различных браузерах.

    курсовая работа [2,5 M], добавлен 22.03.2017

  • Формулировка требований к разработке и оформлению информационного сайта предприятия. Описание архитектуры сайта, меню навигации и алгоритма работы, листинг программного кода. Выбор серверной части и процесс отладки. Методы продвижения сайта в Интернете.

    курсовая работа [4,6 M], добавлен 18.01.2014

  • История развития информационных технологий. Появление Интернета, браузеры. Основы web-программирования: классификация сайтов, языки программирования. Создание сайта для кафедры высшего учебного заведения: технология создания и руководство пользователя.

    дипломная работа [471,5 K], добавлен 23.04.2015

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