मैं अजगर में एक लेमैमाइज़र बना रहा हूं। जैसा कि मुझे रीयलटाइम/प्रक्रिया में चलाने की आवश्यकता है, डेटा की काफी बड़ी मात्रा प्रसंस्करण गति सार का है। डेटा: मेरे पास सभी संभावित प्रत्यय हैं जो सभी शब्दावली से जुड़े हुए हैं जिनके साथ उन्हें जोड़ा जा सकता है। इसके अतिरिक्त मेरे पास lemmaforms हैं जो उनके शब्द टाइप (ओं) और लेम्मा दोनों से जुड़े हुए हैं। कार्यक्रम इनपुट के रूप में एक शब्द लेता है और इसके लेम्मा आउटपुट करता है। शब्द = lemmafrom + प्रत्ययएक लेमैमाइज़र बनाना: स्पीड ऑप्टिमाइज़ेशन
उदाहरण (नोट: हालांकि उदाहरण अंग्रेजी में दिया जाता है मैं अंग्रेजी के लिए एक lemmatizer निर्माण नहीं कर रहा हूँ): के लिए
शब्द: मना
lemmaform: forbidd
प्रत्यय: ing
लेम्मा: ना करे
मेरे समाधान:
मैं (नेस्टेड) dicts के लिए डेटा परिवर्तित कर दिया है:
suffixdict : {suffix1:[type1,type2, ... , type(n)], suffix2:[type1,type2, ... ,
type(n)]}
lemmaformdict : {lemmaform:{type1:lemma}}
1) सभी संभव प्रत्यय और शब्द प्रकार है कि वे से जुड़े होते हैं का पता लगाएं। यदि सबसे लंबा संभव प्रत्यय 3 वर्ण लंबा है, तो प्रोग्राम प्रत्यय में कुंजी के लिए 'ing', 'ng', 'n' से मिलान करने का प्रयास करता है। यदि कुंजी मौजूद है तो यह एक मान (वर्ड टाइप का एक सेट) देता है।
2) प्रत्येक मिलान प्रत्यय के लिए निर्देश से lemmaform खोज। यदि लेम्माफॉर्म मौजूद है तो यह शब्दप्रवाह देता है।
3) अंत में, प्रोग्राम चरण 1 में उत्पादित शब्दकोषों को छेड़छाड़ करने का प्रयास करता है) और यदि चौराहे है तो यह शब्द की नींबू लौटाता है।
मेरा प्रश्न: क्या गति की परिप्रेक्ष्य से मेरी समस्या का बेहतर समाधान हो सकता है? (शब्दकोश में लगातार शब्दों और लेमास रखने के विकल्प को रद्द करना) बहुत अधिक सहायता प्राप्त करने में सहायता करें।
(फोर्जिव, ई) मुझे खराब छवि गुणवत्ता ... क्या इसे बढ़ाने का कोई तरीका है? – jena
+1: विचार के लिए धन्यवाद। मेरे पास एफएसटी के साथ कोई पिछला अनुभव नहीं है, लेकिन मैं निश्चित रूप से इसे आज़मा दूंगा। – root