2010-10-13 59 views
1

我正在构建一个工作网站 - 是的,还没有足够的那些。我在研究中遇到的其中一个问题是如何将相关简历与感兴趣的招聘人员相匹配。我想到的最无聊的解决方案是使用文本分析来解析招聘者指定的简历 - 这有一个缺点:简历可能包含隐藏的关键字或流行语。然后找出如何解决这个问题很有趣。什么是解决这个问题的更有趣的方式? (也许某种机器学习算法?那么你也必须训练这个野兽。)Resumee匹配算法

所以我不知道我该怎么做呢。我欢迎您提供的任何建议。

+4

它的发音恢复这些算法。但更严重的是,这是一项非常艰巨的任务。每个职业都有自己的重要术语词典,每一个都有自己的重要性。祝你网站好运。 – JoshD 2010-10-13 00:38:08

回答

2

将自由文本简历解析为单词。 删除停用词(和,但是,等)。 将剩余单词与简历一起存储在数据库中。

您最初需要一位主题专家,他将根据招聘人员的要求对简历进行评分。 专家会给出一个分数,比如0-100,表示每个简历与某个请求的匹配程度。 一旦这个过程被启动,您可以使用经典匹配算法之一来选择CV,这些CV似乎接近专家们的评价。

可能从简单的N nearest Neighbours开始,然后转向更加爱好者,如Principal Component AnalysisSingular Value Decomposition

你可以找到广泛的讨论和代码来实现对Netflix Prize Forum

+0

很酷,但我很好奇:你会如何纠正“流行语包装”?另外我想知道相关性问题。算法如何计算出简历的相关性?你不能做出现的频率,也不能出现。那里还有什么? – picardo 2010-10-14 00:00:42

+0

CV A包含单词J,K,L。 CV B包含J,K,M。请求R包含字P,Q.专家判断A与R.相关。招聘者询问P,Q。系统呈现A和B的摘要,因为B股J,K与A.招募者对B表现出兴趣(例如通过点击'细节')。系统推断M(推定)与P,Q相关。你需要计算得分和强化,但这是主意。该方法只是将词的存在联系起来,不计数。它适用于像CVS那样有很多单词的情况,这样可以让算法很好地进行区分。 HTH。 – smirkingman 2010-10-14 08:45:09

+0

这样的系统如何投入生产?我正在寻找建设这样一个系统的实用架构。你能建议吗? https://stackoverflow.com/questions/45340471/calculating-similarity-measure-between-millions-of-documents – Enthusiast 2017-08-03 05:14:49

2

不要让考生写简单的简历。取而代之的是,创建一个具有各种领域(获得学位(哪些机构?),期望的薪水,特定技术的经验/技能水平,工作类型(合同,永久),工作距离特定地址等)的表格。同样,为雇主创建各种相关领域的表格。以这种方式创建这些表单,以便可以将一种形式与另一种形式进行匹配。尽可能多的字段是非强制性的。然后使用最相关的算法来匹配这些表单。应该有两种这样的算法:一种用于候选人可以搜索工作,另一名雇主可以搜索候选人。

+0

我喜欢你的解决方案,但是我讨厌求职的一件事就是不得不填补这么多该死的表格。 – picardo 2010-10-13 01:20:59

+0

@picardo:如果可能,使每个字段可选。用户可能会或可能不会在此放置任何东西将完整的表格分成几个“标签”。将最小/最简单的选项卡保留为默认形式。当用户填写表单时,您可以'实时显示'结果为'div',或者至少是'live job count'。 – Donotalo 2010-10-13 01:39:45

+0

该项目需要能够上传简历。不过,我想我可以解析简历并将其内容与表单的字段进行匹配。 – picardo 2010-10-13 02:33:07

1

关键是不用担心匹配,而是完美的排序。这是谷歌的关键 - 任何人都可以找到100万次点击 - 他们找到了第一个。

坦率地说,如果我输入Java,我真的期望(想)简历中有Java - 但你如何找到我最好的候选人呢?

+0

这是一个很好的问题。尽管如此,这个网站上没有一百万求职者,所以这可能是不同的。但是,如果招聘人员想要筛选最佳人选,则需要让招聘人员对简历进行评分,对吗?这样系统就可以了解候选人。 – picardo 2010-10-13 01:27:00

+0

当我搜索简历时,我对邮编距离,年数经验和一些关键字非常满意。通常这会使其缩小很多。不知道你需要担心的远远超出这一点 - 而是要弄清楚如何确保最好的候选人使用你的服务,以便我认为使用它将使我能够访问它们。 – 2010-10-13 12:39:49

0

可以要求候选人在字段中输入数据,但问题是他可能会使用相似词来表示可能会错过的单词,例如HTML,他可能会输入HyperTextMarkupLanguage。所以系统必须能够从不可识别的语言中学习,这可以通过使用单词的同义词来实现。就像说我想获得一个知道脚本语言的候选人而不是搜索'脚本语言'我可以得到像perl,python,ruby这样的同义词,并用它来比较fields.But这需要你在每次输入一个新的脚本语言出现了。如果你讨厌把数据输入到系统中,你可以通过查询Web说维基百科来找到Perl语言,并解析它。这使得系统甚至可以适应新技术,因为我们都知道技术不断发展,所以这个可以是有用的。