Bagaimana Anda mengategorikan / mengekstraksi informasi dari deskripsi pekerjaan?

8

Saya memiliki banyak uraian tugas yang dimasukkan oleh pengguna. Ada semua jenis salah eja dan data buruk. yaitu:

...
tulane univ hospital
tulip
tullett prebon
... 
weik investment
weill cornell university medical center
weis
weiss waldee hohimer dds
welded constrction l.p.
welder
welder
welder
...

Langkah apa yang akan Anda ambil untuk 'menambah' nilai-nilai ini dengan wawasan terkait pekerjaan?

Yang terbaik yang bisa saya pikirkan adalah memberikannya kepada wolfram alpha. Tapi saya ingin tahu apakah ada teknik lain yang dapat diakses yang dapat saya manfaatkan menggunakan python.

Pembaruan: Saya menemukan bahwa ada Klasifikasi Pekerjaan Standar , saya benar-benar ingin mencocokkan nama dengan SOC dan SOC dengan berbagai gaji rata-rata.

fabrizioM
sumber
Bisakah Anda memetakan ini secara manual?
Aksakal
Tidak, ada 10.000+ deskripsi pekerjaan ..
fabrizioM
2
10.000 kata sekitar 22 halaman. Tidak banyak jika Anda bertanya kepada saya.
Aksakal

Jawaban:

5

Cara potensial untuk memulai ini adalah dengan menggunakan Kit Alat Bahasa Alami Python (NLTK) yang dapat digunakan untuk analisis teks dan topik tetapi juga memiliki fungsi yang berguna untuk mengekstrak kata-kata tertentu dari string. Misalnya, Anda dapat mengekstrak dari deskripsi pekerjaan kata-kata "medis", "rumah sakit", dll. Untuk menemukan pekerjaan dan sektor yang luas. Karena kesalahan pengejaan dan kualitas data, saya pikir itu tidak dapat dilakukan dengan cara yang sepenuhnya otomatis sehingga Anda akhirnya dapat mengkodekan SOC sendiri. Meskipun demikian, memiliki pekerjaan dan sektor yang luas dengan cara ini sudah membuat tugas jauh lebih mudah.

Jika Anda tertarik pada pemrosesan bahasa alami / teks dan analisis topik / penambangan teks di luar ini, buku yang cukup murah namun bermanfaat adalah oleh Bird et al. (2009) "Pemrosesan Bahasa Alami dengan Python" .

Judul pekerjaan telah dikaitkan dengan gaji oleh David Autor. Dia menautkan data dalam Survei Populasi Saat Ini (data yang digunakan untuk juga menghasilkan angka pengangguran AS) dengan judul SOC dari mana Anda juga bisa mendapatkan gaji di setiap pekerjaan. Dari ini Anda dapat dengan mudah menghitung gaji rata-rata di setiap pekerjaan dan Anda bahkan dapat memiliki gagasan tentang varians (dalam ketimpangan pendapatan pekerjaan) di setiap pekerjaan. David membuat set datanya tersedia di arsip datanya di MIT.

Andy
sumber
2

Saya telah berhasil menggunakan Latent Dirichlet Allocation (LDA) untuk menemukan tema laten atau "topik" dalam data tekstual. LDA akan membuatktopik di luar istilah (kata-kata) dari kumpulan deskripsi pekerjaan Anda. Setiap uraian tugas diberi kemungkinan berisi masing-masingktopik. Misalnya jika Anda meminta LDA untuk mengklasifikasikan korpus menjadi 3 topik, deskripsi pekerjaan untuk seorang desainer grafis mungkin memiliki 80% "ilustrator grafis photoshop ...", 18% "HTML CSS JS ...", dan 2% "Java Berorientasi objek musim semi ... ". Ada banyak yang bisa dibaca tentang LDA, cukup cari atau mulai dengan pertanyaan Quora .

Analisis saya dengan LDA adalah di R tetapi tentu saja ada paket Python meskipun saya belum pernah menggunakannya dalam pekerjaan saya sendiri.

Anda dapat mempertimbangkan memilih nomor topik yang sesuai dengan jumlah pekerjaan di SOC. Setelah Anda membuat topik, periksa dan lihat apakah Anda dapat menemukan tautan yang bermakna ke SOC dan sesuaikan nomor topik sampai Anda puas.

Untuk membuat taksiran gaji untuk setiap uraian pekerjaan, pertimbangkan untuk menimbang setiap gaji menggunakan probabilitas topik. Sebagai contoh jika deskripsi pekerjaan memiliki peluang 80% untuk menjadi pengembang perangkat lunak SOC, berat gajinya sebesar 0,80 dan topik lainnya juga. Jika itu menimbulkan terlalu banyak kebisingan, tetapkan batas (mungkin 20%) dan hapus bobot topik yang tersisa dari taksiran gaji.

Untuk kesalahan ejaan, Anda selalu dapat menyerangnya dengan pemeriksa ejaan dan melihat perbandingannya dengan hasil tanpa alat. Pastikan juga menggunakan teknik NLP standar seperti penghapusan tanda baca dan kata stemming sebelum menjalankan LDA.

Chris
sumber
seharusnya relatif mudah untuk melakukan prosedur pemeriksaan ejaan. (atau lebih tepatnya membuat daftar semua kata yang digunakan dengan jumlah kata dan menggunakannya (misalnya hanya melihat kata-kata yang paling langka) untuk memetakan ulang untuk memperbaiki ejaan. mungkin ingin melihat proyek OpenRegine github (sebelumnya google open refine) untuk up
seanv507
1

Itu tidak begitu banyak deskripsi pekerjaan sebagai jabatan. Jika Anda memang memiliki deskripsi seperti contoh ini dari definisi SOC , Anda dapat menggunakan model topik seperti yang disarankan oleh Chris:

1011 Kepala Eksekutif Menentukan dan merumuskan kebijakan dan memberikan arahan keseluruhan perusahaan atau organisasi sektor swasta dan publik dalam pedoman yang ditetapkan oleh dewan direksi atau badan pengatur serupa. Merencanakan, mengarahkan, atau mengoordinasikan kegiatan operasional di tingkat manajemen tertinggi dengan bantuan eksekutif bawahan dan manajer staf.

Dengan tidak adanya teks bentuk panjang, Anda dapat menggunakan pengklasifikasi Bayesian yang naif (karena Anda memiliki masalah klasifikasi) yang menggunakan jaringan sosial sebagai fitur, karena orang cenderung bekerja dalam jenis pekerjaan yang sama dengan teman-teman mereka. Fitur lain bisa berupa kemiripan string dengan File Judul Pencocokan Langsung (saya pikir database ini hanya yang Anda butuhkan), yang menyediakan pemetaan antara judul pekerjaan dan SOC.

Emre
sumber