タグ付けされた質問 「cosine-distance」

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

1
Apache Sparkでコサイン類似度を計算する
特定の単語のIDFが計算されたDataFrameがあります。例えば (10,[0,1,2,3,4,5],[0.413734499590671,0.4244680552337798,0.4761400657781007, 1.4004620708967006,0.37876590175292424,0.48374466516332]) .... and so on クエリQを指定すると、このクエリのTF-IDFを計算できます。データフレーム内のすべてのドキュメントを含むクエリのコサイン類似度を計算するにはどうすればよいですか(100万のドキュメントに近い) ベクトルの乗算を使用して、map-reduceジョブで手動で実行できます コサイン類似度(Q、ドキュメント)=ドット積(Q、ドキュメント)/ || Q || * ||ドキュメント|| しかし確かにSpark MLはテキストのコサイン類似度の計算をネイティブでサポートする必要がありますか? 言い換えると、検索クエリが与えられた場合、DataFrameからドキュメントTF-IDFの最も近い余弦をどのように見つけるのですか?

2
コサイン類似度を見つけるときに非評価フィールドの値はどうあるべきか
私は非常に基本的な書籍推薦システムに取り組んでいます。コサイン類似度を見つけるときに、ユーザーによって評価されていないフィールドをどうするかを知りたいのですが、それらを無視して、評価されたフィールドのみで計算するか、0とマークする必要があります。 本書私は、次のAMは、それがユークリッドとピアソン相関の場合には、間違った解釈を与えるため、フィールドを除外すると言うが、コサイン類似度の場合には、それが0にすべての非定格のフィールドになります。 評価されていないフィールドをCosineについてのみ0にして他のフィールドを0にする必要がある理由、またはそれを行う別の方法がある理由を誰かが説明できますか?(ユークリッドとピアソンでフィールド0を作成すると出力にどのように影響するか知っていますが、コサインはわかりません)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.