public function getIndex() { $visualizations = []; for ($i = 0; $i < 8; $i++) { $visualizations[] = \App\Visualization::all()[$i]; } return view('user.userpreference', ['visualizations' => $visualizations]); }
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); } }