ServBay में SCWS PHP मॉड्यूल को सक्षम और कॉन्फ़िगर कैसे करें
ServBay एक शक्तिशाली स्थानीय वेब विकास वातावरण है, जो macOS और Windows दोनों का समर्थन करता है। इसमें PHP, Node.js, Python, Go, Java जैसी विभिन्न भाषा रनटाइम और MySQL, PostgreSQL, MongoDB, Redis जैसे डेटाबेस एकीकृत हैं, साथ ही Caddy और Nginx जैसे वेब सर्वर का समर्थन भी है। जो डेवलपर्स अपने PHP ऐप्लीकेशन में चीनी टेक्स्ट प्रोसेस करना चाहते हैं, उनके लिए ServBay पहले से ही SCWS (Simple Chinese Word Segmentation) चीनी शब्द विभाजन मॉड्यूल के साथ आता है, इसे सक्षम करना बहुत सरल है।
यह लेख विस्तार से बताएगा कि ServBay में SCWS PHP एक्सटेंशन कैसे सक्षम करें, इसके शब्दकोष फाइल कैसे कॉन्फ़िगर करें, और उदाहरण कोड द्वारा इसकी बेसिक उपयोग विधि का प्रदर्शन भी करेगा।
SCWS मॉड्यूल का परिचय
SCWS एक ओपन-सोर्स चीनी शब्द विभाजन इंजन है, जो उच्च प्रदर्शन और शुद्धता के लिए जाना जाता है। यह शब्दकोष मिलान और सांख्यिकीय मॉडल को मिलाकर चीनी टेक्स्ट को तेज़ और सटीक तरीके से विभाजित करता है, जिससे यह चीनी सर्च इंजन, टेक्स्ट माइनिंग, कंटेंट एनालिसिस, कीवर्ड एक्सट्रैक्शन, और वर्ड-क्लास टैगिंग जैसी ऐप्लीकेशन के लिए उपयुक्त है।
मुख्य विशेषताएँ
- उच्च प्रदर्शन विभाजन: SCWS में अनुकूलित विभाजन एल्गोरिदम हैं, जो बड़े पैमाने पर चीनी टेक्स्ट डेटा को कुशलतापूर्वक प्रोसेस कर सकते हैं।
- उच्च शुद्धता: SCWS शब्दकोष व सांख्यिकीय मॉडल के संयोजन के साथ, चीनी विभाजन कार्य में अभूतपूर्व शुद्धता देता है।
- विविध फ़ीचर्स: बेसिक शब्द विभाजन के अलावा, यह कीवर्ड एक्सट्रैक्शन और वर्ड-क्लास टैगिंग जैसी उन्नत सुविधाएँ भी देता है।
- आसान इंटीग्रेशन: सरल API इंटरफ़ेस के साथ, डेवलपर्स इसे अपने PHP ऐप्लिकेशन में आसानी से जोड़ सकते हैं।
- ओपन-सोर्स और फ्री: SCWS ओपन-सोर्स सॉफ़्टवेयर है, जिसे आप मुफ़्त में इस्तेमाल और आवश्यकता अनुसार कस्टमाइज़ कर सकते हैं।
ServBay में SCWS का प्रीइंस्टॉल वर्शन
ServBay कई PHP वर्शन का समर्थन करता है, और हर वर्शन के लिए उपयुक्त SCWS मॉड्यूल पहले से इंस्टॉल है। इस लेख के समय तक, ServBay PHP 5.6 से PHP 8.4 तक के वर्शन के लिए SCWS 1.2.3 एक्सटेंशन देता है।
SCWS मॉड्यूल कैसे सक्षम करें
डिफ़ॉल्ट रूप से, SCWS मॉड्यूल ServBay में निष्क्रिय रहता है। इसे सक्षम करने के दो मुख्य तरीके हैं: ServBay ग्राफ़िकल इंटरफ़ेस या कॉन्फ़िगरेशन फ़ाइल को मैन्युअली एडिट करके।
अनुशंसित तरीका: ServBay यूआई द्वारा सक्षम करना
यह सबसे सरल और तेज़ तरीका है:
- ServBay का मुख्य इंटरफ़ेस खोलें।
- बाएँ नेविगेशन बार में, भाषाएँ (Languages) पर क्लिक करें, फिर PHP चुनें।
- दाएँ साइड में दिख रहे PHP वर्शन लिस्ट में, वह वर्शन चुनें जिसमें आपको SCWS सक्षम करना है (जैसे,
PHP 8.4
)। - चुने गए PHP वर्शन के दाएँ एक्सटेंशन (Extensions) बटन पर क्लिक करें।
- पॉप-अप एक्सटेंशन लिस्ट में
SCWS
मॉड्यूल खोजें। SCWS
के बाएँ स्विच को चालू करें (आमतौर पर हरा हो जाएगा)।- विंडो के नीचे सहेजें (Save) बटन पर क्लिक करें।
- ServBay आपको PHP पैकेज रिस्टार्ट करने के लिए बोलेगा। रिस्टार्ट (Restart) बटन दबाएँ।
इन स्टेप्स के बाद, SCWS मॉड्यूल चयनित PHP वर्शन के लिए सफलतापूर्वक सक्षम हो जाएगा।
मैन्युअल कॉन्फ़िगरेशन फ़ाइल एडिट करें (उन्नत उपयोगकर्ता अथवा डिबगिंग के लिए)
अगर आपको अधिक नियंत्रण या समस्या समाधान चाहिए, तो PHP की कॉन्फ़िगरेशन फ़ाइल एडिट कर सकते हैं:
कॉन्फ़िगरेशन फ़ाइल ढूंढें: पहले, संबंधित PHP वर्शन के
conf.d
डायरेक्टरी का पता लगाएँ। SCWS की कॉन्फ़िगरेशन इसी डायरेक्टरी केscws.ini
फ़ाइल में होती है। फ़ाइल का पथ आम तौर पर इस तरह बनेगा:/Applications/ServBay/etc/php/X.Y/conf.d/scws.ini
1X.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लाइन की शुरुआत में लगे
;
हटाकर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 मॉड्यूल लोडिंग का सत्यापन
मॉड्यूल सक्षम करने के बाद, यह सुनिश्चित करना जरूरी है कि सही ढंग से लोड हुआ है या नहीं। सबसे आसान तरीका है PHP के phpinfo()
आउटपुट को देखना:
- ServBay की वेबसाइट रूट डायरेक्टरी—
/Applications/ServBay/www
—में कोई नया सबडायरेक्टरी बनाएँ, जैसेscws-test
। - उस सबडायरेक्टरी (
/Applications/ServBay/www/scws-test
) मेंphpinfo.php
नाम की फ़ाइल बनाएँ। - इस PHP कोड को
phpinfo.php
में लिखें:php<?php phpinfo(); ?>
1
2
3 - सुनिश्चित करें कि ServBay वेब सर्वर (Caddy या Nginx) सेटअप और चालू है, और
/Applications/ServBay/www
की साइट एक्सेस कर सकते हैं। ServBay डिफ़ॉल्ट रूप सेservbay.demo
डोमेन को/Applications/ServBay/www
पर मैप करता है। - ब्राउज़र में खोलें:
https://servbay.demo/scws-test/phpinfo.php
। - ओपन PHP इन्फो पेज में "SCWS" सेक्शन खोजें। यदि SCWS सेटिंग्स और जानकारी (जैसे वर्शन नंबर, कॉन्फ़िगरेशन वैल्यू) दिखें, तो समझिए, मॉड्यूल सफलतापूर्वक लोड है।
( नोट: इमेज पथ उदाहरण है, कृपया वास्तविक ServBay दस्तावेज़ में छवि देखें )
SCWS शब्दकोष बनाना और कॉन्फ़िगर करना
SCWS एक शब्दकोष-आधारित शब्द विभाजन इंजन है, और प्रोसेसिंग की गुणवत्ता उसके शब्दकोष पर निर्भर करती है। ServBay में डिफ़ॉल्ट SCWS शब्दकोष और नियम फ़ाइल /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 का scws-gen-dict
टूल देता है, जिससे टेक्स्ट शब्दकोष फाइल को xdb फ़ॉर्मेट में बदल सकते हैं।
- macOS में टर्मिनल (Terminal) खोलें।
cd
कमांड से ServBay के bin डायरेक्टरी में जाएँ, या टूल का पूर्ण पथ चलाएँ। यह टूल यहाँ होता है: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
से आउटपुट xdb फ़ाइल का नाम व स्थान तय करें, और/Applications/ServBay/etc/scws
डायरेक्टरी में रखें।-c utf8
इनपुट फाइल एनकोडिंग बताएगा।
SCWS में शब्दकोष फ़ाइल इस्तेमाल करें
xdb फ़ाइल बनने के बाद, आप PHP कोड में SCWS को कस्टम शब्दकोष के पथ बता सकते हैं:
php
<?php
$scws = scws_new();
$scws->set_charset('utf8'); // कैरेक्टर सेट जरूर शब्दकोष एनकोडिंग जैसा ही रखें
// मुख्य शब्दकोष पथ सेट करें, यह ServBay का डिफ़ॉल्ट या आपकी बनी xdb हो सकती है
$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'); // नियम फ़ाइल पथ, POS टैगिंग के लिए, ServBay में प्रीइंस्टॉल है
// ... आगे विभाजन प्रोसेस ...
?>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
set_dict()
मूल शब्दकोष सेट करता है, सामान्यतः SCWS का बड़ा शब्दकोष। add_dict()
से कस्टम (यूज़र) शब्दकोष ऐड होता है। SCWS_XDICT_TXT
यूज़र शब्दकोष जोड़ने के लिए होता है।
SCWS इस्तेमाल उदाहरण
SCWS मॉड्यूल चालू व शब्दकोष सेट कर लेने के बाद, PHP कोड में SCWS फंक्शंस से शब्द विभाजन कर सकते हैं। एक बेसिक उदाहरण:
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);
// नियम फ़ाइल पथ सेट करें (ServBay डिफ़ॉल्ट), POS टैगिंग के लिए
$scws->set_rule('/Applications/ServBay/etc/scws/rules.utf8.ini');
// विभाजन मोड सेट करें (ऐच्छिक, डिफ़ॉल्ट SCWS_XDICT_XPINYIN | SCWS_XDICT_DUALITY)
// SCWS_XDICT_XPINYIN: x अक्षर (गैर-चीनी) को विभाजित करता है, जैसे 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 संसाधन बंद करें
$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 कॉन्फ़िगरेशन फ़ाइल (
scws.ini
), शब्दकोष (.xdb
), और नियम फ़ाइल (.ini
) के पथ सही रखें और PHP प्रक्रिया को पढ़ने की अनुमति दें। - PHP कॉन्फ़िगरेशन बदलने के बाद संबंधित PHP पैकेज को रिस्टार्ट करें, तभी बदलाव लागू होगा।
सामान्य प्रश्न (FAQ)
प्र. मैंने ServBay UI से SCWS सक्षम की, लेकिन phpinfo()
में नहीं दिखती?
उ. कृपया सुनिश्चित करें कि आपने सही PHP पैकेज रिस्टार्ट किया है। कई PHP वर्शन चल सकते हैं, तो अपने वेबसाइट से जुड़े वाले वर्शन का पैकेज रिस्टार्ट कीजिए। समस्या बनी रहे तो scws.ini
फ़ाइल मैन्युअली एडिट करें व पथ-सिनटैक्स जांचें।
प्र. कस्टम शब्दकोष कैसे बनायें और इस्तेमाल करें?
उ. इस डॉक्यूमेंट की "SCWS शब्दकोष बनाना और कॉन्फ़िगर करना" सेक्शन देखिए, scws-gen-dict
टूल से टेक्स्ट शब्दकोष, xdb में बदलें, फिर PHP कोड में add_dict()
से जोड़ें।
प्र. SCWS नियम फ़ाइल (rules.utf8.ini
) का क्या उपयोग है?
उ. नियम फ़ाइल का मुख्य कार्य शब्द-श्रेणी टैगिंग और विशेष विभाजन नियम है। ServBay डिफ़ॉल्ट नियम फाइल देता है, आमतौर पर बदलाव की जरूरत नहीं।
सारांश
ServBay डेवलपर्स को सरल तरीके से SCWS PHP चीनी शब्द विभाजन मॉड्यूल सक्षम और प्रबंधित करने की सुविधा देता है। चाहे ग्राफिकल यूआई हो या मैनुअल कॉन्फ़िगर, आप SCWS को अपने PHP वर्कफ़्लो में आसानी से जोड़ सकते हैं। SCWS के टूल्स और डिफ़ॉल्ट शब्दकोष की मदद से फटाफट शुरुआत करें, चीनी टेक्स्ट को प्रभावी और सटीक रूप से प्रोसेस करें, और अपनी वेब ऐप्लीकेशन (जैसे सर्च, कंटेंट एनालिसिस) को चीनी टेक्स्ट प्रोसेसिंग की क्षमता दें। ServBay के समृद्ध सॉफ़्टवेयर पैकेज इकोसिस्टम का हिस्सा होते हुए SCWS इंटीग्रेशन इसकी व्यापकता और उपयोगिता और बढ़ाता है।