Я пытаюсь определить, к какой функциональной области относится название роли, на основе набора ключевых слов, определенных для каждой функции.
У меня есть список ролей (пример - не исчерпывающий)
> roles
[1] "Senior Financial Analyst"
[2] "IT Intern"
[3] "IT Analyst"
[4] "Financial Analyst"
[5] "Data Analyst"
[6] "Finance Co-op"
[7] "FLDP Associate Financial Analyst"
[8] "Talent Acquisition Coordinator"
[9] "Senior Tax Analyst"
[10] "Finance Manager"
[11] "Software Engineer"
[12] "Software Developer"
[13] "Talent Acquisition"
и список ключевых слов для каждой функции (для справки показаны 3 - Финансы, HR и IT).Для некоторых ключевых слов частичные совпадения хороши, но для других требуется точный текст.В некоторых случаях ключевые слова также не могут быть взаимоисключающими.
> finance
[1] "Financ" "Accountant" "Tax" "Receivable"
[5] "Reporting" "Accounting" "Collection"
> hr
[1] "/\bHR\b/" "Human Resourc" "Talent"
[4] "Training" "Recruit" "Learn"
[7] "Workforce" "/\bEHS/\b" "Employ"
> it
[1] "/\bIT\b/" "Informatic" "Software" "/\bSAP\b/"
[5] "Architect" "Data Manag" "Data Ware" "Digital"
[9] "Scrum"
То, что я хочу сделать, - это сопоставить название каждой роли с функцией «наилучшего соответствия» на основе всего списка ключевых слов.Результатом должен быть кадр данных с roles
в столбце 1 и return.function
(в данном случае либо Finance
HR
IT
или No Match
) в столбце 2 - одно совпадение для каждой плитки роли или No Match
при необходимости).Бонус, если столбец 3 может содержать уровень уверенности в назначении функции, но не является абсолютно необходимым.
# A tibble: 13 x 3
roles return.function match.p
<fct> <fct> <fct>
1 Senior Financial Analyst finance Level of Confidence
2 IT Intern it Level of Confidence
3 IT Analyst it Level of Confidence
4 Financial Analyst finance Level of Confidence
5 Data Analyst No Match Level of Confidence
6 Finance Co-op finance Level of Confidence
7 FLDP Associate Financial Analyst finance Level of Confidence
8 Talent Acquisition Coordinator hr Level of Confidence
9 Senior Tax Analyst finance Level of Confidence
10 Finance Manager finance Level of Confidence
11 Software Engineer it Level of Confidence
12 Software Developer it Level of Confidence
13 Talent Acquisition hr Level of Confidence
В настоящее время я использую quanteda
для создания словарей и присваивания return.function
на основемаксимальное количество совпадений ключевых слов.Проблема в том, что при одинаковых значениях критерием принятия решения становится первый словарь.
Это экстремальный пример с редкими объемами информации, содержащейся исключительно в названии роли.В конце концов я хотел бы увеличить объем текста, включив резюме роли из описания работы.
Заранее спасибо