Ejemplo n.º 1
0
 public function getIndex()
 {
     $visualizations = [];
     for ($i = 0; $i < 8; $i++) {
         $visualizations[] = \App\Visualization::all()[$i];
     }
     return view('user.userpreference', ['visualizations' => $visualizations]);
 }
Ejemplo n.º 2
0
 public function generateUserRating($visualizationid, $neighbors, $minVisRating)
 {
     $visualizationVectors = $this->generateVectors();
     $vectors = [];
     $vector = $visualizationVectors[$visualizationid - 1];
     for ($i = 1; $i <= count($visualizationVectors); $i++) {
         if (count(Visualization::all()[$i - 1]->users) >= $minVisRating) {
             $similaritem = (object) [];
             if ($i == $visualizationid) {
             } else {
                 $similaritem->similarity = $this->vectorSimilarity($vector, $visualizationVectors[$i]);
                 $similaritem->visualization = $i;
                 $vectors[] = $similaritem;
             }
         } else {
             // skip if the visualization does not have enough rating by the users
         }
     }
     // sort mapping
     usort($vectors, array("App\\Http\\Controllers\\RatingController", "compareSimilarity"));
     $similaritems = [];
     for ($i = 0; $i < $neighbors && $i < count($vectors); $i++) {
         $similaritems[] = $vectors[$i];
     }
     if (count($similaritems) === 0) {
         return null;
     } else {
         return $this->generatePrediction($similaritems, $visualizationVectors);
     }
 }