J'ai travaillé sur un petit projet personnel qui prend les compétences professionnelles d'un utilisateur et suggère la carrière la plus idéale pour lui en fonction de ces compétences. J'utilise une base de données d'offres d'emploi pour y parvenir. À l'heure actuelle, le code fonctionne comme suit:Alternatives à TF-IDF et Cosine Similarité (comparant des documents avec différents formats)
1) traiter le texte de chaque annonce d'emploi pour extraire les compétences qui sont mentionnées dans la liste
2) Pour chaque carrière (par exemple, « Data Analyst »), combiner le texte traité des offres d'emploi pour cette carrière dans un document
3) Calculer la TF-IDF de chaque compétence dans les documents de carrière
Après cela, je ne suis pas sûr de la méthode que je devrais utiliser pour rang carrières basées sur une liste des compétences d'un utilisateur. La méthode la plus populaire que j'ai vu serait de traiter les compétences de l'utilisateur comme un document, puis de calculer le TF-IDF pour le document de compétence, et utiliser quelque chose comme la similarité de cosinus pour calculer la similarité entre le document de compétence et document de carrière. Cela ne me semble pas être la solution idéale, car la similarité de cosinus est la meilleure pour comparer deux documents de même format. Pour cette raison, TF-IDF ne semble pas être la métrique appropriée à appliquer à la liste de compétences de l'utilisateur. Par exemple, si un utilisateur ajoute des compétences supplémentaires à sa liste, le TF pour chaque compétence sera supprimé. En réalité, je ne m'inquiète pas de la fréquence des compétences dans la liste des compétences de l'utilisateur - je m'intéresse simplement à ce qu'ils aient ces compétences (et peut-être à quel point ils connaissent ces compétences).
Il semble comme une meilleure mesure serait de faire ce qui suit:
1) Pour chaque compétence que l'utilisateur a, calculer la TF-IDF de cette compétence dans les documents de carrière
2) Pour chaque carrière, la somme des résultats TF-IDF pour l'ensemble des compétences
3) carrière Rang de l'utilisateur en fonction de la somme ci-dessus
ce que je pense le long des lignes ici? Si oui, existe-t-il des algorithmes qui fonctionnent dans ce sens, mais sont plus sophistiqués qu'une simple somme? Merci pour l'aide!
Merci beaucoup pour les liens - en regardant brièvement sur eux, ils semblent être ce que je cherchais. J'ai upvoted votre solution, mais je n'ai pas assez de réputation pour qu'elle apparaisse. Merci encore! –
De rien;) – Alikbar