私は、ユーザーの仕事のスキルを取り入れ、それらのスキルに基づいてユーザーにとって最も理想的なキャリアを提案する小さな個人的なプロジェクトに取り組んできました。これを実現するために、求人リストのデータベースを使用しています。現時点では、コードは次のように機能します。
1)各ジョブリストのテキストを処理して、リストに記載されているスキルを抽出する
2)各キャリア(「データアナリスト」など)について、そのキャリアの求人情報の処理済みテキストを1つのドキュメントに結合します
3)キャリア文書内の各スキルのTF-IDFを計算する
この後、ユーザーのスキルのリストに基づいてキャリアをランク付けするためにどの方法を使用する必要があるかわかりません。私が見た最も人気のある方法は、ユーザーのスキルをドキュメントとしても扱い、スキルドキュメントのTF-IDFを計算し、コサイン類似度などを使用してスキルドキュメントと各ドキュメントの類似度を計算することですキャリア文書。
同じ形式の2つのドキュメントを比較するときにコサインの類似性が最もよく使用されるため、これは私にとって理想的な解決策ではないようです。さらに言えば、TF-IDFはユーザーのスキルリストに適用するのに適切なメトリックとは思えません。たとえば、ユーザーがリストに追加のスキルを追加すると、各スキルのTFは低下します。実際には、スキルの頻度がユーザーのスキルリストにあるかどうかは気にしません。ユーザーがそれらのスキルを持っていることを気にしています(そして、それらのスキルをどれだけよく知っているかもしれません)。
より良い測定基準は次のようにすることです。
1)ユーザーが持っているスキルごとに、キャリア文書でそのスキルのTF-IDFを計算します
2)各キャリアについて、ユーザーのすべてのスキルのTF-IDF結果を合計します
3)上記の合計に基づいてキャリアをランク付けする
私はここで正しい線に沿って考えていますか?もしそうなら、これらの線に沿って機能するが、単純な合計よりも洗練されたアルゴリズムはありますか?助けてくれてありがとう!