كيفية تفعيل وتكوين إضافة SCWS لـ PHP في ServBay
يُعد ServBay بيئة تطوير ويب محلية قوية تدعم كلا من macOS وWindows، وتتيح تشغيل العديد من لغات البرمجة مثل PHP، Node.js، Python، Go، Java، بالإضافة إلى قواعد البيانات مثل MySQL، PostgreSQL، MongoDB، Redis، وتدعم خوادم ويب مثل Caddy وNginx. بالنسبة للمطورين الذين يودون معالجة النص الصيني ضمن تطبيقات PHP، يوفر ServBay إضافة SCWS (التقطيع البسيط للكلمات الصينية) المدمجة والمُهيأة مسبقًا، مع سهولة كبيرة في التفعيل والاستخدام.
تتطرق هذه الوثيقة لشرح كيفية تفعيل إضافة SCWS على PHP في ServBay، إعداد ملفات القاموس، وعرض مثال عملي لكيفية استخدام الإضافة في معالجة النصوص.
نظرة عامة على إضافة SCWS
SCWS هو محرك مفتوح المصدر لتقطيع الكلمات الصينية، يُعرف بكفاءته العالية ودقته المتميزة. يستخدم خوارزميات قائمة على القواميس ونماذج إحصائية معا، مما يساعد على تقطيع النصوص الصينية بسرعة ودقة، وهو مناسب جدًا لتطبيقات مثل محركات البحث الصينية، التنقيب عن النصوص، تحليل المحتوى، استخراج الكلمات المفتاحية، بالإضافة إلى تصنيف السمات النحوية للكلمات.
أبرز الميزات
- أداء عالي في التقطيع: تعتمد SCWS على خوارزمية تقطيع مُحسَّنة تعالج كميات كبيرة من النصوص بكفاءة.
- دقة عالية: تجمع SCWS بين القاموس والنماذج الإحصائية لتحقيق نتيجة دقيقة في تقطيع النصوص الصينية.
- ميزات غنية: بالإضافة لتقطيع الكلمات يقدم استخراج الكلمات المفتاحية وتصنيف السمات.
- سهولة الدمج: توفر واجهة برمجية بسيطة تُسهل تضمينها في تطبيقات PHP.
- مصدر مفتوح ومجاني: يُمكن استخدام SCWS بحرية وتخصيصها حسب الحاجة.
إصدار SCWS المتوفر مسبقًا في ServBay
يدعم ServBay العديد من إصدارات PHP، وكل إصدار يحتوي على إضافة SCWS الخاصة به مُثبتة مسبقًا. حتى تاريخ كتابة هذا الدليل، ServBay يوفر إصدار SCWS 1.2.3 مدمجًا مع كل من PHP 5.6 وحتى PHP 8.4.
كيفية تفعيل إضافة SCWS
بشكل افتراضي، تكون إضافة SCWS مُعطّلة عند تثبيت ServBay. هناك طريقتان رئيسيتان لتفعيلها: من خلال واجهة المستخدم الرسومية لـ ServBay أو عن طريق تعديل ملف الإعدادات يدويًا.
الطريقة الموصى بها: التفعيل عبر واجهة ServBay الرسومية
هذه الطريقة هي الأسهل والأسرع:
- افتح الواجهة الرئيسية لـ ServBay.
- من شريط التنقل على اليسار، اضغط على اللغات (Languages)، ثم اختر PHP.
- في قائمة إصدارات PHP على اليمين، ابحث عن الإصدار الذي ترغب بتفعيل SCWS له (على سبيل المثال،
PHP 8.4
). - اضغط على زر الإضافات (Extensions) على يمين الإصدار.
- من قائمة الإضافات المنبثقة، ابحث عن
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: افتح ملف
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أزل الفاصلة المنقوطة (
;
) من بداية السطر الخاص بتفعيل الإضافة ليصبح: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احفظ وأغلق ملف
scws.ini
.إعادة تشغيل حزمة PHP: من الواجهة الرئيسية لـ ServBay، انقر على الحزم (Packages) وابحث عن إصدار PHP الذي عدلت ملفاته (مثلاً، PHP 8.4)، واضغط زر إعادة التشغيل (رمز السهم الدائري).
التحقق من تحميل إضافة SCWS بنجاح
بعد التفعيل، من المهم التحقق من تحميل الإضافة بشكل صحيح. أكثر الطرق شيوعًا هي عبر عرض نتيجة دالة PHP phpinfo()
:
- أنشئ مجلد اختبار جديد ضمن المسار
/Applications/ServBay/www
، وليكن اسمهscws-test
. - داخل هذا المجلد (
/Applications/ServBay/www/scws-test
)، أنشئ ملف باسمphpinfo.php
. - اكتب الكود التالي في الملف:php
<?php phpinfo(); ?>
1
2
3 - تأكد من إعداد وتشغيل خادم الويب في ServBay (Caddy أو Nginx)، وأنه يوجه للمجلد المطلوب. يحتوي ServBay افتراضيًا على نطاق
servbay.demo
يشير إلى/Applications/ServBay/www
. - من متصفح الإنترنت، توجّه إلى
https://servbay.demo/scws-test/phpinfo.php
. - ستظهر لك صفحة معلومات PHP، ابحث فيها عن قسم "SCWS". إذا وجدت إعدادات ومعلومات الإضافة (مثل رقم الإصدار وخيارات التهيئة)، فهذا يعني أن SCWS تم تحميله بنجاح.
(تنويه: مسار الصورة للعرض فقط، يرجى الرجوع لوثائق ServBay الفعلية)
إنشاء وتكوين قواميس SCWS
إضافة SCWS تعتمد على القاموس المستخدم في التقطيع، لذا جودته تؤثر بشكل كبير على النتائج. يوفر ServBay القاموس الافتراضي وقواعد المعالجة في المسار /Applications/ServBay/etc/scws
، ويُسمح لك بإنشاء واستخدام قواميسك الخاصة أيضًا.
تنسيق ملف القاموس في SCWS
تدعم SCWS ملفات القاموس بنسق نصي عادي أو xdb ثنائي. يوصى باستخدام صيغة 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-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، يمكنك تخصيص SCWS لاستخدام القاموس عبر كود PHP كما يلي:
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // تعيين الترميز بما يطابق ترميز القاموس
// تعيين القاموس الرئيسي، يمكن استخدام القاموس الافتراضي أو ملف xdb الخاص بك
$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); // SCWS_XDICT_TXT تعني إضافة قاموس مستخدم إضافي
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini'); // تعيين ملف القواعد، ServBay يوفره افتراضيًا
// ... إجراءات التقطيع لاحقاً ...
?>
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 في برامج PHP لتقطيع الكلمات. إليك مثالاً عملياً:
php
<?php
// تأكد من تحميل إضافة SCWS
if (!extension_loaded('scws')) {
die('SCWS extension is not loaded.');
}
// تهيئة كائن SCWS
$scws = scws_new();
if (!$scws) {
die('Failed to initialize 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);
// تعيين مسار ملف القواعد (المسار الافتراضي في ServBay)، يساعد في تصنيف الكلمات
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// تعيين وضع التقطيع (اختياري، الإعداد الافتراضي هو SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: فصل رموز x (غير الحروف الصينية) مثل البريد الإلكتروني أو الروابط
// 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
$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.ini
)، القاموس (.xdb
)، وملف القواعد (.ini
)، ومن توفر صلاحيات القراءة لحزمة PHP لهذه الملفات. - عند تعديل إعدادات PHP، ينبغي دائمًا إعادة تشغيل الحزمة لتطبيق التغييرات.
الأسئلة الشائعة (FAQ)
س: فعلت SCWS عبر واجهة ServBay لكن لا يظهر في phpinfo()
؟
ج: تأكد من إعادة تشغيل الحزمة الصحيحة لإصدار PHP المستخدم في موقعك، فقد يكون هناك أكثر من إصدار PHP نشط. وإذا استمرت المشكلة، جرب تعديل ملف scws.ini
يدويًا وتأكد من صحة المسار وصياغة الملف.
س: كيف أنشئ وأستخدم قاموس كلمات مخصص؟
ج: راجع فقرة "إنشاء وتكوين قواميس SCWS" في الدليل، واستخدم أداة scws-gen-dict
لتحويل ملف القاموس النصي إلى صيغة xdb، ثم استخدم دالة add_dict()
من خلال كود PHP لإضافته.
س: ما وظيفة ملف القواعد (rules.utf8.ini
) في SCWS؟
ج: يُستخدم ملف القواعد بشكل رئيسي في تصنيف السمات النحوية للكلمات وتطبيق قواعد تقطيع خاصة. يوفر ServBay ملفًا افتراضيًا غالبًا لا تحتاج لتعديله.
الخلاصة
يوفر ServBay للمطورين طريقة سهلة وفعالة لتفعيل وإدارة إضافة SCWS لتقطيع النص الصيني ضمن تطبيقات PHP. سواء عبر الواجهة الرسومية أو عبر التكوين اليدوي المرن، يمكنك دمج SCWS بكل بساطة في سير عمل التطوير اليومي ومع استخدام القواميس والأدوات المدمجة، تتمكن من معالجة النصوص الصينية بكفاءة ودقة، وتلبية متطلبات تطبيقات الويب كالبحث وتحليل المحتوى. ومع نظام الحزم الغني في ServBay، يصبح دمج ومعالجة النص الصيني جزءًا متكاملًا من البيئة التطويرية الشاملة التي يوفرها.