This library is a PHP implementation of the collaborative filtering (CF).
composer require alejandro-yakovlev/cf-php
- PHP >= 8.2
<?php
use CFPHP\CollaborativeFiltering;
use CFPHP\RecommendationStrategy\UserBasedRecommendationStrategy;
use CFPHP\SimilarityStrategy\CosineSimilarityStrategy;
use CFPHP\User;
require_once __DIR__ . '/vendor/autoload.php';
$user1 = new User('user1', [
'item1' => 5,
'item2' => 5,
'item3' => 5,
]);
$user2 = new User('user2', [
'item1' => 4,
'item2' => 4,
'item3' => 4,
]);
$user3 = new User('user3', [
'item1' => 3,
'item2' => 3,
]);
$users = [
$user1,
$user2,
$user3,
];
$similarityStrategy = new CosineSimilarityStrategy();
$recommendationStrategy = new UserBasedRecommendationStrategy($users, $similarityStrategy);
$collaborativeFiltering = new CollaborativeFiltering($recommendationStrategy);
$recommendations = $collaborativeFiltering->getRecommendations('user3');
print_r($recommendations);
Output:
Array
(
[item3] => 4.5
)