我正试图使用Mahout构建一个推荐引擎,该引擎仅根据项目间的相似性提供推荐,而不考虑用户偏好(即评分)。项目相似性由mahout外部的一些其他过程计算并保存到文件中。到目前为止,我已经确定我可以使用类:
GenericBooleanPrefItemBasedRecommender
选择项目,文档中说"当数据中不存在偏好值的概念时,适合使用"。然而,该类仍然将其作为输入:
(DataModel dataModel, ItemSimilarity similarity)
我知道我可以使用ItemSimilarity类来提供项目到项目的相似性值,但在这种情况下,我的数据模型是什么?我没有偏好,这似乎正是数据模型所代表的东西。我该如何解决这个问题,还是我看错了这里的东西?
以下是一个简单的代码,说明如何创建使用GenericBooleanPrefDataModel 的DataModel实例
DataModel model = new GenericBooleanPrefDataModel(GenericBooleanPrefDataModel.toDataMap(new FileDataModel(new File("YOUR_FILE_NAME"))));
然而,即使您有带有首选项值的数据模型,并且您有不使用此首选项值、ItemSimilarity的自定义实现,您也会得到所需的结果。
最佳,Dragan
只需使用GenericBooleanPrefDataModel。