alejandro-yakovlev / cf-php
PHP implementation of the rating-based collaborative filtering.
v1.0.1
2024-01-08 06:04 UTC
Requires
- php: >=8.2
- markrogoyski/math-php: ^2.8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.46
- pestphp/pest: ^2.30
- phpstan/phpstan: ^1.10
This package is auto-updated.
Last update: 2025-03-08 08:36:31 UTC
README
Introduction
This library is a PHP implementation of the collaborative filtering (CF).
Setup
composer require alejandro-yakovlev/cf-php
Requirements
- PHP >= 8.2
Usage
<?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
)