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
Wallogit.com
2017 © Pedro Peláez
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