6
$\begingroup$

I am trying to extract a skill set of an employee from his/her resume. I have resumes stored as plain text in Database. I do not have predefined skills in this case. How should I approach this problem?

I can think of two ways:

  1. Using unsupervised approach as I do not have predefined skillset with me. I will extract the skills from the resume using topic modelling but if I'm not wrong Topic Modelling uses BOW approach which may not be useful in this case as those skills will appear hardly one or two times. (I would appreciate if you enlighten me more about topic modelling).

  2. Another approach is manually labeling the skills for resume and making it supervised learning problem. But I have around 500 resumes, manual labeling will be very tedious and very time consuming.

Any suggestions are welcome.

Thanks.

$\endgroup$
  • $\begingroup$ I have been working on the same from past a month. I have a predefined sheet of skills and using a search base to extract that particular skill if its present in the resume. I dont know if this solution is right, but I started of with it. Can we collaborate and take this forward ? $\endgroup$ – pylearner Sep 25 '18 at 14:03
  • $\begingroup$ We can share our view and opinions. I am almost done with my project but I see there are lots of area when I can improve and will glad to help you if you stuck at anywhere. Let's not spam a comment section and talk into chat room. $\endgroup$ – AkshayNevrekar Sep 26 '18 at 4:59
  • $\begingroup$ Hey I just dropped you a message in the room $\endgroup$ – pylearner Oct 5 '18 at 6:08
7
$\begingroup$

I'm not sure Topic Modelling will help you here, as it tries to extract abstract topics from text. I'm afraid resumes might be too 'dry' for it to work nicely.

Here are a few sources I found that might be helpful:

  • A resume parser
  • The reply to this post, that gives you some text mining basics (how to deal with text data, what operations to perform on it, etc, as you said you had no prior experience with that)
  • This paper on skills extraction, I haven't read it, but it could give you some ideas

For some personal suggestions :

I'm going to make the assumption you don't want to label those resumes by hand, and will try to explain how I would proceed first. It might not be the best solution, as there's a lot of heuristics in it, but it's a beginning that's mostly aimed at studying your data and gain some insight on it.

  • You could see if the structure of the document helps: the skills you're looking for might often be appearing in a section with a specific title.

  • You could also work with gazeteers, which are lists of key words of interest, and combine these with colloquations (groups of words frequently appearing together). If, for example, you have a keyword appearing in your gazeteer, you could use ngrams to see what words appear around it the most, and turn your single word match into a multiple word skill (e.g : machine learning (2grams), natural language processing (3grams), etc)

  • Once you have an interesting list of keywords, you could move to ML and try word vectors, maybe use word2vec, and build vectors around your word of interests. If new skills come in, their vectors might be similar to the ones you have defined (sorry for being a bit unclear here, I only have a vague knowledge of how word2vecs work).

This is no silver bullet solution, but this should get you started.

Good luck !

$\endgroup$
  • 1
    $\begingroup$ You are right!!! After digging into deep I realize topic modelling is not suitable for this. I will looking into some external links provided by you. Thanks for your suggestions :-) $\endgroup$ – AkshayNevrekar Aug 4 '18 at 10:22

protected by Community Nov 5 at 13:27

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.