Java 基于内容的推荐引擎在eclipse上使用mahout

Java 基于内容的推荐引擎在eclipse上使用mahout,java,mahout,recommendation-engine,mahout-recommender,Java,Mahout,Recommendation Engine,Mahout Recommender,有关于在eclipse/java上使用Mahout制作基于内容的推荐系统的分步教程吗 我曾尝试与Mahout合作制作wokring,并能够制作一个协作系统,但我想尝试制作一个基于内容的系统,我读过关于制作自定义ItemSimilarity方法的文章,最近我发现了Mahout的RowSimilarityJob,我对使用mahout比较陌生,有人能帮我了解一下如何使用这个函数吗?实际上,itemSimilarity的工作是1)在旧的即将被弃用的Hadoop MapReduce代码中,2)以一种相当简

有关于在eclipse/java上使用Mahout制作基于内容的推荐系统的分步教程吗


我曾尝试与Mahout合作制作wokring,并能够制作一个协作系统,但我想尝试制作一个基于内容的系统,我读过关于制作自定义ItemSimilarity方法的文章,最近我发现了Mahout的RowSimilarityJob,我对使用mahout比较陌生,有人能帮我了解一下如何使用这个函数吗?

实际上,itemSimilarity的工作是1)在旧的即将被弃用的Hadoop MapReduce代码中,2)以一种相当简单的方式找到2个类似的文档。该作业有一个新的Spark版本,名为
Spark itemSimilarity
,其功能大致相同,但只支持相似性的LLR分数

除非你将它合并到一个更大更复杂的推荐程序中,否则我建议你只使用Elasticsearch或Solr按内容查找类似的项目。他们有非常灵活的更稳健的方法。在核心部分,他们都使用Lucene,这是一种卓越的knn引擎(k-最近邻),用于处理稀疏数据

KNN是您想要的algo类型,给定一个具有多个内容字段的项,哪些项最相似

Elasticsearch和Solr也有高性能和高度可扩展的服务器。此外,他们不需要不断的训练。只需为每个项目添加一个新文档,它们将以增量方式索引,因此查询结果最终将包括较新的文档,而无需培训步骤


但是要知道,如果你有正确的数据,基于内容的推荐很少能像协作过滤那样好。可以说,现代多模式CF推荐程序的最佳开源示例是Universal recommender(基于Mahout和Apache PredictionIO):

啊,那么RowSimilarityJob和ItemSimilarity在Hadoop的旧版本中?啊,那么RowSimilarityJob和ItemSimilarity在Hadoop的旧版本中?我更想做一个简单的,一般的想法是有食谱和它的成分,根据这些成分做一个推荐,我应该用jsut编码这个表单scratch,还是有一个我可以使用的库,我只和那些用评分作为相似性的推荐人玩过。谢谢你的回复。你需要的只是一个搜索引擎。执行所谓的“更像这样”查询,使用用户正在查看的配方作为查询。搜索引擎将返回最相似的配方。你可以通过允许人们点击一种配料,找到含有该配料的其他食谱,或者将结果倾斜到一些元数据中,如“沙漠vs主菜”,等等,来实现这一点。您必须学习如何查询“更像这样”或查询由成分过滤或由某些元数据增强的食谱,但您需要的一切都在Elasticsearch和Solr中。