2012-07-11 25 views
5

मैं लोचदारसेरच का उपयोग कर रहा हूं और मैं अंग्रेजी के लिए बुनियादी स्टेमिंग स्थापित करना चाहता हूं। तो मूल रूप से, लड़ाकू लड़ाई या किसी भी शब्द में लड़ाई जड़ शामिल है।लोचदार खोज Stemming

मैं थोड़ा उलझन में हूं कि इसे कैसे कार्यान्वित किया जाए। मैं विश्लेषकों, टोकनकारों और फिल्टर के माध्यम से पढ़ रहा था और कई स्टेमिंग एल्गोरिदम हैं जिन्हें लोचदार खोज में उपयोग किया जा सकता है। मुझे यकीन नहीं है कि किस संयोजन का उपयोग करना है - स्नोबॉल, स्टेमर, पोर्टर स्टेम या समानार्थी फ़िल्टर।

इसके अलावा, मैपिंग का एक उदाहरण वास्तव में सहायक होगा।

उत्तर

15

कृपया difference between stemming and lemmatisation पर ध्यान दें। स्टेमिंग एल्गोरिदम नियमों की एक श्रृंखला लागू करता है (और/या शब्दकोश लुकअप, जैसा मामला उदाहरण के लिए केस्टेम के लिए है) और यह गारंटी नहीं देता है कि परिणाम एक उचित भाषाई 'रूट' (यानी लेम्मा) होगा।

तो उदाहरण के लिए पोर्टल स्टेमर द्वारा 'मैरीनेट' और 'मरीन' दोनों शब्दों को 'मारिन' में परिवर्तित कर दिया जाएगा, जिसे काफी 'आक्रामक' माना जा रहा है - यह बड़ी संख्या में शब्दों के लिए एक ही स्टेम का उत्पादन करता है । अधिक रूढ़िवादी हैं, उदाहरण के लिए एस-स्टेमर, जो केवल बहुवचन को एकवचन रूपों में परिवर्तित करता है (org.apache.lucene.analysis.en.EnglishMinimalStemFilter)।

शोध पत्रों में पाए जाने वाले स्टेमिंग विधियों की तुलना में केस्टेम को अंग्रेजी ग्रंथों के लिए सबसे प्रभावी माना जाता है, लेकिन स्टेमर की पसंद आपके दस्तावेज़ों की शब्दावली पर निर्भर करती है। आप स्टेमर प्रदर्शन को अनुकूलित करने का लक्ष्य नहीं रखते हैं, बल्कि खोज इंजन का प्रदर्शन करते हैं, इसलिए इसे आपके सिस्टम के अन्य तत्वों (विशेष रूप से क्वेरी विस्तार) से अलग करने में मापना अभ्यास में एक अच्छा विचार नहीं है।

सबसे अच्छा समाधान elasticsearch में उपलब्ध विभिन्न स्टेमर्स का प्रयास करना है (उदाहरण मैपिंग here देखा जा सकता है) और परिणामों की सटीकता और याद का निरीक्षण करें। यदि आपके पास प्रश्नों का परीक्षण सूट नहीं है, तो आपकी सबसे अच्छी शर्त 'ठेठ' प्रश्नों को निष्पादित करना और 'अजीब' परिणामों (स्टेमर के प्रभाव बहुत आक्रामक) या 'अच्छे' परिणाम को कम करने के लिए देखना है (बहुत रूढ़िवादी स्टेमर)।