В stringdist есть метод расчета lqs - longest common substring. Может, этот метод подойдёт? Хотя искать такими способами общие корни - немного бег по граблям...
a = c(‘менеджер в торговле’, ‘,главный бухгалтер’, ‘специалист’) b = c(‘торговый представитель’, ‘ведущий специалист с бухгалтерскими функциями’, ‘сценарист’)
по-моему, здесь утилитарная задача. разложить резюме из интернета по собственным корзинкам. эпизодические сбои некритичны. это этап первичной фильтрации и сортировки.
думаю, что 5-6 букв будет достаточно именно для конкретной задачи, а не для исходного абстрактного примера. тут все-таки речь о конкретных должностях, пересечение там, где оно должно быть, будет большим
Я бы тогда все резюме лемматизировал через udpipe, потом tf-idf по леммам и кластеризация с косинусной дистанцией. Только по названию должности - много левого будет. Одних менеджеров миллион разных
постановка задачи — полный абстракт. подстройка параметров по реальным датасетам позволит эту сортировку сделать максимально возможным образом. остальное HR досмотрят сами.