Список сотрудников
У меня есть n вещей в очереди, и я должен найти наилучшие возможные вещи по категориям открытых критериев C (X,Y Z) (здесь X,Y,Z - варианты C). Какой будет наилучший предложенный универсальный алгоритм с наименьшей временной сложностью?
Например:
Допустим, компания опубликовала работу на C++, C, в банковской сфере,STL, 5-10 Year... и так далее. 100 человек подали заявки на одну и ту же должность. У некоторых есть exp на C, некоторые на C++, Java.. У некоторых есть C, C++, телекоммуникационный домен... и так далее. Мой вопрос здесь: как найти лучшего сотрудника? Как их ранжировать?
3 ответа
Приблизительное представление,
Рассматривайте требования компании как вектор поиска и резюме как документы для ранжирования.
- Дайте вес каждому элементу требования (C++:100, C:80, 12 лет:120, 10 лет:100, 8 лет:80, 5 лет: 0 и т. Д.)
- Основываясь на весах, рассчитать оценку для каждого резюме.
- Сортировать по убыванию в зависимости от оценки.
Для точной настройки выбора: - Присвойте вес местоположению кандидата и месту работы - Текущий сотрудник - Текущий CTC/ Ожидаемый CTC - Нормализовать счет с другим кандидатом / Создать процентиль
Используйте идеи (если вы действительно хотите продать кандидата компании), - Определите вес, основанный на том, каких кандидатов выбирает компания. - Определите веса активных кандидатов, как их найти? - Другой вопрос:)
Вероятно, вам понадобится какой-то вид, который переводит каждое слово (слова) критерия в слово (а) канонического критерия, чтобы критерии соответствовали лучше.
Например:
- Банк => Банк
- Банки => банк
- Банковский => банк
- Финансовый сектор => банк
- Java => Java
- JSE => Java + Swing
- J2SE => JSE => Java + Swing
- RHEL => RHEL + linux
Я бы начал с английского языка Lucene и расширил его.
У меня сейчас нет реального алгоритма, но способ подсчета ранга может состоять в том, чтобы подсчитать количество предметов, общих для каждого сотрудника, с критериями для работы и сопоставить их с общим количеством предметов. Например: если работа имеет критерии: Java, SQL, PHP
(3 элемента) и emplyoyee имеет только exp в PHP и Java (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
Вот как я бы попытался начать