我正在尝试构建一个推荐系统,根据用户的行为(谷歌搜索、点击或对网页进行评分)来向用户推荐相应的网页。要了解谷歌新闻的工作方式,它是基于某个主题展示从网络上获取到的新闻文章。技术上说这被称为聚类,但我的目标类似。它将基于用户的行为进行基于内容的推荐。
所以我的问题是:
- 我如何可能搜索互联网找到相关的网页?
- 应该使用什么算法从网页中提取数据,文本分析和词频是否是唯一的方法?
- 最后,哪个平台最适合这个问题。我听说过Apache Mahout,并且它带有一些可重复使用的算法,它是否合适?
我正在尝试构建一个推荐系统,根据用户的行为(谷歌搜索、点击或对网页进行评分)来向用户推荐相应的网页。要了解谷歌新闻的工作方式,它是基于某个主题展示从网络上获取到的新闻文章。技术上说这被称为聚类,但我的目标类似。它将基于用户的行为进行基于内容的推荐。
所以我的问题是:
正如Thomas Jungblut所说,你的问题可以写出几本书;-) 我会尝试给您提供一个简短的指南清单 - 但请注意,没有现成的解决方案...
爬取互联网:有很多工具包可以做到这一点,比如Python的Scrapy、Java的crawler4j和Heritrix,或者Perl的WWW::Robot。要从网页中提取实际内容,可以看看boilerpipe。
http://code.google.com/p/crawler4j/
首先,通常您可以使用协作过滤而不是基于内容的方法。但如果您想在长尾中获得良好的覆盖率,就必须分析文本。一件值得关注的事情是主题建模,例如LDA。Mallet、Apache Mahout和Vowpal Wabbit实现了几种LDA方法。 对于索引、搜索和文本处理,请查看Lucene。这是一个很棒、成熟的软件。