我正在尝试推出一个基于主题的推荐系统来向用户建议相关的文本文档。针对基于主题的推荐系统的用户配置
我在wikipedia语料库上使用gensim训练了一种潜在语义索引模型。这使我可以轻松地将文档转换为LSI主题分发。我现在的想法是以同样的方式代表用户。但是,用户当然有阅读文章的历史,以及文章的评分。
所以我的问题是:如何表示用户?
我的想法如下:将用户表示为所有查看文档的聚合。但如何考虑评分?
任何想法?
谢谢
我正在尝试推出一个基于主题的推荐系统来向用户建议相关的文本文档。针对基于主题的推荐系统的用户配置
我在wikipedia语料库上使用gensim训练了一种潜在语义索引模型。这使我可以轻松地将文档转换为LSI主题分发。我现在的想法是以同样的方式代表用户。但是,用户当然有阅读文章的历史,以及文章的评分。
所以我的问题是:如何表示用户?
我的想法如下:将用户表示为所有查看文档的聚合。但如何考虑评分?
任何想法?
谢谢
我不认为这是与LSA合作。
但是你也许可以做某种类型的k-NN分类,其中每个用户的坐标是查看的文档。每个对象(=用户)发出辐射(强度与距离的平方成反比)。强度由单个文档的评分计算得出。
然后,您可以在此超维空间中放置一个对象(用户),并查看其他用户提供的最多“光线”。
但是:不能Apache Lucene为你做那整个东西? “
”代表一个用户作为所有查看的文档的集合“:如果您处于线性空间,这可能确实可行。您可以轻松将所有文档向量添加到一个大向量中。
如果您想添加评分,您可以简单地在总和中添加一个系数。
假设你将所有文件在一个向量D2中评为2,在D3等中评为3 ...然后你简单地定义一个用户向量为U = c2 * D2 + c3 * D3 + ... 你可以玩各种形式为c2,c3,但最简单的方法是简单乘以评分,并除以最大等级以归一化原因。
如果您的最大等级是5,您可以定义例如c2 = 2/5,c3 = 3/5 ...