Учитывая название должности, описание должности и сектор работы, алгоритм присваивает должности трехзначный код стандартной профессиональной классификации Великобритании (SOC). Алгоритм использует стандарт SOC 2010 , более подробную информацию о котором можно найти на сайте ONS.
Этот код первоначально был написан Жылдыз Джумалиевой, Артуром Терреллом, Дэвидом Копплом, Джеймсом Тергудом и Брэдли Спейгнером. Мартин Вуд предоставил последние обновления и улучшения кода.
Если вы используете этот код, укажите:
Таррелл А., Спейгнер Б., Джумалиева Дж., Коппл Д. и Тергуд Дж. (2019). Преобразование естественно встречающихся текстовых данных в экономическую статистику: пример онлайн-объявлений о вакансиях (№ w25837). Национальное бюро экономических исследований.
@techreport{turrell2019трансформация, title={Преобразование естественных текстовых данных в экономическую статистику: случай онлайн-объявлений о вакансиях}, автор={Таррел, Артур и Спейнер, Брэдли и Джумалиева, Жылдыз и Коппл, Дэвид и Тергуд, Джеймс}, год={2019}, учреждение={Национальное бюро экономических исследований} }
Полный список пакетов Python см. в файле setup.py.
Occupationcoder построен на базе NLTK и использует Wordnet (корпус, номер 82 в их списке) и модели Punkt Tokenizer (номер 106 в их списке). Когда кодер запускается, он ожидает найти их в своих обычных каталогах. Если у вас установлен nltk, вы можете получить их целиком с помощью nltk.download()
, который установит их в нужные каталоги, или вы можете перейти на http://www.nltk.org/nltk_data/, чтобы загрузить их вручную (и следовать инструкциям инструкцию по установке).
Несколько других пакетов, таких как RapidFuzz, не входят в состав дистрибутива Python Anaconda. Вы можете установить их через pip (если у вас есть доступ к Интернету) или загрузить соответствующие двоичные файлы и установить их вручную.
occupationcoder/coder.py
применяет коды SOC к описаниям должностейoccupationcoder/cleaner.py
содержит вспомогательную функцию, которая в основном манипулирует строками.occupationcoder/createdictionaries
превращает индекс кода SOC ONS в словари, используемые occupationcoder/coder.py
occupationcoder/dictionaries
содержит словари, используемые occupationcoder/coder.py
occupationcoder/outputs
— это каталог вывода по умолчанию.occupationcoder/tests/test_vacancies.csv
содержит «тестовые» вакансии для запуска кода, используемые юнит-тестами, доступные вам!Загрузите пакет и перейдите в каталог загрузки. Затем используйте
python setup.py sdist
cd dist
pip install occupationcoder- < version > .tar.gz
Первая строка создает файл .tar.gz, вторая переходит в каталог с упакованным кодом, а третья строка устанавливает пакет. Номер используемой версии будет очевиден из имени файла .tar.gz.
Импорт и создание экземпляра кодера
import pandas as pd
from occupationcoder . coder import SOCCoder
myCoder = SOCCoder ()
Чтобы запустить код с помощью одного запроса, используйте следующий синтаксис с методом code_record(job_title,job_description,job_sector)
:
if __name__ == '__main__' :
myCoder . code_record ( 'Physicist' , 'Calculations of the universe' , 'Professional scientific' )
Обратите внимание, что вы можете оставить некоторые поля пустыми, и алгоритм все равно вернет код SOC.
Чтобы запустить код в файле (например, имя CSV «job_file.csv») со структурой
должность | Описание работы | работа_сектор |
---|---|---|
Физик | Делайте расчеты о Вселенной, проводите исследования, проводите эксперименты и изучайте физическую среду. | Профессиональная, научная и техническая деятельность |
использовать
df = pd . read_csv ( 'path/to/foo.csv' )
df = myCoder . code_data_frame ( df , title_column = 'job_title' , sector_column = 'job_sector' , description_column = 'job_description' )
Аргументы имени столбца не являются обязательными. Показанные выше значения являются значениями по умолчанию. Это вернет новый кадр данных с записями кода SOC, добавленными в новый столбец:
должность | Описание работы | работа_сектор | SOC_код |
---|---|---|---|
Физик | Делайте расчеты о Вселенной, проводите исследования, проводите эксперименты и изучайте физическую среду. | Профессиональная, научная и техническая деятельность | 211 |
Если у вас есть все соответствующие пакеты в файле require.txt, загрузите код и перейдите в папку Occupationcoder (которая содержит README). Затем запустите
python -m occupationcoder.coder path/to/foo.csv
Это создаст файл «processed_jobs.csv» в папке выходы/, который будет содержать исходный текст и дополнительный столбец «SOC_code» с назначенными кодами SOC.
Чтобы запустить тесты в вашей виртуальной среде, используйте
python -m unittest
в каталоге оккупации верхнего уровня. Посмотрите test_occupationcoder.py
, что запускается, и примеры использования. Выходные данные отображаются в файле «processed_jobs.csv» в папке выходы/.
Мы очень благодарны Эммету Кэссиди за тестирование этого алгоритма.
Этот код предоставляется «как есть». Мы были бы рады, если бы вы улучшили его или расширили, чтобы оно работало в других странах. Все высказанные мнения являются нашими личными взглядами, а не мнениями какого-либо работодателя.
Разработку этого пакета поддержал Банк Англии.
Этот пакет был создан с помощью Cookiecutter и шаблона проекта audreyr/cookiecutter-pypackage.