He tenido éxito con la asignación de Dirichlet latente (LDA) para encontrar los temas latentes o "temas" en los datos textuales. LDA creará temas a partir de términos (palabras) a partir de su corpus de descripciones de trabajo. Cada descripción de trabajo tiene una probabilidad de contener cada uno de los temas. Por ejemplo, si le pidió a LDA que clasificara un corpus en 3 temas, una descripción del trabajo para un diseñador gráfico podría tener un 80% de "ilustrador gráfico de Photoshop ...", un 18% de "HTML CSS JS ..." y un 2% de "Java Muelle orientado a objetos ... ". Hay mucho que leer sobre la LDA, solo busque o comience con la pregunta de Quora .kk
Mi análisis con LDA fue en R pero, por supuesto, hay un paquete de Python, aunque nunca lo he empleado en mi propio trabajo.
Puede considerar seleccionar un número de tema que corresponda con las ocupaciones de números en el SOC. Una vez que haya generado los temas, inspecciónelos y vea si puede encontrar enlaces significativos al SOC y ajuste el número del tema en consecuencia hasta que esté satisfecho.
Para hacer estimaciones salariales para cada descripción de trabajo, considere ponderar cada salario usando las probabilidades del tema. Por ejemplo, si la descripción de un trabajo tenía un 80% de probabilidad de ser un desarrollador de software, SOC ponderaría el salario en .80 y los temas restantes también. Si eso genera demasiado ruido, simplemente establezca un límite (tal vez 20%) y elimine los pesos de tema restantes de la estimación de salario.
Para errores ortográficos, siempre puede atacarlo con un corrector ortográfico y ver cómo se compara con los resultados sin la herramienta. También asegúrese de emplear técnicas estándar de PNL como la eliminación de puntuación y la derivación de palabras antes de ejecutar LDA.