Bir kullanıcının iş becerilerini alan ve bu becerilere dayanarak onlar için en ideal kariyeri öneren küçük, kişisel bir proje üzerinde çalışıyorum. Bunu başarmak için bir iş listesi veri tabanı kullanıyorum. Şu anda, kod aşağıdaki gibi çalışır:
1) Listede belirtilen becerileri elde etmek için her iş listesinin metnini işleyin
2) Her kariyer için (örn. "Veri Analisti"), o kariyer için iş listelerinin işlenmiş metnini tek bir belgede birleştirin
3) Kariyer belgelerindeki her bir becerinin TF-IDF'sini hesaplayın
Bundan sonra, kariyerleri bir kullanıcının becerilerinin listesine göre sıralamak için hangi yöntemi kullanmam gerektiğinden emin değilim. Gördüğüm en popüler yöntem, kullanıcının becerilerini bir belge olarak ele almak, daha sonra beceri belgesi için TF-IDF'yi hesaplamak ve beceri belgesi ile her biri arasındaki benzerliği hesaplamak için kosinüs benzerliği gibi bir şey kullanmak olacaktır. kariyer belgesi.
Kosinüs benzerliği en iyi aynı formattaki iki belgeyi karşılaştırırken kullanıldığından, bu benim için ideal bir çözüm gibi görünmüyor. Bu nedenle, TF-IDF, kullanıcının beceri listesine uygulanacak uygun metrik gibi görünmemektedir. Örneğin, bir kullanıcı listesine ek beceriler eklerse, her bir beceri için TF düşer. Gerçekte, kullanıcının beceri listesindeki becerilerin sıklığının ne olduğunu umursamıyorum - sadece bu becerilere sahip olmalarını umuyorum (ve belki de bu becerileri ne kadar iyi bildiklerini).
Daha iyi bir metrik aşağıdakileri yapmak gibi görünüyor:
1) Kullanıcının sahip olduğu her beceri için, bu becerinin TF-IDF'sini kariyer belgelerinde hesaplayın
2) Her kariyer için, kullanıcının tüm becerileri için TF-IDF sonuçlarını toplayın
3) Yukarıdaki kariyere göre sıralama kariyeri
Burada doğru çizgileri mi düşünüyorum? Öyleyse, bu çizgiler boyunca çalışan, ancak basit bir toplamdan daha karmaşık olan herhangi bir algoritma var mı? Yardım için teşekkürler!