如何用算法投简历

当年找工作的时候,去各个社招网站上找职位投简历,总想找到和自己简历最匹配的职位(毕业的时候挫的一比)。一个个看实在太累了。能不能用算法直接找到最匹配的职位啊?

基本思路是,若能从职位描述和简历描述中,提取出关键词,再用某种相似度算法,计算职位和简历的匹配度,即可达成目标。

理想中的效果是:

职位 前端工程师:H5 html css vue nodejs 页面 美观...

简历 前端工程师:H5 主页 javascript nodejs ajax...

职位与简历的相似度:98%

最好有个可以操作的界面,如下图:

第一个需要解决的问题:怎么提取关键词呢?答案是分词器。

分词器可以达到这样的效果:

我爱北京天安门---->我 爱 北京 天安门

有3年前端从业经验---->有 3年 前段 从业 经验

不过分词器也会犯傻:

了解机器学习算法与人工智障---->了解 机器 学习 算法 与 人工 智障

“机器学习“和“人工智障“都是一个独立的词啊!咋被拆开了呢?

原因是分词器的词库里面没有“机器学习”“人工智障”这两个词。

解决方法:新词提取算法可以利用左右信息熵与凝聚指数提取“机器学习”“人工智障”。

将新词加入分词器训练,分词器终于可以成功分词了:

了解机器学习算法与人工智障---->了解 机器学习 算法 与 人工智障。

即便这样,分词器还是会分出一大堆乱七八糟的词:

例如:H5 vue 前端 页面 五险一金 团建 员工福利 成长 职责 技能 学习 优先 经验 了解

前面4个词是关键词,后面14个词然并卵。这些词需要被干掉!

首先,用IDF方法可以过滤掉那些几乎会出现在所有职位描述中的词,例如:学习 优先 经验 了解。

其次,一般来说,网上的职位都有一些原始分类,例如智联对软件工程师有一些细分:前端、java、算法等等

可以利用信息增量算法,过滤掉那些,几乎会出现在所有类中的词。比如:职责,技能 成长。

剩下词的只有靠人类一个一个删了,是这样吗?不全是。

利用word2vec算法可以计算出词向量,再通过kmeans即可完成词的聚类,效果如下:

第一类:前端 H5 html css vue... (这不就是前端工程师的关键词么!)

第二类:机器学习 算法 NLP 搜索 推荐 神经网络 (这不就是算法工程师的关键词么!)

第三类:五险一金 团建 员工福利...(这是神马破玩意儿?【批量】干掉!)

第四类:政府 国企 大型 投资 金融...(这关我鸟事啊?【批量】干掉!)

...

word2vec的特点就是可以把有相似上下文的词算出相似的向量,对这些向量聚类,就可以得到上面的效果!虽然是人工删词,但是有了算法的帮助,是不是方便多了?

最后,就是计算匹配度了:

借助LDA主题模型,可以计算出简历与职位,分别属于某个主题的概率:

职位 前端工程师:H5 html css vue nodejs 页面 美观...

P(属于主题1)=0.1

P(属于主题2)=0.4

P(属于主题3)=0.2

P(属于主题4)=0.8

不就是个向量么?---> v1 = [0.1, 0.4, 0.2, 0.8]

简历 前端工程师:H5 主页 javascript nodejs ajax...

P(属于主题1)=0.2

P(属于主题2)=0.3

P(属于主题3)=0.2

P(属于主题4)=0.7

v2 = [0.2, 0.3, 0.2, 0.7]

所以简历与职位匹配程度可以用向量的距离来表示:

职位与简历匹配度 = 余弦距离(v1, v2)

总之,整理出下面的流程图:

结果还不错,在计算机软件这个行业里,匹配职位效果还挺不错的。例如PHP、前端、算法、DBA、运维、C#、.net等。

光有算法还不行,得做成一个桌面程序,不然没法用。

PyQt图形界面+selenium webdriver驱动浏览器,下载各大招聘网站的职位到本地。

利用上述的算法匹配个人简历。

勾选职位,同样利用selenium webdriver驱动浏览器批量投简历。

就这样,妈妈再也不用担心我找不到工作了。

视频演示:

www.bilibili.com/video/av396…

转载于:https://juejin.im/post/5c2eb7f7e51d4551de1d7474

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值