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