3

我在队列中有 n 件事情,我必须根据开放标准类别 C { X,YZ) 找到最好的事情(这里 X,Y,Z 是 C 变体)。什么是时间复杂度最低的最佳建议通用算法?

例如:

假设一家公司在 C++、C、银行领域、STL、5-10 年...等领域发布工作。100人申请了同一个职位。有些在 C 中具有 exp,有些在 C++、Java 中。有些在 C、C++、电信领域……等等。我的问题是:如何找到最好的员工?如何对它们进行排名?

4

3 回答 3

1

粗略的想法,

将公司要求视为搜索向量,将简历视为要排名的文档。

  • 重视要求的每个元素(C++:100、C:80、12yrs:120、10yrs:100、8yrs:80、5yrs:0 等)
  • 根据权重,计算每份简历的分数。
  • 根据分数降序排序。

要微调选择, - 赋予候选人的位置和工作地点权重 - 当前员工 - 当前 CTC/预期 CTC - 将分数与其他候选人标准化/创建百分位数

使用洞察力(如果您真的想将候选人推销给公司), - 根据公司选择的候选人类型赋予权重 - 对活跃的候选人赋予权重,如何找到他们?- 另一个问题 :)

于 2011-03-11T08:25:32.347 回答
1

您可能需要某种词干提取,将每个标准词转换为规范标准词,以使标准更好地匹配。

例如:

  • 银行 => 银行
  • 银行 => 银行
  • 银行 => 银行
  • 金融业 => 银行
  • 爪哇 => 爪哇
  • JSE => Java + Swing
  • J2SE => JSE => Java + Swing
  • RHEL => RHEL + linux

我将从 Lucene 英语词干分析器开始并对其进行扩展。

于 2011-03-11T08:03:22.650 回答
0

我现在没有真正的算法,但计算排名的一种方法可能是计算每个员工与工作标准共有的项目数,并将其与项目总数相关联。例如:如果工作具有以下标准:Java, SQL, PHP(3 项)并且员工在 PHP 和 Java 中只有 exp(2 项),则排名 r 可以计算为:r = (employee_items) / (total_items) = 2 / 3
您还可以为职位描述中的每个项目添加权重,以识别更重要的项目。所以也许 Java 很重要——它得到 1.5,SQL 正常——1 和 PHP 不那么重要 0.8。那么employee_items 可能是1.5 * 1 + 0.8 * 1

这就是我尝试开始的方式

于 2011-03-11T07:25:38.900 回答