import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
import java.util.StringTokenizer;
import us.jubat.recommender.IdWithScore;
import us.jubat.recommender.RecommenderClient;

public class npb_similar_player {
	
	public void start() throws Exception {
		String host = "127.0.0.1";
		int port = 9199;
		String name = "test";	
		RecommenderClient client = new RecommenderClient(host, port, name, 1);
	 
		 try {
		      File csv = new File("dat/baseball.csv"); 
		      BufferedReader br = new BufferedReader(new FileReader(csv));
		      // 最終行まで読み込む
		      String line = "";
		      while ((line = br.readLine()) != null) {
		    	  int i=0;
		    	  String tmp[]=new String[20];
		    	  StringTokenizer st = new StringTokenizer(line, ",");
		    	  while (st.hasMoreTokens()) {
		        	 tmp[i++]=st.nextToken();
		        	 }
		    	  	//トップ３をだすためには、４人とってこなければならない   
		    	  	List<IdWithScore> sr = client.similarRowFromId(tmp[0],4);
		        	System.out.print("\"player\""+tmp[0]+" is similar to");
		        	for(int k=1;k<4;k++){
		        		System.out.print(" "+sr.get(k).id);
		        	}
		        	System.out.println();
		         }
		      br.close();
		    } catch (FileNotFoundException e) {
		      // Fileオブジェクト生成時の例外捕捉
		      e.printStackTrace();
		    } catch (IOException e) {
		      // BufferedReaderオブジェクトのクローズ時の例外捕捉
		      e.printStackTrace();
		    }
	}
	
	public static void main(String[] args) throws Exception {
		new npb_similar_player().start();
		System.exit(0);
	}
	
}
