Pre-computa la matrice profilo professionale per il matching
Source:R/match_professions.R
match_professions_prepare.RdPrepara l'oggetto riusabile contenente la matrice sparsa
competenze x professioni (M) e la sua versione L2-normalizzata
(M_norm), insieme ai conteggi e all'universo di skill e professioni.
L'oggetto puo' essere riutilizzato da match_professions_score() su
query diverse senza ripagare il costo della costruzione del profilo,
che dipende solo dalle tabelle postings e skills_long.
Usage
match_professions_prepare(
postings,
skills_long,
basis = c("coverage", "tfidf", "rca"),
min_postings = 30L
)Arguments
- postings
data.tablecon almeno le colonnegeneral_ideidesco_level_4. Tipicamente ottenuto daread_oja_itaposts(con)$postings:itaposts::oja_postings()da sola non esponeidesco_level_4.- skills_long
data.tablein formato lungo con almeno le colonnegeneral_ideidescoskill_level_3. Una riga per coppia (annuncio, competenza). Tipicamente ottenuto daread_oja_itaposts(con)$skills.- basis
Base del profilo professionale:
"coverage"(default),"tfidf"oppure"rca".- min_postings
Numero minimo di annunci per professione necessari per ritenere stabile il profilo. Le professioni sotto soglia vengono scartate prima del calcolo. Default
30L.
Value
Una list con classe "match_professions_prep" e i seguenti
elementi:
MdgCMatrixsparsa skill x professione con i valori grezzi del profilo nella base scelta (pre-normalizzazione).M_normdgCMatrixsparsa con le colonne diMdivise per la propria norma L2. Le colonne con norma nulla vengono scartate.col_normsVettore numerico delle norme L2 delle colonne di
M, con nomi pari acolnames(M).universe_skillsCharacter con
rownames(M).universe_profsCharacter con
colnames(M)(post-scarto delle colonne a norma nulla).countsdata.tableconidesco_level_4,idescoskill_level_3,n_ps,N_p,value(dipendente dalla base) ecoverage_ps(sempre presente; usata damatch_professions_score()permean_coverageehit_ratio).n_per_profdata.tableconidesco_level_4eN_p(numero di annunci per professione, dopo filtromin_postings).basisLa base risolta.
min_postingsLa soglia applicata.
Se nessuna professione supera min_postings, oppure se la giunzione
postings-skills_long e' vuota, viene restituito un oggetto con la
medesima struttura ma con M, M_norm, counts e universe_*
vuoti. match_professions_score() gestisce questo caso restituendo
tabelle vuote ma tipizzate.
Details
Per la semantica delle basi (coverage, tfidf, rca) si veda
match_professions().
See also
match_professions_score() per il calcolo della distanza a
partire da un prep, match_professions() per il wrapper end-to-end.
Examples
if (FALSE) { # \dontrun{
con <- itaposts::oja_connect()
on.exit(itaposts::oja_disconnect(con), add = TRUE)
ojv <- skillviz::read_oja_itaposts(con)
# prepara una sola volta, riusa per molte query
prep <- skillviz::match_professions_prepare(
postings = ojv$postings,
skills_long = ojv$skills,
basis = "coverage"
)
res1 <- skillviz::match_professions_score(prep, c("S1.4.1", "S4.8.1"))
res2 <- skillviz::match_professions_score(prep, c("S2.1.3"))
} # }