PHP للتعلم الآلي: الإمكانيات والقيود في الممارسة العملية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

PHP للتعلم الآلي: خرافة أم حقيقة؟

\n\n

اعتاد العديد من المطورين على الاعتقاد بأن التعلم الآلي هو حكر على Python أو R أو Julia. ومع ذلك، في الممارسة العملية، يمكن استخدام PHP، على الرغم من سمعته كلغة "ويب"، لحل مشاكل التعلم الآلي، خاصة في سياق التكامل مع تطبيقات الويب الحالية. في هذه المقالة، سنحلل الإمكانيات الحقيقية لـ PHP في التعلم الآلي، ونعرض أمثلة على الكود باستخدام المكتبات الشائعة، ونتحدث بصراحة عن القيود.

\n\n

المكتبات الرئيسية للتعلم الآلي في PHP

\n\n

النظام البيئي لـ PHP للتعلم الآلي ليس غنياً مثل نظام Python، لكن العديد من المكتبات الناضجة تستحق الاهتمام.

\n\n

PHP-ML (php-ml/php-ml)

\n

هذه هي المكتبة الأكثر شيوعاً للتعلم الآلي في PHP. توفر خوارزميات كلاسيكية: التصنيف، الانحدار، التجميع، القواعد الترابطية، وحتى الشبكات العصبية.

\n\n
require_once __DIR__ . '/vendor/autoload.php';\n\nuse Phpml\\Classification\\KNearestNeighbors;\nuse Phpml\\Dataset\\ArrayDataset;\nuse Phpml\\Metric\\Accuracy;\n\n// بيانات التدريب: [الطول، العرض] -> التصنيف (0 - قطة، 1 - كلب)\n$samples = [[1, 2], [2, 3], [3, 4], [5, 6], [6, 7], [7, 8]];\n$labels = [0, 0, 0, 1, 1, 1];\n\n$classifier = new KNearestNeighbors($k = 3);\n$classifier->train($samples, $labels);\n\n// التنبؤ لعينة جديدة\n$prediction = $classifier->predict([4, 5]);\necho "التصنيف المتوقع: " . ($prediction == 0 ? "قطة" : "كلب") . PHP_EOL;\n\n// تقييم الدقة\n$testSamples = [[2.5, 3.5], [6.5, 7.5]];\n$testLabels = [0, 1];\n$predictions = $classifier->predict($testSamples);\n$accuracy = Accuracy::score($testLabels, $predictions);\necho "الدقة: " . ($accuracy * 100) . "%" . PHP_EOL;\n
\n\n

Rubix ML (rubix/ml)

\n

مكتبة أكثر حداثة وتقدماً مع دعم التعلم العميق، الشبكات العصبية، طرق التجميع، وخطوط أنابيب البيانات. على عكس PHP-ML، فإن Rubix ML قيد التطوير النشط ولديه وثائق على مستوى المؤسسات.

\n\n
require_once __DIR__ . '/vendor/autoload.php';\n\nuse Rubix\\ML\\Classifiers\\KNearestNeighbors;\nuse Rubix\\ML\\Datasets\\Labeled;\nuse Rubix\\ML\\CrossValidation\\Reports\\AggregateReport;\nuse Rubix\\ML\\CrossValidation\\Reports\\ConfusionMatrix;\nuse Rubix\\ML\\CrossValidation\\Reports\\MulticlassBreakdown;\n\n// إنشاء مجموعة بيانات\n$samples = [\n    [1.2, 2.3, 0.8],\n    [3.4, 5.6, 1.2],\n    [7.8, 9.0, 3.4],\n    [2.1, 4.3, 1.5],\n];\n$labels = ['A', 'B', 'A', 'B'];\n\n$dataset = new Labeled($samples, $labels);\n\n// تدريب المصنف\n$estimator = new KNearestNeighbors(3);\n$estimator->train($dataset);\n\n// التنبؤ\n$predictions = $estimator->predict([\n    [2.0, 3.0, 1.0],\n    [6.0, 8.0, 2.5],\n]);\n\necho "التوقعات: " . implode(', ', $predictions) . PHP_EOL;\n\n// التقييم\n$report = new AggregateReport([\n    new MulticlassBreakdown(),\n    new ConfusionMatrix(),\n]);\n$results = $report->generate($predictions, ['A', 'B']);\nprint_r($results);\n
\n\n

الإمكانيات العملية لـ PHP للتعلم الآلي

\n\n

في الممارسة العملية، يمكن أن يكون PHP مفيداً في السيناريوهات التالية:

\n\n
    \n
  • دمج التعلم الآلي في تطبيقات الويب الحالية — إذا كان لديك بالفعل موقع على Laravel أو Symfony، يمكنك إضافة نماذج تصنيف أو انحدار بسيطة دون إعادة كتابة الواجهة الخلفية.
  • \n
  • معالجة النصوص البسيطة — تحليل المشاعر، مرشحات البريد العشوائي، تصنيف الأخبار.
  • \n
  • أنظمة التوصية — التصفية التعاونية بناءً على بيانات المشتريات أو المشاهدات.
  • \n
  • الكشف عن الحالات الشاذة والمراقبة — اكتشاف السلوك غير المعتاد للمستخدمين في الوقت الفعلي.
  • \n
\n\n

مثال لمرشح بريد عشوائي بسيط باستخدام PHP-ML:

\n\n
use Phpml\\Classification\\NaiveBayes;\nuse Phpml\\FeatureExtraction\\TfIdfTransformer;\nuse Phpml\\Tokenization\\WhitespaceTokenizer;\nuse Phpml\\FeatureExtraction\\                

المدونات

توصيات الكتب