dev-master
9999999-devOpenCF - an Item-based Collaborative Filtering Engine.
MIT
The Requires
- php >=5.6
The Development Requires
by The Simple Designers
recommendation recommender collaborative filtering
OpenCF - an Item-based Collaborative Filtering Engine.
PHP implementation of the (Weighted Slopeone,Cosine, Weighted Cosine) rating-based collaborative filtering schemes., (*2)
To learn all about it, head over to the extensive documentation., (*3)
OpenCF Package requires PHP 7.4
or higher., (*4)
INFO: If you are using an older version of php this package will not function correctly., (*5)
The supported way of installing OpenCF
package is via Composer., (*6)
composer require phpjuice/opencf
OpenCF Package is designed to be very simple and straightforward to use. All you have to do is:, (*7)
The OpenCF
recommender service is created by direct instantiation:, (*8)
use OpenCF\RecommenderService; // Create an instance $recommenderService = new RecommenderService($dataset);
Adding a dataset to the recommender can be done using the constructor or can be easily done by providing an array of
users ratings via the setDataset()
method:, (*9)
$dataset = [ "squid" => [ "user1" => 1, "user2" => 1, "user3" => 0.2, ], "cuttlefish" => [ "user1" => 0.5, "user3" => 0.4, "user4" => 0.9, ], "octopus" => [ "user1" => 0.2, "user2" => 0.5, "user3" => 1, "user4" => 0.4, ], "nautilus" => [ "user2" => 0.2, "user3" => 0.4, "user4" => 0.5, ], ]; $recommenderService->setDataset($dataset);
All you have to do to predict ratings for a new user is to retrieve an engine from the recommender service and & run
the predict()
method., (*10)
// Get a recommender $recommender = $recommenderService->cosine(); // Cosine recommender // OR $recommender = $recommenderService->weightedCosine(); // WeightedCosine recommender // OR $recommender = $recommenderService->weightedSlopeone(); // WeightedSlopeone recommender // Predict future ratings $results = $recommender->predict([ "squid" => 0.4 ]);
This should produce the following results when using WeightedSlopeone
recommender, (*11)
[ "cuttlefish" => 0.25, "octopus" => 0.23, "nautilus" => 0.1 ];
you can easily run tests using composer, (*12)
composer test
Please see the changelog for more information on what has changed recently., (*13)
Please see CONTRIBUTING.md for details and a todo list., (*14)
If you discover any security related issues, please email author instead of using the issue tracker., (*15)
We use SemVer for versioning. For the versions available, see the tags on this repository., (*16)
license. Please see the Licence for more information., (*17)
OpenCF - an Item-based Collaborative Filtering Engine.
MIT
recommendation recommender collaborative filtering