网页推荐系统

我正在尝试构建一个推荐系统,该系统会根据用户的行为(谷歌搜索、点击,用户还可以明确地对网页进行评分)向用户推荐网页。为了了解谷歌新闻是如何做的,它会显示关于特定主题的网络新闻文章。从技术上讲,这是聚类,但我目标相似。这将是基于用户行为的内容推荐。

所以我的问题是:

  1. 我如何可能遍历互联网来查找相关的网页?
  2. 我应该使用什么算法从网页中提取数据?文本分析和词频是唯一的方法吗?
  3. 最后,哪个平台最适合这个问题。我听说过Apache Mahout,它带有一些可重用的算法,这听起来像是一个好的选择吗?

回答:

正如Thomas Jungblut所说,关于你的问题可以写几本书;-)我会尽量给你一个简短的指南列表 – 但请注意,这里没有现成的解决方案…

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

    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. 除了包含LDA(见上文)、聚类和文本处理的Apache Mahout之外,如果你想专注于协同过滤,还有其他可用的工具包:LensKit,它也是用Java实现的,以及MyMediaLite(免责声明:我是主要作者),它是用C#实现的,但也有Java版本。

    http://lenskit.grouplens.org/

    http://ismll.de/mymedialite

    https://github.com/jcnewell/MyMediaLiteJava

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注