ServBay में SCWS चीनी शब्द विभाजन: स्थापना, कॉन्फ़िगरेशन और उपयोग गाइड
ServBay एक शक्तिशाली स्थानीय वेब विकास परिवेश है, जिसमें कई प्रोग्रामर-उपयोगी टूल और सॉफ़्टवेयर पैकेज पहले से ही एकीकृत किए गए हैं। SCWS (Simple Chinese Word Segmentation) एक उच्च-प्रदर्शन वाली चीनी शब्द विभाजन प्रणाली है, जो चीनी टेक्स्ट प्रोसेसिंग (जैसे सर्च, प्राकृतिक भाषा प्रोसेसिंग, कंटेंट एनालिसिस आदि) में अत्यंत महत्वपूर्ण भूमिका निभाती है। ServBay में SCWS और इसका PHP मॉड्यूल पहले से इंस्टाल होता है, अतः अतिरिक्त जटिल इंस्टालेशन प्रक्रिया की आवश्यकता नहीं है। यह लेख आपको ServBay में SCWS को कॉन्फ़िगर और उपयोग करने की विस्तृत प्रक्रियागत जानकारी देगा, जिसमें कमांड लाइन टूल्स और PHP API का भी समावेश है।
अवलोकन
SCWS एक हाई-परफ़ॉर्मेंस चीनी शब्द विभाजन लाइब्रेरी है, जो बड़ी संख्या में चीनी टेक्स्ट को तेज़ और सटीक तरीके से विभाजित करने के लिए उपयुक्त है। यह विभिन्न विभाजन मोड, कस्टम शब्दकोश और नियमों का समर्थन करता है, जो चीनी सर्च, कंटेंट रिकमेंडेशन और टेक्स्ट एनालिसिस जैसे एप्लिकेशन के लिए एक आधारभूत उपकरण है। ServBay ने अपने पैकेज में SCWS को शामिल किया है, और पहले से ही PHP के लिए इसकी प्री-कंपाइल की गई एक्सटेंशन उपलब्ध करा दी है, जिससे स्थानीय विकास परिवेश में SCWS का उपयोग करना बेहद आसान हो जाता है।
आवश्यकताएँ
- आपने अपने macOS ऑपरेटिंग सिस्टम पर सफलतापूर्वक ServBay स्थापित और सक्रिय किया है।
स्थापना और कॉन्फ़िगरेशन
स्थापना
ServBay का डिज़ाइन “इंस्टॉल करें और तुरंत इस्तेमाल करें” की अवधारणा पर आधारित है। SCWS, एक महत्वपूर्ण चीनी टेक्स्ट प्रोसेसिंग टूल के तौर पर, ServBay में पहले से इंस्टाल है। आपको कोई अतिरिक्त डाउनलोड या कंपाइल करने की आवश्यकता नहीं है। इसके सभी संबंधित एक्जीक्यूटेबल फाइल, कॉन्फ़िगरेशन फाइल, डिक्शनरी आदि, ServBay की इंस्टॉल डायरेक्टरी में उपलब्ध होती हैं, जो आमतौर पर /Applications/ServBay/
होती है।
कॉन्फ़िगरेशन
SCWS की डिफ़ॉल्ट कॉन्फ़िगरेशन फाइल ServBay की इंस्टॉलेशन डायरेक्टरी के अंतर्गत /Applications/ServBay/etc/scws/scws.ini
में स्थित होती है। आप अपनी आवश्यकतानुसार इस फाइल में बदलाव कर सकते हैं – जैसे शब्द विभाजन व्यवहार, कैरेक्टरसेट, डिक्शनरी और नियम इत्यादि।
निम्न डिफ़ॉल्ट कॉन्फ़िगरेशन का उदाहरण है:
ini
[charset]
default = utf8
[rule]
rules = /Applications/ServBay/etc/scws/rules.ini
[dict]
dict = /Applications/ServBay/etc/scws/dict.utf8.xdb
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
[charset]
: डिफ़ॉल्ट कैरेक्टरसेट निर्दिष्ट करता है, सामान्यतःutf8
।[rule]
: शब्द विभाजन के नियमों की फाइल का पथ।[dict]
: डिक्शनरी फाइल का पथ, आप चाहें तो कई डिक्शनरी भी (,
द्वारा विभाजित) डाल सकते हैं।
बुनियादी उपयोग: कमांड लाइन टूल
SCWS में एक शक्तिशाली कमांड लाइन टूल scws
शामिल है, जिससे आप टर्मिनल में सीधे टेक्स्ट सेगमेंटेशन या बैच प्रोसेसिंग कर सकते हैं। ServBay ने अपने bin
डायरेक्टरी में scws
executable प्रदान किया है – आमतौर पर /Applications/ServBay/bin
आपके सिस्टम PATH में जुड़ा हुआ होता है, इसलिए आप सीधे टर्मिनल में scws
कमांड चला सकते हैं।
उदाहरण: विभाजन
नीचे कुछ बेसिक उदाहरण दिए गए हैं:
किसी स्ट्रिंग का विभाजन
पाइप के ज़रिए स्ट्रिंग को scws
कमांड पर भेजें:
bash
echo "这是一个中文分词的例子" | scws -i
1
फाइल से टेक्स्ट पढ़ना और विभाजन करना
-i
से इनपुट फाइल और -o
से आउटपुट फाइल निर्धारित करें:
bash
scws -i input.txt -o output.txt
1
कस्टम नियम निर्दिष्ट करना
-r
द्वारा नियम फाइल का पथ निर्धारण करें:
bash
scws -i input.txt -o output.txt -r /path/to/your/rules.ini
1
कस्टम डिक्शनरी निर्दिष्ट करना
-d
द्वारा डिक्शनरी फाइल का पथ दें:
bash
scws -i input.txt -o output.txt -d /path/to/your/dict.utf8.xdb
1
उन्नत उपयोग
कस्टम डिक्शनरी
विशेषज्ञता, नाम, स्थान या नए शब्दों के लिए विभाजन सटीकता बढ़ाने हेतु आप अपना कस्टम डिक्शनरी बना सकते हैं। SCWS तेज़तर्रार xdb
फॉर्मेट की उपयोग करता है। आप ServBay के scws-gen
टूल का उपयोग कर plain टेक्स्ट डिक्शनरी को xdb
में बदल सकते हैं।
कस्टम डिक्शनरी बनाने के चरण:
एक टेक्स्ट फाइल बनाएं, जैसे
custom_dict.txt
। हर लाइन में एक शब्द और उसके बाद (यदि चाहें तो) वेट (इंट, जिससे विभाजन प्राथमिकता निर्धारित होती है) लिखें:ServBay 10 स्थानीय विकास परिवेश 8 चीनी शब्द विभाजन 9
1
2
3scws-gen
टूल सेxdb
फॉर्मेट की डिक्शनरी बनाएं। यह टूल भीbin
डायरेक्टरी में ही होता है।bashscws-gen -i custom_dict.txt -o custom_dict.xdb
1अपनी कस्टम डिक्शनरी के पथ को कॉन्फ़िगरेशन फाइल
/Applications/ServBay/etc/scws/scws.ini
में[dict]
सेक्शन में डिफ़ॉल्ट डिक्शनरी के बाद, कॉमा,
से जोड़ें:ini[dict] dict = /Applications/ServBay/etc/scws/dict.utf8.xdb,/path/to/your/custom_dict.xdb
1
2ध्यान दें
/path/to/your/custom_dict.xdb
आपके असली कस्टम डिक्शनरी स्थान के अनुसार होना चाहिए।
विभाजन नियम समायोजन
रूल फाइल (आम तौर पर /Applications/ServBay/etc/scws/rules.ini
) यह निर्धारित करती है कि SCWS जटिल या अस्पष्ट संरचनाओं का कैसे विभाजन करे। रूल्स में बदलाव के लिए SCWS की शब्द विभाजन एल्गोरिथ्म का अच्छा ज्ञान आवश्यक है। अधिकांश उपयोगकर्ता के लिए डिफ़ॉल्ट नियम और कस्टम डिक्शनरी पर्याप्त हैं। यदि आपको नियमों को एडजस्ट करने की आवश्यकता हो, तो सावधानी बरतें और SCWS ऑफिशियल डोक्युमेंटेशन देखें (यदि ServBay द्वारा दिया गया हो)।
नियम फाइल का उदाहरण (आम तौर पर पैटर्न मिलान नियम):
ini
[rule]
# यहां अपने कस्टम विभाजन नियम जोड़ें
# उदाहरण: एक सरल नियम
# pattern = result
1
2
3
4
2
3
4
PHP API का उपयोग
यदि आप PHP आधारित वेब एप्लिकेशन बना रहे हैं, तो ServBay में प्री-इंस्टॉल PHP परिवेश में SCWS एक्सटेंशन पहले से ही मौजूद है। अतः आपको PHP एक्सटेंशन की इन्स्टालेशन/कॉन्फ़िगरेशन अलग से करने की कोई ज़रूरत नहीं है – आप सीधे अपने कोड में SCWS API का उपयोग चीनी शब्द विभाजन के लिए कर सकते हैं।
आप ServBay के phpinfo() पेज पर जाकर SCWS एक्सटेंशन के लोड होने की पुष्टि कर सकते हैं।
उपयोग उदाहरण
नीचे एक सिंपल PHP कोड का उदाहरण है, जो SCWS API का उपयोग कर रहा है:
php
<?php
// सुनिश्चित करें कि SCWS एक्सटेंशन लोड हो चुका है
if (!extension_loaded('scws')) {
die("SCWS extension is not loaded.");
}
// विभाजन के लिए टेक्स्ट
$text = "ServBay 是一款强大的本地 Web 开发环境,支持 PHP、Node.js、Python 等多种语言,并集成了 MySQL、Nginx 等软件包。";
// SCWS विभाजक का उदाहरण खोलें
$sh = scws_open();
// कैरेक्टरसेट सेट करें (आमतौर पर आपके टेक्स्ट एन्कोडिंग के अनुरूप)
scws_set_charset($sh, 'utf8');
// डिक्शनरी और नियम फाइल के पथ सेट करें
// सुनिश्चित करें कि ये पथ ServBay के SCWS फाइल के वास्तविक पथ हैं
$dict_path = '/Applications/ServBay/etc/scws/dict.utf8.xdb';
$rule_path = '/Applications/ServBay/etc/scws/rules.ini';
if (!file_exists($dict_path)) {
die("SCWS dictionary file not found: " . $dict_path);
}
if (!file_exists($rule_path)) {
die("SCWS rules file not found: " . $rule_path);
}
scws_set_dict($sh, $dict_path);
scws_set_rule($sh, $rule_path);
// विभाजन के लिए टेक्स्ट SCWS में भेजें
scws_send_text($sh, $text);
// विभाजन परिणाम प्राप्त करें
echo "मूल टेक्स्ट: " . $text . "\n";
echo "विभाजन परिणाम:\n";
// परिणाम प्राप्त करते हुए एक-एक शब्द प्रिंट करें
// $res एक array है, हर एलिमेंट एक शब्द (साथ में संभावित जानकारी) देता है
while ($res = scws_get_result($sh)) {
foreach ($res as $word_info) {
// सिर्फ शब्द प्रिंट करें
echo $word_info['word'] . " ";
// यदि चाहें तो शब्द का प्रकार या महत्व भी छाप सकते हैं:
// echo "शब्द: " . $word_info['word'] . ", प्रकार: " . $word_info['attr'] . ", महत्व: " . $word_info['idf'] . "\n";
}
}
echo "\n";
// SCWS सेशन बंद करें और संसाधन मुक्त करें
scws_close($sh);
?>
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
फाइल जैसे segment_test.php
के रूप में सेव कर सकते हैं और ServBay की वेबसाइट रूट डायरेक्टरी /Applications/ServBay/www/servbay.demo/
(माना कि आपके पास servbay.demo
नाम का साइट कॉन्फिगरेशन है) में रख दें। फिर इसे ब्राउज़र से खोलें या PHP CLI द्वारा चलाएं और परिणाम देखें।
मुख्य फंक्शन
SCWS PHP एक्सटेंशन के कुछ अत्यंत उपयोगी फंक्शन्स:
scws_open()
: SCWS विभाजक का एक नया उदाहरण शुरू करें। सफल होने पर हैंडल रिटर्न, असफल तोfalse
।scws_set_charset($sh, $charset)
: विभाजक उदाहरण$sh
के लिए कैरेक्टरसेट सेट करें।scws_set_dict($sh, $dict_path, $mode = SCWS_XDICT_TXT)
: डिक्शनरी पथ निर्धारित करें,$mode
फोर्मेट तय करता है, आमतौर परxdb
का प्रयोग करें।scws_set_rule($sh, $rule_path)
: विभाजन नियम की फाइल का पथ सेट करें।scws_send_text($sh, $text)
: टेक्स्ट को विभाजन हेतु भेजें।scws_get_result($sh)
: विभाजन परिणाम प्राप्त करें – हर बार शब्द के डिटेल्स के साथ array रिटर्न करता है, जब तक विभाजन समाप्त नहीं होता।scws_close($sh)
: विभाजक बंद करें और संसाधन मुक्त करें।
और भी एडवांस्ड फंक्शन्स (जैसे पंक्चुएशन इग्नोर करना, मोड सेटिंग, शब्द महत्व प्राप्त करना आदि) के लिए कृपया SCWS PHP एक्सटेंशन की ऑफिशियल डोक्युमेंटेशन देखें।
सामान्य प्रश्न (FAQ)
1. SCWS विभाजन परिणाम सही नहीं है?
- समाधान: सबसे पहले
/Applications/ServBay/etc/scws/scws.ini
कॉन्फ़िगरेशन फाइल में डिक्शनरी (dict
) और नियम (rule
) फाइल पथ सही जांचें। फाइलें मौजूद और पढ़ने योग्य होनी चाहिए। यदि आप खास डोमेन या नए शब्दों पर काम कर रहे हैं, तो कृपया अपनी कस्टम डिक्शनरी (scws-gen
सेxdb
में बनाएं) और config में पथ जोड़ें। डिक्शनरी वेट्स या नियमों में बदलाव भी मददगार हो सकते हैं – इसके लिए अधिक ज्ञान आवश्यक है।
2. SCWS प्रदर्शन धीमा है?
- समाधान: सुनिश्चित करें SCWS तेज़
xdb
फॉर्मेट डिक्शनरी का प्रयोग कर रहा है, न कि पुरानी टेक्स्ट डिक्शनरी का।xdb
फॉर्मेट बहुत तेज़ है। config में डिक्शनरी के पथ साफ़-साफ़xdb
फाइल पर ही रखें। बहुत बड़े टेक्स्ट के लिए खंड-खंड में प्रोसेस करें।
3. SCWS कमांड लाइन टूल नहीं चलता?
- समाधान: आमतौर पर ऐसा इसलिए होता है कि ServBay के executable डायरेक्टरी को PATH एन्वायरनमेंट वेरिएबल में नहीं जोड़ा गया है। आप कमांड को पूर्ण पथ के साथ चला सकते हैं, उदाहरण:
/Applications/ServBay/bin/scws -i ...
। या PATH में/Applications/ServBay/bin
जोड़ें (~/.bash_profile
,~/.zshrc
आदि में) और टर्मिनल पुनः खोलें।
4. PHP में scws_open()
फेल होता है या फंक्शन नहीं मिला?
- समाधान: इसका अर्थ है SCWS PHP एक्सटेंशन ServBay के PHP में लोड नहीं हुआ। कृपया ServBay कंट्रोल पैनल से सही PHP वर्शन की जांच करें और phpinfo() पेज में
scws
एक्सटेंशन एक्टिव है या नहीं देखें। अगर नहीं, तो PHP के config (php.ini
) मेंextension=scws.so
या मिलते-जुलते लाइन की उपस्थिति देखें, साथ मेंscws.so
फाइल PHP extensions डायरेक्टरी में होनी चाहिए (ServBay में ये पहले से सेट होता है)। फिर भी समस्या है तो ServBay सेवा को पुनः शुरू करें।
निष्कर्ष
SCWS एक शक्तिशाली और कुशल चीनी शब्द विभाजन प्रणाली है। ServBay में इसकी गहन एकीकरण और PHP एक्सटेंशन की मदद से, macOS स्थानीय विकास परिवेश में आप बड़ी सरलता से SCWS की स्थापना, कॉन्फ़िगरेशन और उपयोग कर सकते हैं – चाहे टेक्स्ट प्रोसेसिंग के लिए कमांड लाइन टूल का इस्तेमाल करें या फिर PHP एप्लिकेशन में डायनामिक विभाजन करें। इस गाइड की सहायता से आप SCWS का सरलता से उपयोग शुरू कर सकते हैं और अपने प्रोजेक्ट्स के लिए चीनी टेक्स्ट प्रोसेसिंग की क्षमता बढ़ा सकते हैं।