Ho lavorato su un piccolo progetto personale che prende le competenze lavorative di un utente e suggerisce la carriera più ideale per loro sulla base di tali competenze. Uso un database di elenchi di lavoro per raggiungere questo obiettivo. Al momento, il codice funziona come segue:
1) Elaborare il testo di ogni elenco di lavoro per estrarre le competenze menzionate nell'elenco
2) Per ogni carriera (ad es. "Analista dei dati"), combinare il testo elaborato delle liste di lavoro per quella carriera in un unico documento
3) Calcola il TF-IDF di ciascuna abilità all'interno dei documenti di carriera
Dopo questo, non sono sicuro quale metodo dovrei usare per classificare le carriere in base a un elenco delle competenze di un utente. Il metodo più popolare che ho visto sarebbe quello di trattare anche le competenze dell'utente come un documento, quindi di calcolare il TF-IDF per il documento di abilità e usare qualcosa come la somiglianza del coseno per calcolare la somiglianza tra il documento di abilità e ciascuno documento di carriera.
Questa non mi sembra la soluzione ideale, poiché la somiglianza del coseno è meglio usata quando si confrontano due documenti dello stesso formato. Del resto, TF-IDF non sembra affatto la metrica appropriata da applicare all'elenco delle competenze dell'utente. Ad esempio, se un utente aggiunge ulteriori competenze al proprio elenco, il TF per ciascuna abilità diminuirà. In realtà, non mi interessa quale sia la frequenza delle abilità nell'elenco delle abilità dell'utente - mi interessa solo che abbiano quelle abilità (e forse quanto bene conoscano quelle abilità).
Sembra che una metrica migliore sarebbe quella di fare quanto segue:
1) Per ogni abilità posseduta dall'utente, calcola il TF-IDF di tale competenza nei documenti di carriera
2) Per ogni carriera, sommare i risultati TF-IDF per tutte le abilità dell'utente
3) Classifica carriera basata sulla somma sopra
Sto pensando seguendo le linee giuste qui? In tal caso, esistono algoritmi che funzionano in questo senso, ma sono più sofisticati di una semplice somma? Grazie per l'aiuto!