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.
classification
categorical-data
text-mining
fabrizioM
la source
la source
Réponses:
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.
la source
J'ai réussi à utiliser Latent Dirichlet Allocation (LDA) pour trouver les thèmes ou «sujets» latents dans les données textuelles. LDA créerak sujets hors termes (mots) de votre corpus de descriptions de poste. Chaque description de poste reçoit une probabilité de contenir chacun desk les 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.
la source
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:
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.
la source