Which is best technique for giving rating or scoring for resume analysis?

machine_learning
python

#1

Hi friends,

I am trying to develop model for resume analysis and give score to each resume with respect to job description. can anyone tell me which technique is good?

I did some googling and get from classification use for it but I am confuse how to implement on it.

I am trying to do in python so if anyone have any sample tutorial for scoring please let me know

Please give me some suggestions.

Thank you in advance


#2

The procedure for such problem to be implemented is as follows -

  1. Collect sufficient resume (data) for each job description.
  2. Review these by expert and label them 1/0 (a.k.a Classify them)
  3. Apply simple classification problem such as Logistic Regression
  4. Export the results in probabilities, using model.predict_proba(X_test)
  5. You could later rank them using probabilities

#3

@Shaz13
Thank you so much for your valuable answer

Can you please little elaborate second step?
It will help me more


#4

I suggested get them reviewed by HRs and other experts. If they think that the current resume will quality set those label to 1. If the resume is not good label them 0


#5

@Shaz13

Thanks for reply. But I need to create like it should do automatically from text- mining or string matching or use any Deep learning like RNN method.


#6

It totally depends on the amount of data you have. A suffiecient amount of data should be good with Deep learning. However, I would encourage you to start with basic machine learning techniques and algorithms and explore further with techniques to see your accuracy improve.


#7

ok sure thanks


#8

Depends on what data you have from the resume and job profile

You can try variety of features

  1. Text Matching based on cosine
  2. CTC matching
  3. Exp matching
  4. City movement propensity of candidate
  5. Role movement propensity of candidate

Then you can decide based on the business requirement what you want to target
And finally train some model on it - most of the models codes are 1-2 liners in R


#9

@anand1
Thanks for Reply


#10

You can try using word2vec instead of simple word matching. This will help in learning the context also


#11

@T_Predict Thanks for reply I don’t know how to work word2vec But I will try my best to learn it. If you have any good tutorial or study material please provide me.

Thanks in Advance


#12

Hi @premsheth,

As mentioned by @T_Predict, Word2Vec can help you for tasks like word analogies and word similarities. Word2vec is not a single algorithm but a combination of two techniques – CBOW(Continuous bag of words) and Skip-gram model. To learn more about Word2Vec, its techniques and implementation in Python, you can refer this article:


#13

@PulkitS Thank you for kind reply

i gone through it and understand Word2Vec little. Example given in Blog not working for me Do you have any example or tutorial which explain step by step word2vec in python


#14

Hi @premsheth,

Can you please specify which example/code is not working for you? We can suggest some changes in the code to clarify your doubt.


#15

Hi Run this Code directly copy paste in to my Jupyter notebook. But it gives me following error:

TypeError: load_word2vec_format() got an unexpected keyword argument 'norm_only'

        from gensim.models import Word2Vec

        #loading the downloaded model
        model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True, norm_only=True)

        #the model is loaded. It can be used to perform all of the tasks mentioned above.

        # getting word vectors of a word
        dog = model['dog']

        #performing king queen magic
        print(model.most_similar(positive=['woman', 'king'], negative=['man']))

        #picking odd one out
        print(model.doesnt_match("breakfast cereal dinner lunch".split()))

        #printing similarity index
        print(model.similarity('woman', 'man'))

#16

Hi @premsheth,

The gensim library has been updated. So, you have to make some changes in your code to get the results.

   from gensim.models import Word2Vec

    #loading the downloaded model
    model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True, norm_only=True)

    #the model is loaded. It can be used to perform all of the tasks mentioned above.

Replace the above mentioned part of the code with the following code:

   from gensim.models import KeyedVectors

    #loading the downloaded model
    model =  KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)

    #the model is loaded. It can be used to perform all of the tasks mentioned above.

Now you can continue the steps as mentioned in the article.


#17

@PulkitS
Thank you so much. and I also download ‘GoogleNews-vectors-negative300.bin’

Thank you so much for your kind help