输入:项目经历(项目名,项目描述,[项目职责,项目起始时间])
期望输出:识别项目对应行业,对项目经历进行打分。(10分制或5分制)
目前已有数据:从简历中提取出来的项目经历记录100万条左右,包含信息(项目名,项目描述,项目职责,项目起始时间)
目前做法:
(1)用原始数据训练word2vec,
(2)对原始数据进行初步评分(5分制)
(3)对原始数据进行行业分类(50个行业)
(4)对输入项目进行向量化(word2vec),预测相应行业,在行业内运用KDTree寻找TOP 10 近邻项目,对评分加和平均,得到最后项目分数。
然并卵....
目前困惑:
(1)量化项目重要性:如何量化一个项目是否重要,或者说什么样的项目能拿高分?目前做法是标签匹配,比如说项目中含有“国家自然科学基金”/“十二五项目”等,评为高级(5分),但是这样的效果很差。可否考虑加入公司排行指标?技能库?
(2)相似项目的计算:目前是将项目名,项目描述,项目职责整合,用word2vec的词语向量加和得到项目向量,这样合理吗?有没有改进方法?
(2)量化个人在项目中的重要性:如何量化个人对于这个项目多重要呢?好难
入行未深,没有什么经验,还请各位大神给点建议意见,感激不尽!!!
1
minvacai 2015-08-08 13:02:30 +08:00
不懂,不过听起来很有趣,关注一下
|
2
lcqtdwj 2015-08-08 13:34:23 +08:00
这些问题就是精华所在吧
|
3
em70 2015-08-08 13:48:02 +08:00 1
这个项目我觉得跟搜索引擎质量排序比较类似, google是如何判断一个网页的质量的呢,是通过大量细节,比如网站本身的权重,网页被链接的次数,网页制作质量,网页关键字密度.....差不多好几百项指标,最后计算出一个得分. 用这个思路来分析简历里的项目数据,那么是否可以认为优秀的人做的项目的质量就高呢,至少大部分是这样的吧,OK,那我们先去判断简历的质量,简历作者的水平. 这需要先找到优秀简历的共性,一份简历可能有诸多细节,都可以用来作为指标,这个就需要动脑筋思考,反复实验了.
PS:要做一个东西,首先自己得成为专家才行. 就像一个人完全不会打麻将,他写出的麻将游戏可能连基本规则都搞不清. 你至少得先成为简历专家,余光都能判断一份简历和他背后的人靠不靠谱. |
4
zixincao 2015-08-08 13:52:12 +08:00
和这个比价像https://www.v2ex.com/t/211315
|
5
bbking OP @em70 非常感谢!这项目也是想能为HR所用,或者应聘者了解一下自己所写的项目经历的质量~和网页排序相似,需要很多的量化指标,也是希望有做过类似项目的大神给点建议。
|
6
bbking OP @zixincao 有点像,但薪资水平是有label的,从网上可以爬对应jd或简历的薪酬区间,对于项目经历来说,就比较难,无label
|
7
ca1123 2015-08-08 14:51:29 +08:00
先考虑一个空间能够描述全部简历
然后用大牛的简历找出大牛子空间 最后看新简历属不属于大牛子空间 |
9
em70 2015-08-08 15:15:43 +08:00
@bbking 去找大牛的简历来让机器学习啊,给机器一份大牛简历,让他记住这种简历都是大牛的,再给一份垃圾,让他记住这种都是垃圾. 训练几百份,那机器判断就很准确了.
|
10
em70 2015-08-08 15:18:28 +08:00
@bbking 再推荐你一个著名的算法---贝叶斯分类. 目前贝叶斯算法主要应用于反垃圾邮件领域,能自己学习识别从未见过的垃圾邮件
|
12
kid813 2015-08-08 16:06:44 +08:00 1
您当前的需求应该是 feature engineering 而不是模型。高质量的预测或者聚类结果是建立在高质量的模型+高质量的feature上的。训练模型不是特别费事的工作,Bayes,Random Forest这些模型只需要写程序就可以实现自动化的训练和参数调整。但是如果输入模型的数据质量太低,那么花费多少时间去调整模型本身都不会有太大意义。
## 关于您的第二个问题: 像@em70 说的,您得对“简历”的筛选有足够的先验经验才能构建好的feature,如果您不是业务人员(HR),建议您和HR合作讨论如何构建评价简历的指标。 我对文本挖掘不是特别熟悉,仅提供一点想法:您提到的“项目描述、项目职责、项目时间”只是 attribute 不是 feature。考虑到您的目标数据有50个行业和简历的关键词的多样性(如果您不做预处理),word -> vector 之后的稀疏矩阵可能无法支撑您的训练器有足够的学习空间。建议对 vector 做选择 (selection) 或者抽取 (extraction) 的处理之后,再把得到的数据放入训练器。 举一个简单的例子,如果您不对简历的文本做预处理,“经验” 和 ”经历“就是两个词,向量化之后就是两个attributes,对于训练器来说是两个独立的attributes。如果用Naive Bayes来训练,那么很可能会underfitting;但这两个词实际上对HR来说这两个词可能就是同义词。 建议您找一些文本挖掘的教材阅读,Scikit-learn的网站上也提供了简单的例子,或许可以提供一些思路。 ## 关于您的第一个问题: 是否加入其他评分标准应该取决于业务(HR),而不是模型。提高 labels的复杂度往往只会加剧underfitting。模型输出的结果是给业务人员看的,而不是给计算机看,出于提高模型准确度的目的不断添加feature或者label有点本末倒置了。 |