Было бы очень сложно начать с нуля,
Я бы анализировал некоторые данные для наборов навыков откуда-то, загружал их в таблицу и использовал эту таблицу в качестве справочной, пытаясь сопоставить данные из этой таблицы. В противном случае вы не сможете определить, являются ли слова или фразы значимыми или нет.
И для каждой фразы я бы использовал следующий алгоритм
Скажем, у вас есть фраза из 5 слов
"one two three four five"
сначала я бы проверил, существует ли этот в моей таблице, если это так, оставь его и, если нет, проверим
"one two three four" and "two three four five"
и если они не совпадают, отметьте
"one two three", "two three four", "three four five"
и т.д ...
Я знаю, что это немного грязно и долго, но это первое, что пришло мне в голову.
Надеюсь, это поможет