`
backsnow
  • 浏览: 131958 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于LUCENE实现自己的推荐引擎(转)

阅读更多

1、常用推荐引擎算法问题

1)、相对成熟、完整、现成的开源解决方案较少

粗略分来,目前与数据挖掘及推荐引擎相关的开源项目主要有如下几类:

数据挖掘相关:主要包括WekaR-ProjectKnimeRapidMinerOrange

文本挖掘相关:主要包括OpenNLPLingPipeFreeLingGATE 等,具体可以参考LingPipe’s Competition

推荐引擎相关:主要包括Apache MahoutDuine frameworkSingular Value Decomposition (SVD) ,其他包可以参考Open Source Collaborative Filtering Written in Java

搜索引擎相关:Lucene、Solr、Sphinx、Hibernate Search等

2)、常用推荐引擎算法相对复杂,入门门槛较低

3)、常用推荐引擎算法性能较低,并不适合海量数据挖掘

以上这些包或算法,除了Lucene/Sor相对成熟外,大部分都还处于学术研究使用,并不能直接应用于互联网大规模的数据挖掘及推荐引擎引擎使用。

2、采用Lucene实现推荐引擎的优势

对很多众多的中小型网站而言,由于开发能力有限,如果有能够集成了搜索、推荐一体化的解决方案,这样的方案肯定大受欢迎。采用Lucene来实现推荐引擎具有如下优势:

1)、Lucene 入门门槛较低,大部分网站的站内搜索都采用了Lucene

2)、相对于协同过滤算法,Lucene性能较高

3)、Lucene对Text Mining、相似度计算等相关算法有很多现成方案

在开源的项目中,Mahout或者Duine Framework用于推荐引擎是相对完整的方案,尤其是Mahout 核心利用了Lucene,因此其架构很值得借鉴。只不过Mahout目前功能还不是很完整,直接用其实现电子商务网站的推荐引擎尚不是很成熟。只不过从Mahout实现可以看出采用Lucene实现推荐引擎是一种可行方案。

3、采用Lucene实现推荐引擎需要解决的核心问题

Lucene擅长Text Mining较为擅长,Lucene在contrib包中提供了MoreLikeThis功能,可以较为容易实现Content-Based的推荐,但对于涉及用户协同过滤行为的结果(所谓的Relevance Feedback),Lucene目前并没有好的解决方案。需要在Lucene中内容相似算法中加入用户协同过滤行为对因素,将用户协同过滤行为结果转化为Lucene所支持的模型。

4、推荐引擎的数据源

电子商务网站与推荐引擎相关典型的行为:

  • 购买本商品的顾客还买过
  • 浏览本商品的顾客还看过
  • 浏览更多类似商品
  • 喜欢此商品的人还喜欢
  • 用户对此商品的平均打分

因此基于Lucene实现推荐引擎主要要处理如下两大类的数据

1)、内容相似度

例如:商品名称、作者/译者/制造商、商品类别、简介、评论、用户标签、系统标签

2)、用户协同行为相似度

例如:打标签、购买商品、点击流、搜索、推荐、收藏、打分、写评论、问答、页面停留时间、所在群组等等

5、实现方案

5.1、内容相似度

基于Lucene MoreLikeThis实现即可。

5.1、对用户协同行为的处理

1)、用户每一次协同行为都使用lucene来进行索引,每次行为一条记录

2)、索引记录中包含如下重要信息:

商品名、商品id、商品类别、商品简介、标签等重要特征值、用户关联行为的其他商品的特征元素、商品缩略图地址、协同行为类型(购买、点击、收藏、评分等)、Boost值(各协同行为在setBoost时候的权重值)

3)、对评分、收藏、点击等协同行为以商品特征值(标签、标题、概要信息)来表征

4)、不同的协同行为类型(例如购买、评分、点击)设置不同的值setBoost

5)、搜索时候采用Lucene MoreLikeThis算法,将用户协同转化为内容相似度

以上方案只是基于Lucene来实现推荐引擎最为简单的实现方案,方案的准确度及细化方案以后再细说。

更为精细的实现,可以参考Mahout的算法实现来优化。

 

来源http://www.yeeach.com

分享到:
评论

相关推荐

    基于Lucene的全文检索引擎研究与应用

    ### 基于Lucene的全文检索引擎研究与应用 #### 一、Lucene概述 Lucene是一款由Java编写的全文检索引擎工具包,具备快速的索引访问速度,支持多用户访问,并且可以在多种平台上运行。随着数字信息量的爆炸性增长,...

    一个基于lucene制作的搜索引擎源码

    在这个基于Lucene的搜索引擎源码中,我们可以深入理解如何利用Lucene进行索引创建、查询以及热门关键词存储。 首先,我们从"建立引擎索引"这一环节开始。在Lucene中,建立索引的过程包括以下几个步骤: 1. 文档...

    lucene3.0.1.zip

    - **推荐系统**:结合用户行为数据,实现精准推荐。 5. **Lucene 3.0.1的局限与进阶** - **实时性**:Lucene的索引更新并非实时,需要定期或手动触发。 - **分布式**:虽然3.0.1版本不包含分布式支持,但可以...

    基于lucene新闻搜索毕业论文

    本文设计的新闻搜索系统就基于Lucene技术,旨在实现高效、精准的新闻检索功能。 系统首先运用Web爬虫技术,从各大新闻网站抓取重要新闻页面并存储到本地硬盘,这些网页构成了系统的原始数据源。接下来,系统对这些...

    基于Lucene的全文检索框架

    - **分布式搜索**:通过Solr或Elasticsearch等基于Lucene的高级搜索引擎,实现跨节点的分布式搜索,处理大规模数据。 - **缓存策略**:利用内存缓存提高查询速度,减少磁盘I/O。 - **性能调优**:调整索引和查询...

    基于Java的全文检索引擎Lucene的分析与研究

    - **Eclipse**:一个知名的Java开发平台,其帮助文档的全文索引功能就是基于Lucene实现的。 #### 五、Lucene的下载与配置 **1. 下载:** - 官方下载地址:http://jakarta.apache.org/Lucene/docs/index.html - ...

    8个基于Lucene的开源搜索引擎(推荐)

    基于Lucene的开源搜索引擎则是在Lucene基础上进行了扩展和封装,提供了更高级别的功能和服务,适用于各种场景和需求。 1. Apache Solr Apache Solr是基于Lucene的一个高性能、全功能的搜索服务器。它使用Java5及更...

    基于Lucene的社交软件工程系统的设计与实现.docx

    【基于Lucene的社交软件工程系统的设计与实现】 在当今社会,互联网技术的快速发展催生了各种新型社交方式,其中以虚拟社交为主导。传统的面对面交流已无法满足当代人的社交需求,尤其是年轻一代,他们更倾向于在线...

    Lucene全文搜索引擎的应用

    为解决这一问题,本文探讨了一种基于Lucene技术构建统一高校搜索引擎的方法。 #### Lucene概述 Lucene是一个高性能、全功能的文本搜索引擎库,被广泛应用于各种应用场景中。它能够高效地处理大量文本数据,支持...

    lucene+nutch搜索引擎(12章源码)

    Nutch是基于Lucene构建的开源网络爬虫项目,用于抓取、索引和搜索Web内容。Nutch的关键特性包括: 1. 网页抓取:通过分布式爬虫系统,Nutch能够高效地抓取大量网页。 2. URL存储与管理:使用URL数据库和分割策略,...

    Lucene全文检索框架+Solr搜索引擎(2018版.Java)

    Solr是基于Lucene构建的企业级搜索平台,提供了一套完整的搜索解决方案。Solr的优势在于其易用性、可扩展性和丰富的功能特性: 1. **Web服务接口**:Solr通过HTTP协议提供RESTful API,便于与其他系统集成,如Web...

    基于lucene4.3的知识图谱搜索引擎XunTa(一种用"知识点"来找人的搜人引擎).zip

     XunTa允许对每个人名下的数量无限制的关键词单独打分,从而实现基于“评价图谱”和“知识图谱”的好友匹配与信息推荐。 二.XunTa技术特点  1.在架构上内生地支持增量式实时搜索。  2.除达人搜索外,还提供...

    Lucene3.0特性,Lucene3.0特性

    ### Lucene 3.0 特性详析 #### 概述 Lucene 3.0,于2009年11月25日正式发布,...综上所述,Lucene 3.0不仅在技术架构上进行了重大革新,还在功能实现与性能优化上取得了显著进展,成为搜索引擎技术领域的一次飞跃。

    lucene,solr的使用

    Apache Solr是基于Lucene的高性能企业级搜索平台,也是目前最受欢迎的企业级搜索解决方案之一。相比Lucene,Solr提供了更丰富的功能集和更好的集群支持能力,适用于大规模数据的实时检索场景。 ##### 2.1 Solr的...

    apache下的lucene教程

    ### Apache Lucene教程知识点概述 #### 一、Apache Lucene简介 ...通过上述内容的学习,读者能够系统地掌握Lucene的基本原理、核心技术及应用场景,为进一步开发基于Lucene的搜索解决方案打下坚实的基础。

    lucene-5.4.0

    4.2 案例分析:分享基于Lucene 5.4.0的搜索引擎构建实例,例如新闻网站的全文搜索、电商产品的推荐系统等。 五、未来发展趋势 5.1 版本迭代:探讨Lucene后续版本的新特性,如6.x、7.x引入的创新技术。 5.2 社区...

    lucene2.0与其分词工具包

    对于新的项目,推荐使用最新版本的Lucene,以获得更好的性能和兼容性。然而,对于已有的项目或对旧版本有特定需求的应用,Lucene 2.0仍然可以作为一个可靠的解决方案。 总的来说,Lucene 2.0是Java全职搜索引擎的...

Global site tag (gtag.js) - Google Analytics