Соответствие текстовых строк с набором ключевых слов / категорий (R) - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь определить, к какой функциональной области относится название роли, на основе набора ключевых слов, определенных для каждой функции.

У меня есть список ролей (пример - не исчерпывающий)

> 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 на основемаксимальное количество совпадений ключевых слов.Проблема в том, что при одинаковых значениях критерием принятия решения становится первый словарь.

Это экстремальный пример с редкими объемами информации, содержащейся исключительно в названии роли.В конце концов я хотел бы увеличить объем текста, включив резюме роли из описания работы.

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...