Como você categorizaria / extrair informações das descrições de cargo?

8

Eu tenho várias descrições de trabalho inseridas pelos usuários. Há todo tipo de erro de ortografia e dados incorretos. ou seja:

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

Quais etapas você adotaria para "aumentar" esses valores com informações relacionadas ao trabalho?

O melhor que consigo pensar é entregá-lo ao wolfram alpha. Mas eu me pergunto se existem outras técnicas acessíveis que eu possa utilizar usando python.

Atualização: eu descobri que existe uma Classificação Ocupacional Padrão , eu realmente gostaria de associar o nome ao SOC e o SOC a uma faixa de salários médios.

fabrizioM
fonte
Você pode mapear isso manualmente?
Aksakal
Não, existem mais de 10.000 descrições de trabalho ..
fabrizioM
2
10.000 palavras são cerca de 22 páginas. Não muito, se você me perguntar.
Aksakal

Respostas:

5

Uma maneira potencial de começar isso é usar o NLTK ( Natural Language Tool Kit ) do Python, que pode ser utilizado para análise de texto e tópico, mas também possui funções úteis para extrair determinadas palavras de strings. Por exemplo, você pode extrair da descrição do trabalho as palavras "médico", "hospital" etc. para encontrar ocupações e setores amplos. Devido aos erros de ortografia e à qualidade dos dados, não acho que isso possa ser feito de maneira totalmente automatizada, de modo que você possa acabar codificando os SOCs. No entanto, ter amplas ocupações e setores dessa maneira já facilita muito a tarefa.

Se você está interessado em processamento de linguagem natural / análise de texto e tópico / mineração de texto além disso, um livro bastante barato, mas útil, é de Bird et al. (2009) "Processamento de linguagem natural com Python" .

Os títulos ocupacionais foram vinculados aos salários por David Autor. Ele vinculou os dados da Pesquisa de população atual (os dados que também são usados ​​para produzir números de desemprego nos EUA) aos títulos do SOC, dos quais você também pode obter salários em cada ocupação. A partir deles, você pode calcular facilmente os salários médios em cada ocupação e pode até ter uma idéia da variação (dentro da desigualdade de ganhos ocupacionais) em cada ocupação. David disponibiliza seus conjuntos de dados em seu arquivo de dados no MIT.

Andy
fonte
2

kk

Minha análise com o LDA foi em R, mas é claro que existe um pacote Python, embora eu nunca o tenha empregado em meu próprio trabalho.

Você pode considerar selecionar um número de tópico que corresponda às ocupações numéricas no SOC. Depois de gerar os tópicos, inspecione-os e veja se você pode encontrar links significativos para o SOC e ajuste o número do tópico de acordo até ficar satisfeito.

Para fazer estimativas salariais para cada descrição de cargo, considere ponderar cada salário usando as probabilidades do tópico. Por exemplo, se uma descrição de cargo tivesse 80% de probabilidade de ser um desenvolvedor de software, SOC ponderaria o salário em 0,80 e os demais tópicos da mesma forma. Se isso criar muito ruído, basta definir um limite (talvez 20%) e remover os pesos restantes do tópico da estimativa salarial.

Para erros de ortografia, você sempre pode atacá-lo com um verificador ortográfico e ver como ele se compara aos resultados sem a ferramenta. Também certifique-se de empregar técnicas padrão de PNL, como remoção de pontuação e busca de palavras antes de executar o LDA.

Chris
fonte
deve ser relativamente fácil executar o procedimento do tipo de verificação ortográfica (ou criar uma lista de todas as palavras usadas com a contagem de palavras e usá-lo (por exemplo, olhando apenas as palavras mais raras) para remapear a ortografia correta. (anteriormente google Refine aberto) para o ascendente arrumado
seanv507
1

Essas não são tanto descrições de cargo quanto cargos. Se você tivesse descrições como este exemplo nas definições de SOC , poderia usar um modelo de tópico conforme sugerido por Chris:

1011 Chefes executivos Determine e formule políticas e forneça orientação geral às empresas ou organizações do setor público e privado, dentro das diretrizes estabelecidas por um conselho de administração ou órgão governamental similar. Planeje, direcione ou coordene atividades operacionais no mais alto nível de gerenciamento com a ajuda de executivos subordinados e gerentes de equipe.

Na ausência de texto longo, você pode usar um classificador bayesiano ingênuo (já que possui um problema de classificação) que usa a rede social como um recurso, pois as pessoas provavelmente trabalharão nos mesmos tipos de trabalho que seus amigos. Outro recurso pode ser a semelhança de string com o arquivo de título de correspondência direta (acho que esse banco de dados é exatamente o que você precisa), que fornece um mapeamento entre os títulos de trabalho e o SOC.

Emre
fonte