2017-01-02 3 views
3

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!

Répondre

1

La deuxième approche que vous avez expliquée fonctionnera. Mais il existe de meilleurs moyens de résoudre ce genre de problème. Au début, vous devriez en savoir un peu plus sur les modèles de langage et quitter le modèle de l'espace vectoriel. Dans la deuxième étape, basée sur votre type de problème similaire à la recherche/profilage expert, vous devez apprendre un cadre de modèle de langage de base pour mettre en œuvre une solution. Vous pouvez implémenter A language modeling framework for expert finding avec un peu de modifications afin que les formules puissent être adaptées à votre problème. Lire également On the assessment of expertise profiles vous donnera une meilleure compréhension du profilage expert avec le cadre ci-dessus. vous pouvez trouver quelques bonnes idées, ressources et projets sur la recherche d'experts/profilage au Balog's blog.

+0

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! –

+0

De rien;) – Alikbar