我现在正在开发一个文档推荐程序,目前有点卡住了。对于每个文档,我根据用户的行为分配了一个分数。然后,当一个新文档进来时,我需要预测用户会喜欢到什么程度,并根据它们的分数重新排序所有文档。我的解决方案是使用一个阈值将这些分数分为“推荐”和“不推荐”。然后,朴素贝叶斯或其他分类模型可以给我一个标签,或者返回该标签的可能性(我使用NLTK包进行文本分析)。我这样做对吗?我的问题是,当我得到那个可能性时,如何将其转换为我用来排序的分数?或者我应该使用scikit中的逻辑回归吗?谢谢!
回答:
我建议你尝试使用类似于SVM-Rank的算法。它接受一组“推荐”和“不推荐”的向量作为输入,然后学习如何对它们进行排序,使推荐的文档排在前面。dlib中有一个简单的Python工具可以用来实现这一点。这里有一个例子:http://dlib.net/svm_rank.py.html