كيفية تفعيل وتكوين وحدة SCWS PHP في ServBay
ServBay هو بيئة تطوير ويب محلية قوية مصممة خصيصًا لنظام macOS، ويأتي مدمجًا مع العديد من بيئات تشغيل اللغات مثل PHP وNode.js وPython وGo وJava، بالإضافة إلى قواعد بيانات مثل MySQL وPostgreSQL وMongoDB وRedis، ويدعم خوادم الويب مثل Caddy وNginx. للمطورين الذين يحتاجون إلى معالجة نصوص صينية ضمن تطبيقاتهم بلغة PHP، يوفر ServBay وحدة تقطيع الكلمات الصينية SCWS (Simple Chinese Word Segmentation) عالية الكفاءة مع تفعيل سهل للغاية.
تتناول هذه المقالة بالتفصيل كيفية تفعيل امتداد SCWS لـ PHP داخل ServBay، وتكوين ملفات القاموس، بالإضافة إلى أمثلة برمجية لاستخدامه الأساسي.
لمحة عن وحدة SCWS
SCWS هو محرك مفتوح المصدر لتقطيع الكلمات الصينية، وهو معروف بأداء عالي ودقة كبيرة. يعتمد SCWS على الجمع بين مطابقة القاموس ونماذج إحصائية، مما يجعله قادرًا على معالجة النصوص الصينية بسرعة ودقة، وهو مثالي لبناء محركات البحث الصينية، التنقيب عن النصوص، التحليل، استخراج الكلمات المفتاحية، والتوسيم النحوي.
الميزات الرئيسية
- أداء عالي: يستخدم SCWS خوارزميات متطورة لمعالجة كميات كبيرة من البيانات النصية الصينية بكفاءة.
- دقة مرتفعة: من خلال الدمج بين القاموس والنماذج الإحصائية، يحقق SCWS نتائج دقيقة جدًا في تقطيع الكلمات.
- خصائص غنية: يدعم استخراج الكلمات المفتاحية والتوسيم النحوي والميزات المتقدمة بجانب التقطيع الأساسي.
- سهولة التكامل: يقدم واجهة برمجة تطبيقات API بسيطة يمكن دمجها بسهولة في تطبيقات PHP.
- مفتوح المصدر ومجاني: يمكن استخدام SCWS مجانًا ويمكن تعديله حسب الحاجة.
إصدار SCWS المدمج في ServBay
يدعم ServBay عدة إصدارات من PHP، ولكل إصدار يأتي بوحدة SCWS مدمجة. حتى تاريخ كتابة هذا الدليل، توفر ServBay امتداد SCWS 1.2.3 مسبقًا لجميع إصدارات PHP من 5.6 إلى 8.4.
كيفية تفعيل وحدة SCWS
افتراضيًا، تكون وحدة SCWS معطّلة في ServBay. لتفعيلها، يمكنك اتباع أحد طريقتين أساسيتين: إما عبر واجهة ServBay الرسومية أو بتعديل ملف الإعدادات يدويًا.
الطريقة المفضلة: التفعيل عبر واجهة ServBay الرسومية
هذه هي الطريقة الأسرع والأسهل:
- افتح الواجهة الرئيسية لـ ServBay.
- من شريط التنقل الأيسر، انقر على اللغات (Languages) ثم اختر PHP.
- في قائمة إصدارات PHP، ابحث عن الإصدار الذي تريد تفعيل SCWS له (مثلاً،
PHP 8.4
). - انقر على زر الامتدادات (Extensions) بجوار إصدار PHP المختار.
- في قائمة الامتدادات المنبثقة، ابحث عن وحدة
SCWS
. - قم بتبديل المفتاح بجوار
SCWS
إلى وضع التشغيل (عادة يتغير لونه إلى الأخضر). - اضغط على زر حفظ (Save) في أسفل النافذة.
- سيطلب منك ServBay إعادة تشغيل حزمة PHP لتطبيق التغييرات. انقر على زر إعادة التشغيل (Restart).
بعد هذه الخطوات، سيتم تفعيل وحدة SCWS للإصدار الذي اخترته من PHP.
التفعيل اليدوي عبر تعديل ملف الإعدادات (للمستخدمين المتقدمين أو عند الحاجة للاستكشاف)
للمزيد من التحكم أو عند استكشاف مشاكل التفعيل، يمكن تعديل إعدادات PHP يدويًا:
تحديد موقع ملف الإعدادات: ابحث عن مجلد
conf.d
الخاص بإصدار PHP المقصود. عادةً، توجد إعدادات SCWS في ملفscws.ini
الموجود بالمسار التالي:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1استبدل
X.Y
برقم إصدار PHP المناسب لديك، مثل8.4
.تعديل ملف
scws.ini
: افتح الملف بواسطة محرر نصوص وابحث عن التالي:ini[scws] ; Uncomment the following line to enable scws ;extension = scws.so ;scws.default.charset = gbk ;scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5أزل علامة التعليق (
;
في بداية السطر) من أمام السطر الخاص بـextension = scws.so
ليصبح:ini[scws] ; Uncomment the following line to enable scws extension = scws.so ;scws.default.charset = gbk ;scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5(اختياري) يمكنك ضبط الترميز الافتراضي ومسار القاموس هنا، لكن ينصح عادة بضبط هذه الإعدادات من خلال كود PHP مباشرة لمزيد من المرونة. إذا أردت الإعداد من هنا، قم بإزالة التعليق وتعديل القيم مثلًا إذا كان القاموس بترميز UTF-8:
ini[scws] ; Uncomment the following line to enable scws extension = scws.so scws.default.charset = utf8 scws.default.fpath = /Applications/ServBay/etc/scws
1
2
3
4
5احفظ التغييرات وأغلق الملف.
إعادة تشغيل حزمة PHP: من الواجهة الرئيسية لـ ServBay، اذهب إلى الحزم (Packages) وابحث عن إصدار PHP الذي عدلت إعداداته (مثلاً PHP 8.4)، ثم انقر زر إعادة التشغيل (عادةً يكون أيقونة سهم دائري).
التحقق من تحميل امتداد SCWS بنجاح
يُنصح دائماً بالتحقق من أن الامتداد قد تم تحميله بنجاح بعد تفعيله. الطريقة الشائعة لفعل ذلك هي باستخدام دالة phpinfo()
الخاصة بـPHP:
- أنشئ مجلد فرعي جديد بغرض الاختبار ضمن الدليل الجذري الافتراضي للمواقع في ServBay:
/Applications/ServBay/www
(مثلاً،scws-test
). - أنشئ ملفًا باسم
phpinfo.php
ضمن المجلد/Applications/ServBay/www/scws-test
. - الصق الكود التالي في الملف:php
<?php phpinfo(); ?>
1
2
3 - تأكد من أن خادم الويب لديك (Caddy أو Nginx) مفعل وموجه للمجلد الصحيح. يعين ServBay بشكل افتراضي النطاق
servbay.demo
إلى/Applications/ServBay/www
. - افتح متصفح الإنترنت وزر
https://servbay.demo/scws-test/phpinfo.php
. - ابحث في صفحة PHP المعروضة عن قسم باسم "SCWS". إذا وجدت معلومات الإعداد والإصدار الخاصة بالوحدة، فهي مفعلة بنجاح.
(ملاحظة: المسار في الصورة توضيحي، يرجى مراجعة توثيق ServBay الرسمي لمسارات وصور أحدث)
إنشاء وتكوين قاموس SCWS
يعتمد أداء SCWS بشكل كبير على القاموس المستخدم، لذا يوفر ServBay قاموسًا افتراضيًّا وقواعد جاهزة، عادةً بالمسار /Applications/ServBay/etc/scws
. كما يمكنك إنشاء أو استعمال قواميسك الخاصة.
صيغة ملف القاموس لـ SCWS
يدعم SCWS ملف القاموس العادي (نص صريح) أو الملف الثنائي بصيغة xdb (الأكثر كفاءة في التحميل واستهلاك الذاكرة).
صيغة القاموس العادي:
كلمة1 [تكرار1] [نوع1]
كلمة2 [تكرار2] [نوع2]
...
1
2
3
2
3
مثال:
الذكاء الاصطناعي 1000 n
معالجة اللغة الطبيعية 800 n
ServBay 500 nz
1
2
3
2
3
احفظ الكلمات التي تريدها في ملف نصي (مثلاً my_dict.txt
) مع التأكد أن الترميز متوافق مع ما تريده للاستخدام (ينصح بـ UTF-8).
توليد ملف قاموس بصيغة xdb
يتوفر ضمن ServBay أداة SCWS المسماة scws-gen-dict
لتحويل ملفات القواميس النصية إلى xdb.
- افتح تطبيق Terminal في macOS.
- استخدم الأمر التالي لتوليد القاموس:bashاستبدل
/Applications/ServBay/bin/scws-gen-dict -i /path/to/your/my_dict.txt -o /Applications/ServBay/etc/scws/my_dict.utf8.xdb -c utf8
1/path/to/your/my_dict.txt
بمسار ملف القاموس النصي الفعلي لديك. حدد مسار الإخراج بالوسم-o
(يفضل وضعه في/Applications/ServBay/etc/scws
). استخدم-c utf8
لتعريف الترميز.
تعيين ملف القاموس في SCWS
بعد إنشاء ملف xdb، يمكنك تعريفه ضمن كود PHP بالشكل التالي:
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // عيّن الترميز بما يتوافق مع القاموس
// عيّن المسار الرئيسي للقاموس: القاموس الرسمي أو القاموس الذي أنشأته
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// لإضافة المزيد من القواميس، يمكنك استخدام إضافة قاموس
$scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT); // SCWS_XDICT_TXT يمثل قاموس المستخدم
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // تعيين ملف القواعد للنحو، ملف افتراضي مدمج
// ... عمليات تقطيع لاحقة ...
?>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
الدالة set_dict()
تعيّن القاموس الرئيسي، وadd_dict()
لإضافة قواميس مخصصة. رمز SCWS_XDICT_TXT يعني إضافة قاموس خاص إضافي.
مثال على استخدام SCWS
بعد تفعيل وحدة SCWS وتحديد القاموس، يمكنك استدعاء وظائف SCWS مباشرة من كود PHP. فيما يلي مثال عملي بسيط:
php
<?php
// التحقق من تمديد SCWS محمّل
if (!extension_loaded('scws')) {
die('امتداد SCWS غير مُحمل.');
}
// تهيئة كائن SCWS
$scws = scws_new();
if (!$scws) {
die('فشل في تهيئة SCWS.');
}
// ضبط الترميز (يجب أن يتوافق مع النص والقاموس)
$scws->set_charset('utf8');
// تعيين ملف القاموس الرئيسي (المسار الافتراضي ضمن ServBay)
// set_dict() لتحديد القاموس الرئيسي
$scws->set_dict('/Applications/ServBay/etc/scws/dict.utf8.xdb');
// add_dict() لإضافة قاموس مخصص إذا وجد
// $scws->add_dict('/Applications/ServBay/etc/scws/my_dict.utf8.xdb', SCWS_XDICT_TXT);
// تعيين ملف القواعد (path افتراضي في ServBay) للسِمات النحوية وغير ذلك
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// خيارات أنماط التقطيع (اختياري، الوضع الافتراضي هو SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: تقسيم الحروف غير الصينية (كـ email, url ...)
// SCWS_XDICT_DUALITY: تقطيع ثنائي مركب
// $scws->set_ignore(true); // هل يتم تجاهل علامات الترقيم؟
// $scws->set_multi(SCWS_MULTI_WORD | SCWS_MULTI_ZHONGCI); // درجة التقطيع المركب
// النص الصيني المراد تقطيعه
$text = "ServBay هو بيئة تطوير ويب محلية قوية تدعم PHP وNode.js وقواعد بيانات متعددة.";
// إرسال النص لمعالجته عبر SCWS
$scws->send_text($text);
// الحصول على نتائج التقطيع
echo "النص الأصلي: " . $text . "\n\n";
echo "نتائج التقطيع:\n";
// حلقة لاستعراض جميع النتائج
while ($result = $scws->get_result()) {
foreach ($result as $word) {
// $word هو مصفوفة تحتوي على 'word', 'idf', 'attr' (نوع الكلمة) وغير ذلك
echo "الكلمة: " . $word['word'] . " (نوع: " . $word['attr'] . ")\n";
}
}
// تحرير الموارد
$scws->close();
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
احفظ الكود السابق في ملف PHP (مثلاً scws_example.php
) وضعه في مجلد المواقع الخاص بـ ServBay (/Applications/ServBay/www/scws-test/
). عند زيارة https://servbay.demo/scws-test/scws_example.php
سترى نتائج التقطيع تظهر في المتصفح.
ملاحظات هامة
- تأكد من أن إصدار SCWS المفعل متوافق مع إصدار PHP لديك. ServBay يتولى هذا تلقائيًا، لكن في حال التعديل اليدوي يجب الانتباه.
- أداء وحدة SCWS يعتمد بشدة على جودة القاموس المستخدم. للمجالات المتخصصة، يفضل إنشاء قواميس حسب الحاجة.
- تحقق من أن مسارات ملفات الإعدادات
scws.ini
، ملفات القاموس (.xdb
) وملفات القواعد (.ini
) صحيحة وأن PHP لديه صلاحية القراءة عليها. - بعد أي تعديل في إعدادات PHP يجب إعادة تشغيل الحزمة ذات العلاقة لتفعيل التغييرات.
الأسئلة الشائعة (FAQ)
س: فعّلت SCWS عبر واجهة ServBay لكن لم يظهر في phpinfo()؟
ج: تأكد أنك أعدت تشغيل نفس إصدار حزمة PHP التي يستخدمها موقعك. أحيانًا قد تكون هناك عدة إصدارات PHP نشطة. إذا لم تحل المشكلة، جرب تعديل ملف scws.ini
يدويًا وافحص المسارات وصحة الصياغة بدقة.
س: كيف أنشئ وأستخدم قاموس مخصص؟
ج: يمكنك مراجعة فقرة "إنشاء وتكوين قاموس SCWS" في هذا الدليل، استخدم أداة scws-gen-dict
لتحويل القاموس النصي إلى xdb ثم حمّله في كود PHP عبر دالة add_dict()
.
س: ما وظيفة ملف القواعد (rules.utf8.ini
) في SCWS؟
ج: يستخدم الملف أساسًا في تحديد الأنماط النحوية وبعض قواعد التقطيع الخاصة. ServBay يوفر ملفًا افتراضيًا مجهزًا مسبقًا غالبًا لا تحتاج تعديله.
الخلاصة
يُسهل عليك ServBay تفعيل وإدارة وحدة تقطيع الكلمات الصينية SCWS ضمن بيئة تطوير PHP محلية. سواء عبر الواجهة الرسومية أو الإعداد اليدوي، يمكنك دمج SCWS بسهولة في سير عملك البرمجي. وبالاستفادة من الأدوات والقواميس المدمجة ضمن ServBay، تستطيع بسرعة معالجة النصوص الصينية بكفاءة ودقة عالية لتعزيز تطبيقاتك الويب في الوظائف المتعلقة بالبحث وتحليل المحتوى وأكثر. كجزء من منظومة ServBay الغنية، يساهم دمج SCWS في تعزيز شمولية وقوة ServBay كبيئة تطوير ويب محلية للمطورين المحترفين.