役職、職務内容、および職種を指定すると、アルゴリズムによって英国の 3 桁の標準職業分類 (SOC) コードがその職務に割り当てられます。このアルゴリズムはSOC 2010標準を使用しており、詳細については ONS の Web サイトでご覧いただけます。
このコードは元々、Jyldyz Djumalieva、Arthur Turrell、David Copple、James Thurgood、Bradley Speigner によって書かれました。 Martin Wood は、より最近のコードの更新と改善を提供しました。
このコードを使用する場合は、以下を引用してください。
タレル、A.、スペグナー、B.、ジュマリエバ、J.、コップル、D.、サーグッド、J. (2019)。自然に発生するテキスト データの経済統計への変換: オンライン求人掲載の事例 (No. w25837)。国家経済調査局。
@techreport{turrell2019transforming、 title={自然に発生するテキストデータを経済統計に変換: オンライン求人掲載の事例}, author={タレル、アーサーとスパイナー、ブラッドリーとジュマリエヴァ、ジルディスとコップル、デイビッドとサーグッド、ジェームズ}、 年={2019}、 機関={国家経済調査局} }
Python パッケージの完全なリストについては、setup.py を参照してください。
jobcoder は 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
ONS の SOC コードのインデックスを、 occupationcoder/coder.py
で使用される辞書に変換します。occupationcoder/dictionaries
はoccupationcoder/coder.py
で使用される辞書が含まれています。occupationcoder/outputs
デフォルトの出力ディレクトリですoccupationcoder/tests/test_vacancies.csv
には、コードを実行するための「test」の空席が含まれており、単体テストで使用され、ユーザーがアクセスできます。パッケージをダウンロードし、ダウンロード ディレクトリに移動します。次に、使用します
python setup.py sdist
cd dist
pip install occupationcoder- < version > .tar.gz
最初の行は .tar.gz ファイルを作成し、2 行目はパッケージ化されたコードが含まれるディレクトリに移動し、3 行目はパッケージをインストールします。使用するバージョン番号は、.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 |
関連するパッケージがすべてrequirements.txtにある場合は、コードをダウンロードし、occupycoderフォルダー(READMEが含まれています)に移動します。それから実行します
python -m occupationcoder.coder path/to/foo.csv
これにより、outputs/ フォルダーに「processed_jobs.csv」ファイルが作成されます。このファイルには、元のテキストと、割り当てられた SOC コードを含む追加の「SOC_code」列が含まれます。
仮想環境でテストを実行するには、次を使用します。
python -m unittest
最上位の職業コーダディレクトリにあります。実行内容と使用例については、 test_occupationcoder.py
を参照してください。出力は、outputs/ フォルダー内の「processed_jobs.csv」ファイルに表示されます。
このアルゴリズムをテストしてくれた Emmet Cassidy に非常に感謝しています。
このコードは「現状のまま」提供されます。これを改善したり、他の国でも機能するように拡張したりしていただければ幸いです。表明されたすべての見解は私たちの個人的な見解であり、雇用主の見解ではありません。
このパッケージの開発はイングランド銀行の支援を受けました。
このパッケージは、Cookiecutter と audreyr/cookiecutter-pypackage プロジェクト テンプレートを使用して作成されました。