我找到了几个关于如何创建我自己的非分布式推荐器的教程,但没有找到如何创建我自己的分布式推荐器工作的教程(如果你知道的话,欢迎任何链接)。
在“Mahout in Action”一书中,有一些如何使用 Mahout 的对象编写 Mappers/Reducers 的示例,但似乎没有说明如何将这些工作放在一起?
然而,mahout-core 中有 item/RecommenderJob,它给出了如何做到这一点的想法。我的实际意图是替换第一个映射器,这样我就不必在 mahout 之外准备我的数据(行看起来像“userid,itemid1,itemid2,itemid3 ...”并使用 item.RecommenderJob 我显然需要像“ itemid1,itemid2", "itemid1,itemid3", ...)。
现在复制 RecommenderJob 类并更改我需要的内容是个好主意吗?我已经尝试过了,但是因为这个类使用了包范围内的变量(例如 UserVectorSplitterMapper.USERS_FILE),所以我必须替换这些——这感觉不好。
我是否应该创建一个扩展 AbstractJob 的新类并从 RecommenderJob 中挑选出我需要的东西?那么 RecommenderJob 中我真正需要的元素是什么?