网页推荐系统

Raj*_*oni 5 recommendation-engine machine-learning mahout

我正在尝试建立一个推荐系统,根据他的行为向用户推荐网页(谷歌搜索,点击,他也可以明确评价网页).为了了解谷歌新闻的做法,它会在网络上显示有关特定主题的新闻文章.在技​​术方面,这是集群,但我的目标是相似的.它将基于用户的操作基于内容的推荐.

所以我的问题是:

  1. 我怎么可能在互联网上搜索相关的网页?
  2. 我应该使用什么算法从网页中提取数据是文本分析和单词频率唯一的方法呢?
  3. 最后,什么平台最适合这个问题.我听说过Apache mahout,它附带了一些可重复使用的算法,它听起来很合适吗?

小智 9

托马斯Jungblut说,人们可以对您的问题写了几本书;-)我会尽量给你短暂的指针列表 - 但要知道不会有现成的用现成的,现成的解决方案...

  1. 爬行互联网:有很多工具包可以做到这一点,比如Scrapy for Python,crawler4j和Heritrix for Java,或者WWW :: Robot for Perl.要从网页中提取实际内容,请查看samppipe.

    http://scrapy.org/

    http://crawler.archive.org/

    http://code.google.com/p/crawler4j/

    https://metacpan.org/module/WWW::Robot

    http://code.google.com/p/boilerpipe/

  2. 首先,通常您可以使用协同过滤而不是基于内容的方法.但是如果你想要有良好的覆盖率,特别是在长尾中,就无法分析文本.需要注意的一件事是主题建模,例如LDA.在Mallet,Apache Mahout和Vowpal Wabbit中实现了几种LDA方法.有关索引,搜索和文本处理,请查看Lucene.它是一款非常棒的,成熟的软件.

    http://mallet.cs.umass.edu/

    http://mahout.apache.org/

    http://hunch.net/~vw/

    http://lucene.apache.org/

  3. 除了Apache Mahout,它还包含LDA(见上文),聚类和文本处理之类的东西,如果你想专注于协同过滤,还有其他工具包可用:LensKit,也用Java实现,和MyMediaLite(免责声明:I是主要作者),它是用C#实现的,但也有一个Java端口.

    http://lenskit.grouplens.org/

    http://ismll.de/mymedialite

    https://github.com/jcnewell/MyMediaLiteJava