Comment classeriez-vous / extrayeriez-vous l'information des descriptions de travail?


8

J'ai un tas de descriptions de poste entrées par les utilisateurs. Il y a toutes sortes de fautes d'orthographe et de mauvaises données. c'est à dire:

...
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
...

Quelles mesures prendriez-vous pour «augmenter» ces valeurs avec des informations liées à l'emploi?

Le mieux que je puisse penser est de le donner au wolfram alpha. Mais je me demande s'il existe d'autres techniques accessibles que je peux utiliser en utilisant python.

Mise à jour: J'ai découvert qu'il existe une classification type des professions , je voudrais vraiment faire correspondre le nom au SOC et le SOC à une gamme de salaires moyens.


Pouvez-vous les cartographier manuellement?
Aksakal

Non, il y a plus de 10 000 descriptions de travail ..
fabrizioM

2
10 000 mots, c'est environ 22 pages. Pas tant que ça si vous me demandez.
Aksakal

Réponses:


5

Une façon potentielle de commencer est d'utiliser le Kit d'outils en langage naturel (NLTK) de Python qui peut être utilisé pour l'analyse de texte et de sujet, mais qui a également des fonctions utiles pour extraire certains mots des chaînes. Par exemple, vous pouvez extraire de la description de poste les mots «médical», «hôpital», etc. afin de trouver des professions et des secteurs généraux. En raison des fautes d'orthographe et de la qualité des données, je ne pense pas que cela puisse être fait de manière entièrement automatisée, de sorte que vous pourriez finir par coder les SOC vous-même. Néanmoins, avoir les professions et les secteurs généraux de cette façon facilite déjà la tâche.

Si vous êtes intéressé par le traitement du langage naturel / l'analyse de texte et de sujet / l'exploration de texte au-delà de cela, un livre assez bon marché mais utile est de Bird et al. (2009) "Traitement du langage naturel avec Python" .

Les titres professionnels ont été liés aux salaires par David Autor. Il a lié les données de la Current Population Survey (les données qui sont également utilisées pour produire les chiffres du chômage aux États-Unis) aux titres SOC à partir desquels vous pouvez également obtenir des salaires dans chaque profession. À partir de ceux-ci, vous pouvez facilement calculer les salaires moyens dans chaque profession et vous pouvez même avoir une idée de la variance (au sein de l'inégalité des revenus professionnels) dans chaque profession. David rend ses ensembles de données disponibles sur ses archives de données au MIT.


2

J'ai réussi à utiliser Latent Dirichlet Allocation (LDA) pour trouver les thèmes ou «sujets» latents dans les données textuelles. LDA créeraksujets hors termes (mots) de votre corpus de descriptions de poste. Chaque description de poste reçoit une probabilité de contenir chacun deskles sujets. Par exemple, si vous avez demandé à LDA de classer un corpus en 3 rubriques, une description de travail pour un graphiste pourrait avoir 80% "illustrateur graphique photoshop ...", 18% "HTML CSS JS ..." et 2% "Java Spring orienté objet ... ". Il y a beaucoup à lire sur la LDA, il suffit de rechercher ou de commencer par la question Quora .

Mon analyse avec LDA était en R mais il y a bien sûr un paquet Python bien que je ne l'ai jamais utilisé dans mon propre travail.

Vous pourriez envisager de sélectionner un numéro de sujet qui correspond au nombre de professions dans le SOC. Une fois que vous avez généré les sujets, inspectez-les et voyez si vous pouvez trouver des liens significatifs vers le SOC et ajustez le numéro de sujet en conséquence jusqu'à ce que vous soyez satisfait.

Pour faire des estimations de salaire pour chaque description de poste, pensez à pondérer chaque salaire à l'aide des probabilités du sujet. Par exemple, si une description de poste avait une probabilité de 80% d'être un développeur de logiciels, le SOC pondère le salaire de 0,80 et les autres sujets de la même manière. Si cela crée trop de bruit, définissez simplement un seuil (peut-être 20%) et supprimez les pondérations restantes du sujet de l'estimation du salaire.

Pour les fautes d'orthographe, vous pouvez toujours l'attaquer avec un correcteur orthographique et voir comment il se compare aux résultats sans l'outil. Assurez-vous également d'utiliser des techniques de PNL standard telles que la suppression de la ponctuation et le mot dérivé avant d'exécuter LDA.


devrait être relativement facile à faire la procédure de type de vérification orthographique (ou plutôt créer une liste de tous les mots utilisés avec le nombre de mots et l'utiliser (par exemple en ne regardant que les mots les plus rares) pour remapper pour corriger l'orthographe. pourrait vouloir regarder le projet github OpenRegine (anciennement google open affine) pour le
rangement

1

Ce ne sont pas tant des descriptions de poste que des titres de poste. Si vous aviez des descriptions comme cet exemple des définitions SOC , vous pourriez utiliser un modèle de sujet comme suggéré par Chris:

1011 Directeurs généraux Déterminer et formuler des politiques et fournir une direction générale aux entreprises ou aux organisations des secteurs privé et public conformément aux directives établies par un conseil d'administration ou un organe directeur similaire. Planifiez, dirigez ou coordonnez les activités opérationnelles au plus haut niveau de gestion avec l'aide de cadres subordonnés et de gestionnaires du personnel.

En l'absence de texte long, vous pouvez utiliser un classificateur bayésien naïf (car vous avez un problème de classification) qui utilise le réseau social comme fonctionnalité, car les gens sont susceptibles de travailler dans les mêmes types d'emplois que leurs amis. Une autre caractéristique pourrait être la similitude des chaînes avec le fichier de titre de correspondance directe (je pense que cette base de données est exactement ce dont vous avez besoin), qui fournit une correspondance entre les titres de poste et le SOC.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.