Введение 3
Постановка задачи 4
Обзор литературы 5
Глава 1. Социальные графы и их анализ 7
1.1. Обзор области 7
1.2. Определение социального графа 8
1.3. Характеристики социальных графов 8
1.4. Основные алгоритмы анализа графов 12
Глава 2. Граф соискатели — работодатели 14
2.1. Определение основных понятий 14
2.2. Разбор резюме и вакансий 17
2.3. Использование Word2Vec и Doc2Vec 18
Глава 3. Подготовка данных 23
3.1. Описание структуры данных 23
3.2. Работа с данными в Apache Spark 25
Глава 4. Реализация 26
4.1. Классификация документов и ключевых навыков 26
4.2. Анализ резюме 28
4.3. Анализ вакансии 30
4.4. Определение связей между соискателями и вакансиями 31
4.5. Построение графа 31
Выводы 34
Заключение 35
Дальнейшая работа 35
Список литературы
В связи с ростом популярности интернета, мобильных устройств, и т. д. наблюдается значительный рост объемов информация. Эта информация представлена в самом разном виде, как структурированная, так и без какой-либо определенной структуры. Хранение таких данных и последующий их анализ может привести к полезным, а иногда довольно неожиданным, результатам. Но для работы с таким количеством информации требуются новые технологии и методы, которые обозначаются термином Big Data.
В результате работы было разработано программное обеспечение для сбора данных о вакансиях и резюме. Полученные данные были обработаны, приведены к более удобной для дальнейшего анализа форме и сохранены в формате JSON. Затем были определены возможные подходы извлечения полезной информации из слабоструктурированных данных, проведено их сравнение и выбран наиболее подходящий для данной работы вариант. Был разработан алгоритм, основанный на векторном представлении слов, который позволяет анализировать обработанные данные и находить связи между сущностями. На основе найденных связей был построен граф, на котором был выполнен алгоритм по нахождению наиболее оптимального множества паросочетаний. Все эти алгоритмы рассматривались в контексте фреймворка для обработки Big Data — Apache Spark. Можно считать, что все поставленные задачи в результате работы выполнены.
1. Carsten Lygteskov Hansen, Melanie Tosik, Gerard Goossen, Chao Li, Lena Bayeva, Florence Berbain, Mihai Rotaru How to Get the Best Word Vectors for Resume Parsing // 2013.
2. Enda Liu, Tomoki Ito, Kiyoshi Izumi Comparison among multilingual financial words using the word2vec and clustering with news resources for automatic creation of financial dictionaries // 2016.
3. Manaal Faruqui, Chris Dyer Improving Vector Space Word Representations Using Multilingual Correlation // 2014.
4. Marc A. Smith NodeXL: Simple network analysis for social media // 2013.
5. Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing // 2012.
6. Michal Campr, Karel Jezek Comparing Semantic Models for Evaluating Automatic Document Summarization // 2015.
7. Quoc Le, Tomas Mikolov Distributed Representations of Sentences and Documents // 2014.
8. Reynold S. Xin, Joseph E. Gonzalez, Michael J. Franklin, Ion Stoica GraphX: A Resilient Distributed Graph System on Spark // 2013.
9. Sumit Maheshwari, Abhishek Sainani, P Krishna Reddy An Approach to Extract Special Skills to Improve the Performance of Resume Selection // 2010.
10. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean Distributed Representations of Words and Phrases and their Compositionality // 2013.
1 l.Yilong Geng, Mingyu Gao Distributed Stable Marriage with Incomplete List
and Ties using Spark // 2015.