Home
Алгоритм разбора резюме
Разбор резюме проводится в предположение, что оно составлено в соответствие с некоторым набором правил:
Разбор резюме состоит из выделения ключевых полей из текста резюме. Все поля выделяются независимо друг от друга. Такими полями являются:
Выделение ФИО ФИО претендента в резюме как правило удовлетворяет следующим критериям:
Соответственно в первых строчках резюме (до 10 строк) выбираются все последовательности слов, которые идут подряд и начинаются с "большой буквы" (или полностью состоят из заглавных букв). Далее каждую последовательность следует проверить на соответствие, чтобы с большей вероятностью утверждать, что найденное и есть ФИО. В русском языке возможно только пять варианта написания ФИО:
Последний вариант для проверки самый простой. Надо убелиться, что в конце второго слова стоит точка, и что само второе "слово" состоит из одной буквы (в случае написания транслитом возможно две буквы). Первый и второй вариант можно разделить по отчеству. Так в русском языке все отчества заканчиваются либо на "вич" (мужские имена), либо на "вна" (женские имена). Выделив отчество в полученной последовательности можно легко получить им и фамилию. Третий и четвертый вариант разделить несколько сложнее. Хотя в русском языке большинство фамилий и заканчивается на "ов", "ова", "вой", "вая", "ко". Но можно встретить и такие фамилии как "Вайсман" или "Фенстер", которые также надо уметь выделять. Здесь может помочь база данных имен. Т.е. разбор вести не от фамилии, а от имени. Однако проверка имени по базе данных может потребовать существенного времени, но за качество надо платить. Наличие базы данных имен может помочь для осуществления дополнительных проверок на остальные варианты представления ФИО и для определения пола кандидата.
Выделение даты рождения Дата рождения может быть указана в одном из следующих форматов: ("DD.MM.YYYY",
Выделение контактной информации Строка с телефоном должна содержать что-либо из перечисленного: "тел", "сот", "сотов", "моб.", "д.т.", "tel", "phone", "mobile", "cell" (Список может быть расширен). Если что-нибудь из этого списка встретилось, то в строке удаляются символы "-", "_", ")", "(", "#" и пробелы. В результате доджны получиться только последовательности цифр. Начинается проверка каждой такой последовательности: если длина не считая первой восьмерки равна от 5 до 9, то счиатем, что это домашний телефон, если длана равна 10 или 11, то это мобильный телефон.
Выделение e-mail из текста резюме пожалуй одна из самых простых операций. Из высказанного в начале текста предположения следует, что вся персональная информация находится или в начале резюме, или в его конце. Соответственно только там и стоит искать эту информацию. Однако при поиске e-mail в конце письма стоит быть осторожным, поскольку это может быть контакт рекомендателя. В попытках защититься от нежелаемого спама в написание одного и того же e-mail могут встречаться различные замены. Так e-mail может иметь следующее представление: i.ivanov@gmail.com i.ivaniv @ gmail.com (наличие пробелов) i.ivanov[at]gmail.com i[dot]ivanov[at]gmail[dot]com Чтобы не усложнять дальнейший разбор рекомендуется в первых строчка резюме выполнить замену:
Далее в этих строчках необходимо найти последовательность (последовательности), которая удовлетворяет следующему шаблону: ([a-z0-9][-a-z0-9_.]+)@([a-z0-9_][-a-z0-9_.]+[a-z0-9]) Иногда бывает, что сам e-mail сопровождается словами "еmail", "e-mail", по которым его местоположение в резюме можно определить.
Почтовый адрес Если строка содержит что-либо из следующего списка ("адрес проживания", "адрес", "место проживания", "место жительства", "address", "home address"), а далее продолжается символьная строка, то это продолжение с большой долей вероятности и будет являться адресом. Однако стоит учесть, что в некоторых случаях адрес может располагаться на нескольких строчках. В этом случае необходимо считать адресом все, что находится между найденым ключевым словом и концом абзаца. В качестве дополнительных проверок можно порекомендовать в выделенном блоке поискать ключевые слова такие как "ул.", "пр.", и пр. ICQ Если строка содержит слова "icq" или "аська" (встречалось и такое!), а также цифры от 0 до 9, возможно, разделенные знаками "-" или "_", или пробелами, причем количество символов должно быть не менее 5, то последовательность этих цифр расценивается как icq.
Выделение прочей информации Образование ищем по 4-ем группам. Каждая группа состоит из ключей. Вот эти группы:
Если ключ найден в строке, то вся строка относится к образованию. Блок - это 3(?) последовательно идущие строки. Если ключ из одной группы был найден в первой строке блока и ключ из другой группы найден в 3-ей строке блока, то считается, что весь блок относится к описанию образования. |