@RequestMapping(value = "/", method = RequestMethod.POST) public ModelAndView process( @Valid RecommenderForm recommenderForm, HttpServletRequest request, ModelAndView mav, BindingResult result) throws IOException, TasteException { if (result.hasErrors()) { mav.setViewName("/"); return mav; } // 이웃은 int neighborhoodCount = recommenderForm.getNeighborhoodCount(); // 임계치 double trainingPercentage = recommenderForm.getTrainingPercentage(); // 파일로 데이터 모델 생성 DataModel dataModel = new FileDataModel( new File(request.getSession().getServletContext().getRealPath("resources/ua.base"))); mav.addObject("neighborhoodCount", neighborhoodCount); mav.addObject("trainingPercentage", trainingPercentage); // 각 알고리즘 별 평가치 mav.addObject( "euclideanDistanceSimilarity", recommenderService.getRecommenderScore( dataModel, new EuclideanDistanceSimilarity(dataModel), neighborhoodCount, trainingPercentage)); mav.addObject( "pearsonCorrelationSimilarity", recommenderService.getRecommenderScore( dataModel, new PearsonCorrelationSimilarity(dataModel), neighborhoodCount, trainingPercentage)); mav.addObject( "logLikelihoodSimilarity", recommenderService.getRecommenderScore( dataModel, new LogLikelihoodSimilarity(dataModel), neighborhoodCount, trainingPercentage)); mav.addObject( "tanimotoCoefficientSimilarity", recommenderService.getRecommenderScore( dataModel, new TanimotoCoefficientSimilarity(dataModel), neighborhoodCount, trainingPercentage)); mav.setViewName("home"); return mav; }
/** * Simply selects the home view to render by returning its name. * * @throws IOException * @throws TasteException */ @RequestMapping(value = "/", method = RequestMethod.GET) public ModelAndView home(HttpServletRequest request, ModelAndView mav) throws TasteException, IOException { RecommenderForm recommenderForm = new RecommenderForm(); recommenderForm.setNeighborhoodCount(3); recommenderForm.setTrainingPercentage(0.95); mav.addObject("recommenderForm", recommenderForm); mav.setViewName("home"); return mav; }