PHP للتعلم الآلي: خرافة أم حقيقة؟
عندما يتعلق الأمر بالتعلم الآلي (ML)، فإن أول ما يتبادر إلى الذهن هو Python أو R أو Julia. يرتبط PHP تقليديًا بتطوير الويب والواجهة الخلفية. ومع ذلك، مع نمو النظام البيئي وظهور مكتبات متخصصة، بدأ PHP يطمح ليكون أداة لمهام التعلم الآلي، خاصة في سياق التكامل مع تطبيقات الويب الحالية. في هذه المقالة، سنناقش مدى ملاءمة PHP للتعلم الآلي، وما هي المكتبات الموجودة، وأين يكون استخدامه مبررًا، وأين لا.
المكتبات الرئيسية لـ PHP للتعلم الآلي
على الرغم من الصور النمطية، يمتلك PHP العديد من المكتبات الناضجة للتعلم الآلي. دعنا نستعرض ثلاث أدوات رئيسية.
Rubix ML
المكتبة الأقوى والأكثر حداثة. تدعم دورة التعلم الآلي الكاملة: من معالجة البيانات الأولية إلى التدريب وتصدير النماذج. تتضمن عشرات الخوارزميات: الانحدار، التصنيف، التجميع، الشبكات العصبية.
use Rubix\\ML\\Classifiers\\KNearestNeighbors;use Rubix\\ML\\Datasets\\Labeled;use Rubix\\ML\\Extractors\\CSV;
// تحميل البيانات من CSV$dataset = Labeled::fromIterator(new CSV('data.csv', true));
// إنشاء وتدريب النموذج$estimator = new KNearestNeighbors(3);$estimator->train($dataset);
// التنبؤ$prediction = $estimator->predict([5.1, 3.5, 1.4, 0.2]);echo "الفئة: $prediction";PHP-ML (PHP Machine Learning)
مكتبة أخف وزنًا، موجهة للمهام البسيطة. تدعم الانحدار، التصنيف، التجميع، والقواعد الترابطية.
use Phpml\\Classification\\NaiveBayes;use Phpml\\Dataset\\ArrayDataset;
$samples = [[1, 2], [2, 3], [3, 1], [4, 2]];$labels = ['a', 'a', 'b', 'b'];
$classifier = new NaiveBayes();$classifier->train($samples, $labels);
echo $classifier->predict([2, 2]); // 'a'TensorFlow PHP
غلاف لـ TensorFlow، يسمح بتحميل وتنفيذ النماذج المدربة مسبقًا. لا يدعم التدريب على PHP، ولكنه مثالي للاستدلال.
use TensorFlow\\Tensor;use TensorFlow\\Session;
$session = new Session();$model = $session->loadModel('model.pb');
$input = Tensor::fromArray([[0.5, 0.3]]);$output = $session->run(['output' => $model['output']], ['input' => $input]);
print_r($output);سيناريوهات الاستخدام العملي لـ PHP في التعلم الآلي
لن يحل PHP محل Python في علم البيانات، ولكن هناك مجالات يكون فيها أكثر ملاءمة.
1. دمج التعلم الآلي في تطبيقات الويب الحالية
إذا كان لديك بالفعل موقع على Laravel أو Symfony، فإن إضافة وظائف التعلم الآلي باستخدام PHP أسهل من إنشاء خدمة مصغرة منفصلة بلغة Python. على سبيل المثال، نظام توصيات لمتجر إلكتروني:
use Rubix\\ML\\PersistentModel;use Rubix\\ML\\Persisters\\FilePersister;
// تحميل النموذج المدرب$estimator = PersistentModel::load(new FilePersister('model.rbx'));
// الحصول على بيانات المستخدم الحالي$userFeatures = [$age, $gender, $avgOrderValue];$recommendedCategory = $estimator->predict($userFeatures);
echo "الفئة الموصى بها: $recommendedCategory";2. معالجة النصوص ومعالجة اللغة الطبيعية (NLP)
تحتوي PHP-ML على أدوات للعمل مع النصوص: TF-IDF، استخلاص الجذور، التصنيف. مثال لمرشح البريد العشوائي:
use Phpml\\FeatureExtraction\\TfIdfTransformer;use Phpml\\Tokenization\\WhitespaceTokenizer;
$samples = ['هدية مجانية', 'لقاء غداً', 'اشتر الآن'];$tokenizer = new WhitespaceTokenizer();$transformer = new TfIdfTransformer();
$vectorized = [];foreach ($samples as $text) { $vectorized[] = $tokenizer->tokenize($text);}$transformer->fit($vectorized);$transformer->transform($vectorized);3. التجميع والتقسيم البسيط
تقسيم العملاء إلى مجموعات بناءً على السلوك هو مهمة تسويقية شائعة. Rubix ML