Pracowałem nad małym, osobistym projektem, który wymaga umiejętności zawodowych użytkownika i sugeruje najbardziej idealną karierę dla nich w oparciu o te umiejętności. W tym celu korzystam z bazy ofert pracy. W tej chwili kod działa w następujący sposób:
1) Przetwarzaj tekst każdej oferty pracy, aby wyodrębnić umiejętności wymienione w tej ofercie
2) Dla każdej kariery (np. „Analityk danych”) połącz przetworzony tekst ofert pracy dla tej kariery w jeden dokument
3) Oblicz TF-IDF każdej umiejętności w dokumentach kariery
Po tym nie jestem pewien, której metody powinienem użyć do oceny kariery na podstawie listy umiejętności użytkownika. Najpopularniejszą metodą, którą widziałem, byłoby traktowanie umiejętności użytkownika również jako dokumentu, a następnie obliczenie TF-IDF dla dokumentu umiejętności i użycie czegoś w rodzaju podobieństwa kosinusowego do obliczenia podobieństwa między dokumentem umiejętności a każdym z nich dokument kariery.
Nie wydaje mi się to idealnym rozwiązaniem, ponieważ podobieństwo cosinus jest najlepiej stosowane przy porównywaniu dwóch dokumentów tego samego formatu. W tym przypadku TF-IDF wcale nie wydaje się odpowiednią miarą do zastosowania na liście umiejętności użytkownika. Na przykład, jeśli użytkownik doda dodatkowe umiejętności do swojej listy, TF dla każdej umiejętności spadnie. W rzeczywistości nie obchodzi mnie częstotliwość umiejętności na liście umiejętności użytkownika - zależy mi tylko na tym, że mają one te umiejętności (i może na ile dobrze je znają).
Wydaje się, że lepszym miernikiem byłoby wykonanie następujących czynności:
1) Dla każdej umiejętności, którą posiada użytkownik, oblicz TF-IDF tej umiejętności w dokumentach kariery
2) Dla każdej kariery zsumuj wyniki TF-IDF dla wszystkich umiejętności użytkownika
3) Ranga kariery na podstawie powyższej sumy
Czy myślę tutaj w dobrym kierunku? Jeśli tak, to czy są jakieś algorytmy, które działają w tym kierunku, ale są bardziej wyrafinowane niż prosta suma? Dzięki za pomoc!