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

поэтому мы создаем платформу, которая автоматически собирает полезную информацию из резюме и отправляет ее на панель управления персоналом…

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

Распознавание именованных объектов (NER) (также известное как идентификация объектов, разделение объектов и извлечение объектов). ) — это подзадача извлечения информации, которая направлена ​​на поиск и классификацию именованных объектов в тексте по заранее определенным категориям, таким как имена людей, организации, местоположения, выражения времени, количества, денежные значения, проценты, и Т. Д.

Сбор наборов данных и аннотации… самое большое дерьмо

во время работы над этим проектом в реальном времени сбор данных и их аннотирование заняло довольно много времени…

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

(0, 12, «Имя»)

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

образец данных содержит часть резюме и аннотации со словарем, содержит объекты и метку

Сначала мы загрузим черную английскую модель SpaCy. Затем мы напишем функцию, которая будет принимать обучающие данные в качестве входных данных. В функции сначала мы добавим ner, т. е. распознавание именованных объектов, в последнюю позицию в конвейере. Затем мы добавим наши пользовательские метки в конвейер.

Теперь мы собираемся подготовить наши данные для обучения. Мы отключаем все компоненты конвейера, кроме ner. Мы собираемся тренировать только ner. Мы собираемся тренироваться на 30 итераций.

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

Еще один способ улучшить результаты обучения — установить скорость dropout, скорость, с которой случайным образом «отбрасываются» отдельные функции и представления. Это затрудняет запоминание модели обучающих данных. Мы добавили отсев 0,2, что означает, что вероятность отбрасывания каждой функции или внутреннего представления составляет 1/5.

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

Теперь мы загрузим сохраненную модель в файл loading_nlp_model.

Теперь мы передадим это резюме нашей модели и посмотрим на результаты. Мы использовали некоторое форматирование при печати.

Результат:

Теперь мы проверим нашу модель на невидимом резюме. Поскольку резюме находится в формате PDF, мы извлечем текст из файла PDF, используя PyMuPDF. Затем мы передадим текст в нашу модель и посмотрим на результаты.

Результат:

Вы можете проверить репозиторий github для этого:



Автор блога:

Акшай Бхор: инженер по глубокому обучению

специалист по данным