2009-11-04 12 views
6

मैं एस्पेल और PHP (php-pspell) का उपयोग करके, एक आंतरिक खोज इंजन पर "आपका मतलब" funcionality बना रहा हूं।एस्पेल कस्टम शब्दकोश पर विशेष वर्णों का उपयोग कैसे करें?

मेरे पास उत्पादों की एक सूची है और मैं चाहता हूं कि उन उत्पादों के नाम शब्दकोश में शब्द भी हों ताकि "आपका मतलब" सुझाव दे सके।

समस्या यह है कि जब मैं PHP Pspell कार्यों के साथ एक कस्टम शब्दकोश बनाने का प्रयास करें, मैं त्रुटियों का सामना करना जब शब्द अक्षर हैं जो az रेंज में नहीं हैं, संख्या, hifens, आदि

उदाहरण के लिए के रूप में :

iPhone 3GS: iphone सुचारू रूप से जोड़ दिया जाता है, लेकिन 3GS

ब्लू-रे नहीं है: के कारण नहीं जोड़ा जा सकता है - यह संभव एक शब्द उस तरह जोड़ने के लिए

है शब्दकोश? या एस्पेल बस उन्हें स्वीकार नहीं करते हैं?

+0

मुझे एक ही समस्या है: मैं एक जर्मन शब्द "कुन्स्टिलहे" को अन्यथा अंग्रेजी व्यक्तिगत शब्दकोश में नहीं जोड़ सकता।Aspell शिकायत करता है "चरित्र (यू + बीसी) एक शब्द के बीच में प्रकट नहीं हो सकता है" भले ही मैं विकल्पों का उपयोग करता हूं "-d en-w_accents --encoding = utf-8" –

उत्तर

0

ऐसा करने का सबसे अच्छा तरीका कुछ महत्वपूर्ण अनुक्रमों के साथ सफेद स्थान सहित विशेष वर्णों को प्रतिस्थापित करता है। xxx कहें। एस्पेल स्वीकार करने वाले लोगों के बाहर आपको सभी पात्रों के लिए ऐसा करना होगा।

2

एक resource जो उपयोगी साबित हो सकता है। आप अपनी भाषा datafile कॉन्फ़िगर करके विशेष वर्ण के साथ शब्दों को जोड़ने के लिए सक्षम होना चाहिए, लेकिन वहाँ एक CAVIAT है:

हालांकि, Aspell की सीमाओं के कारण के बारे में पता विशेष वर्ण जोड़ने अनपेक्षित परिणाम हो सकता है कि कृपया। उदाहरण के लिए यदि -' was accepted as a middle character, then every word with a - 'इसमें एक वर्तनी त्रुटि के रूप में फ़्लैग किया जाएगा जब तक कि सटीक शब्द शब्दकोश में न हो, भले ही दोनों भाग शब्दकोश में हों। इसके अलावा, .' as an end character will cause the है। ' किसी भी गलत वर्तनी वाले शब्दों का हिस्सा बनने के लिए। यदि आप वाक्य के अंत में एक शब्द गलत वर्तनी करते हैं तो जो बहुत परेशान हो सकता है।

+0

क्या आप विस्तार से वर्णन कर सकते हैं कि जर्मन कैसे जोड़ें अन्यथा अंग्रेजी व्यक्तिगत शब्दकोश के लिए शब्द "कुन्स्टिलहे"? –

0

मान लीजिए कि आपकी शब्दकोश भाषा अंग्रेजी ("en") है, तो enpat स्थापना में en.dat फ़ाइल ढूंढें। en.dat भाषा डेटा फ़ाइल है और प्रत्येक भाषा की अपनी डेटा फ़ाइल <lang>.dat है। इस फाइल के अंत में

vi /usr/lib64/aspell/en.dat 

निम्न पंक्ति जोड़ें::

/usr/lib64/aspell/en.dat 

अब संपादन के लिए इस फ़ाइल को खोलने: डेटा फ़ाइल निम्न स्थान पर मौजूद होना चाहिए

special ' -*- 

special वह कीवर्ड है जो एस्पेल को बताता है कि निम्नलिखित वर्णों को विशेष वर्णों के रूप में माना जाना चाहिए। विशेष वर्ण जोड़ने के लिए प्रारूप है:

char प्रश्न में गैर-अक्षर चरित्र है। शुरू करें, मध्य, अंत या तो '-' या '*' हैं। शुरुआत के लिए एक सितारा का मतलब है कि चरित्र एक शब्द शुरू कर सकता है, '-' का अर्थ यह नहीं हो सकता है। मध्य और अंत के लिए भी यही सच है। पूर्ण लेख: http://www.webspeaks.in/2015/01/adding-special-characters-in-aspell-dictionary-for-php.html