[Mahout In Action] RecommenderIntro demo in command lines

由于缺乏对maven和java工程的了解, RecommenderIntro demo折腾了很久才搞定. 其中参考了《Maven 权威指南》, Mahout Documents和网上一些资料. 感觉现有的一些例子讲的不是很清楚,  又或者是用eclipse. 

言归正传, 在跑这个 demo之前, 需要安装maven3.x, mahout-0.x, JDK1.5以上, 环境配置就不赘述了, 反正网上一搜一大堆.

建议在操作之前最好看一下《Maven权威指南》1-3章, 起码得知道Maven是什么, pom.xml用来干什么用的, 不然跟我一样, 碰一鼻子灰, 到头来还是得老老实实看书.

首先用maven插件archetype创建一个简单的maven工程

$ sudo mvn archetype:create -DgroupId=action.in.mahout -DartifactId=recommenderintro -Dversion=1.0-SNAPSHOT


这时候会生成目录recommenderintro, recommenderintro目录结构如图:



然后删除src/main/java/action/in/mahout/App.java, 同时在src/main/java/action/in/mahout目录下创建RecommenderIntro.java, 内容如下:


package action.in.mahout;

import org.apache.mahout.cf.taste.impl.model.file.*;
import org.apache.mahout.cf.taste.impl.neighborhood.*;
import org.apache.mahout.cf.taste.impl.recommender.*;
import org.apache.mahout.cf.taste.impl.similarity.*;
import org.apache.mahout.cf.taste.model.*;
import org.apache.mahout.cf.taste.neighborhood.*;
import org.apache.mahout.cf.taste.recommender.*;
import org.apache.mahout.cf.taste.similarity.*;

import java.io.*;
import java.util.*;

public class RecommenderIntro {
	public RecommenderIntro(){};
	
	public static void main (String args[])throws Exception{
               
		DataModel  model =new FileDataModel(new File("/tmp/intro.csv"));
		UserSimilarity similarity =new PearsonCorrelationSimilarity(model);
		UserNeighborhood neighborhood =new NearestNUserNeighborhood(2,similarity,model);
		Recommender recommender= new GenericUserBasedRecommender(model,neighborhood,similarity);
		List<RecommendedItem> recommendations =recommender.recommend(1, 2);
		for(RecommendedItem recommendation :recommendations){
			System.out.println(recommendation);
		}
		
	}
}

注意将数据文件intro.csv, 放到/tmp目录下。

向pom.xml中添加依赖关系:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>action.in.mahout</groupId>
  <artifactId>recommenderintro</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>recommenderintro</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
        <groupId>org.apache.mahout</groupId>
        <artifactId>mahout-core</artifactId>
        <version>0.8</version>
    </dependency>
  </dependencies>
</project>



编译安装工程

$ sudo mvn clean install


再然后就是运行demo了

$ sudo mvn exec:java -Dexec.mainClass=action.in.mahout.RecommenderIntro


结果如图所示:



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值