अजगर में सीआरएफ का कार्यान्वयन


32

क्या पायथन में कंडिशनल रैंडम फील्ड्स का लोकप्रिय कार्यान्वयन है ?

मुझे ऐसा कोई भी नहीं मिल रहा है जो व्यापक रूप से उपयोग किया जाता हो और लोकप्रिय हो!


ScikitCRF के अजगर कार्यान्वयन के लिए मेरे जीथुब रेपो ( ScikitCRF_NER ) पर एक नज़र डालें
मणिकंदन

जवाबों:


13

CRF ++ सामान्य रूप से एक लोकप्रिय विकल्प है, और इसमें पायथन बाइंडिंग हैCRFSuite में यहाँ दस्तावेज भी हैं , लेकिन ऐसा प्रतीत नहीं होता कि CRF ++ जितना व्यापक उपयोग हो। इस लेखन के रूप में, उच्च स्तरीय मशीन लर्निंग फ्रेमवर्क जैसे कि स्किटिट-लर्न में सीआरएफ समर्थन की कमी है ( इस पुल अनुरोध को देखें )।


15

CRF ++ में अधिक आवक लिंक हैं क्योंकि यह एक पुरानी लाइब्रेरी है। मेरी राय में
CRFSuite बेहतर है।

  • CRFSuite के लेखक का दावा है कि यह CRF ++ से 20 गुना तेज है एक मॉडल को प्रशिक्षित करने में ।
  • इनपुट डेटा के लिए कम कठोर आवश्यकताएं।

यदि आप पायथन बाइंडिंग की तलाश कर रहे हैं तो CRFSuite भी बेहतर है क्योंकि आप पायथन में एक मॉडल को प्रशिक्षित कर सकते हैं, जबकि CRF ++ में आप केवल पायथन में मौजूदा मॉडल का परीक्षण कर सकते हैं। (वह मेरे लिए डील ब्रेकर था।) CRFSuite Python में उदाहरण कोड का एक गुच्छा के साथ आता है, जैसे NER, चनकिंग और POS टैगिंग।


3
क्या आप CRFSuite द्वारा प्रदान किए गए NER और चिनकिंग का उपयोग करने के बारे में विस्तार से बता सकते हैं? ऐसा लगता है कि यह एक अलग प्रारूप के प्रशिक्षण डेटा की अपेक्षा करता है। मैं इसे कहां पर ढूंढूँ?
लीजेंड

14

यहाँ कुछ अन्य आवरण / कार्यान्वयन हैं:

  • https://github.com/adsva/python-wapiti - http://wapiti.limsi.fr/ के लिए पायथन आवरण । वैपिटी तेज है; crfsuite बेंचमार्क, wapiti के लिए उचित नहीं है, क्योंकि wapiti एल-बीएफजीएस प्रशिक्षण को कई सीपीयू कोर में समानांतर कर सकता है, और बेंचमार्क में इस सुविधा का उपयोग नहीं किया गया था। WAPiti के साथ समस्या यह है कि यह एक पुस्तकालय के रूप में नहीं लिखा गया है। रैपर उस पर काबू पाने के लिए कड़ी मेहनत करता है, लेकिन आप अभी भी एक अप्राप्य प्राप्त कर सकते हैं exit(), और मैंने प्रशिक्षण के दौरान मेमोरी लीक देखी है। इसके अलावा, वैपिटी एक प्रकार की सुविधाओं में सीमित है जो यह प्रतिनिधित्व कर सकती है, लेकिन CRFsuite भी सीमित है (एक अलग तरीके से)। Wapiti को एक आवरण में बांधा गया है, इसे अलग से स्थापित करने की आवश्यकता नहीं है।
  • https://github.com/jakevdp/pyCRFsuite - crfsuite के लिए एक रैपर। रैपर काफी उन्नत है और एक इनपुट के रूप में स्कार्पी विरल मैट्रिस का उपयोग करने की अनुमति देता है, लेकिन ऐसा लगता है कि कुछ अनसुलझे मुद्दे हैं, कुछ मामलों में सेगफॉल्ट प्राप्त करना संभव है।
  • https://github.com/tpeng/python-crfsuite - एक और crfsuite रैपर। यह एक नहीं बल्कि सरल है; यह आसान स्थापना के लिए crfsuite बंडल करता है और इसे केवल 'pip install python-crfsuite' के साथ स्थापित किया जा सकता है।
  • https://github.com/larsmans/seqlearn संरचित परसेप्ट्रॉन प्रदान करता है जो कई मामलों में CRF का प्रतिस्थापन हो सकता है। सेक्लेरन में संरचित पर्सेप्ट्रॉन कार्यान्वयन बहुत तेज है। एक पीआर (लेखन के समय विलय नहीं किया गया है) जो sellearn में CRF समर्थन जोड़ता है; यह ठोस दिखता है।
  • https://github.com/timvieira/crf - यह काफी बुनियादी है और इसमें कुछ आवश्यक विशेषताएं नहीं हैं, लेकिन इसके लिए केवल बहुत ही आवश्यक है।

यदि आप CRFsuite प्रशिक्षण एल्गोरिदम और प्रशिक्षण की गति, pyCRFsuite की जरूरत है, तो आप seqlearn का उपयोग करने की सलाह देंगे, यदि आपको अधिक उन्नत CRFsuite एकीकरण की आवश्यकता है और आप किसी असुविधा का सामना करने के लिए तैयार हैं, तो python-wapiti अगर आपको आवश्यक हो तो प्रशिक्षण एल्गोरिथ्म या सुविधाओं की आवश्यकता होगी। CRFsuite में उपलब्ध नहीं (संक्रमणों पर कंडीशनिंग व्यक्तिगत टिप्पणियों की तरह) और सीवी / सी ++ कंपाइलर काम करने का कोई तरीका नहीं होने पर टिमवीरा का क्रैफ़ है, लेकिन एक प्रीबिल्ट सुपी उपलब्ध है।


7

मुझे लगता है कि आप जो देख रहे हैं वह PyStruct है

PyStruct का उद्देश्य एक आसान-से-संरचित शिक्षण और भविष्यवाणी पुस्तकालय का उपयोग करना है। वर्तमान में यह केवल अधिकतम-मार्जिन विधियों और एक अवधारणात्मक को लागू करता है, लेकिन अन्य एल्गोरिदम का पालन कर सकते हैं।

PyStruct का लक्ष्य शोधकर्ताओं के साथ-साथ गैर-विशेषज्ञों को संरचित पूर्ववर्ती एल्गोरिदम का उपयोग करने के लिए एक अच्छी तरह से प्रलेखित उपकरण प्रदान करना है। डिज़ाइन डरावने-सीखने के इंटरफ़ेस और सम्मेलनों के जितना संभव हो उतना करीब रहने की कोशिश करता है।

PyStructअच्छे प्रलेखन के साथ आता है , और यह सक्रिय रूप से जीथब पर विकसित होता है ।

नीचे एक मेज की तुलना है PyStructके साथ CRFsuiteऔर अन्य संकुल, से निकाला अजगर में संरचित भविष्यवाणी - PyStruct :

संरचित भविष्यवाणी सॉफ्टवेयर संकुल की तुलना

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.