¿Cuál es la mejor manera de analizar un currículum en los campos de la base de datos? ¿Qué hacer si tiene muchos currículums y necesita que los datos se extraigan en elementos individuales que se pueden colocar en una base de datos?

Buena pregunta. Algunas ideas:

  • El proyecto Apache Tika [1] tiene como objetivo construir una biblioteca de analizadores de formato de documentos. Si los currículums llegan a usted en PDF, .doc u otros formatos comunes, Tika puede extraer texto sin formato de estos documentos.
  • A continuación, algunos de los currículums probablemente tendrán una estructura común. El proceso de descubrir esta estructura común se conoce con el nombre de inducción de envoltura [2] en círculos de rastreo web.
  • Finalmente, es probable que desee un vocabulario estándar de universidades y otras entidades para cada campo. El proceso de mapeo de la universidad ingresada por el usuario a una entidad canónica se conoce como reconocimiento de entidad nombrada [3].
  • Una vez que tenga la tubería anterior trabajando manualmente, probablemente querrá automatizar el proceso. Encontrará herramientas útiles para la cola de mensajes , el flujo de trabajo y la programación útiles en esta etapa.

Por supuesto, todo eso es difícil. Si tiene un presupuesto, puede usar CrowdFlower [4] para que los seres humanos extraigan la información estructurada por usted.

[1] http://tika.apache.org
[2] http://www.cs.washington.edu/hom…
[3] http://en.wikipedia.org/wiki/Nam…
[4] http://crowdflower.com

Por lo general, los currículums tienen un formato muy similar, por lo que es fácil expresar la gramática del currículum en idiomas como GATE ( http://gate.ac.uk/sale/tao/split …) o Gexpr ( http://code.google.com / p / graph-e …). en lugar de usar NER estadístico puro basado en HMM, CRF, etc.

Lo que está pidiendo un analizador de currículum. La pregunta es si desea construir uno o utilizar una solución estándar.

La única razón por la que desea crear uno es ponerlo a disposición de otros como servicio. No tiene ningún sentido construir uno para su uso interno. El esfuerzo, el enfoque y el tiempo que lleva no valdrán la pena si la necesidad es solo analizar un conjunto de currículums que tiene. Esto es cierto incluso si la cantidad de currículums que tiene llega a millones. Preferiría comprar una solución que ya está disponible como la que hemos construido HireWand, o las otras en el mercado como Sovren, Daxtra, Textkernel o más.

Todos estos analizadores de currículum le proporcionarán resultados analizados de forma estructurada, ya sea como xml o como json. Luego puede guardarlo en una base de datos en cualquier estructura que desee.

La sugerencia de no construir su propio analizador proviene de mi propia experiencia en la construcción de uno. No existen bibliotecas o algoritmos de código abierto que pueda elegir y armar para crear un analizador de calidad. Utilizará técnicas de IA como PNL, ML, etc., para el reconocimiento de entidades, extracción de características, etc., pero finalmente debe “analizar” el currículum como lo haría un humano, dividiendo varias secciones con una confianza razonable y sacando lo relevante información para cada sección. Esto pasa a ser el desafío central de cualquier analizador y es un problema no trivial para resolver. Se necesita mucho tiempo y esfuerzo para construir esto.

Puede considerar construir su propio analizador si resulta ser el núcleo de la solución que está tratando de construir, de lo contrario, simplemente elija uno del mercado. Elija uno que cumpla con sus criterios de calidad a un costo razonable.

More Interesting

¿Cómo se usa el hashing para la integridad?

¿Qué debo hacer si no puedo obtener el algoritmo correcto para un problema de codificación?

¿Cómo se ve una imagen después de que se somete repetidamente a un algoritmo de compresión con pérdida hasta que ya no se puede comprimir?

¿Qué es 600 en forma binaria?

Ahora que los bitcoins son famosos y caros, ¿cómo reaccionaría el mercado ante un clon de Bitcoin que utiliza un algoritmo, tecnología, etc. idénticos?

Cuando quitamos un borde de un árbol, parece obvio que nos quedan dos árboles, pero ¿cómo podríamos probar esto?

Cómo implementar este algoritmo usando Matlab

Cómo clasificar 5 números, de mayor a menor, con sentencias if y no arrays en Java o Python

¿Cuáles son las ventajas de los algoritmos de aprendizaje de refuerzo como LinUCB sobre otros algoritmos de predicción de CTR en línea como la regresión logística en línea?

¿Qué algoritmo se puede usar para encontrar la clave para el cifrado y la clave de entrada en el formulario?

Cómo hacer un bot de chat usando Python implementando algoritmos de aprendizaje automático (como SVM, Naive Bayes, Random Forest, etc.)

Cómo encontrar factorial de un número en O (logn) complejidad de tiempo

¿Cuánto trabaja un analista de datos / científico de datos en un día? ¿Cuánto tiempo tienes para estudiar nuevos algoritmos y técnicas?

Dados n puntos en un plano 2D, ¿cómo encontrarías el número máximo de puntos que se encuentran en la misma línea recta? Proporcione un algoritmo para resolver este problema.

¿Cuál es un buen algoritmo para interpolar datos de series temporales faltantes?