चलो इसे जमीन से बाहर काम करते हैं। वर्गीकरण (वर्गीकरण के रूप में भी जाना जाता है) पर्यवेक्षित शिक्षण का एक उदाहरण है । आपके पास सीखने की निगरानी में:
- मॉडल - ऐसा कुछ जो आपके डेटा में आंतरिक संरचना का अनुमान लगाता है, जिससे आप इसके बारे में तर्क कर सकते हैं और उपयोगी भविष्यवाणियां कर सकते हैं (उदाहरण के लिए किसी वस्तु का वर्ग); सामान्य रूप से मॉडल में ऐसे पैरामीटर होते हैं जिन्हें आप "सीखना" चाहते हैं
- प्रशिक्षण और परीक्षण डेटासेट - उन वस्तुओं का सेट जो आप अपने मॉडल के प्रशिक्षण के लिए उपयोग करते हैं (मापदंडों के लिए अच्छे मूल्यों को खोजने) और आगे का मूल्यांकन
- प्रशिक्षण और वर्गीकरण एल्गोरिदम - पहले यह बताता है कि प्रशिक्षण डेटासेट से मॉडल कैसे सीखें, दूसरा दिखाता है कि प्रशिक्षित मॉडल को दिए गए नए ऑब्जेक्ट की कक्षा कैसे प्राप्त करें
अब स्पैम वर्गीकरण का एक सरल मामला लेते हैं। आपका प्रशिक्षण डाटासेट ईमेल + संगत लेबल का एक कोष है - "स्पैम" या "स्पैम नहीं"। परीक्षण डेटासेट में एक ही संरचना होती है, लेकिन कुछ स्वतंत्र ईमेल से बना होता है (आम तौर पर कोई व्यक्ति अपने डेटासेट को विभाजित करता है और कहता है, इसका 9/10 भाग प्रशिक्षण के लिए और 1/10 परीक्षण के लिए उपयोग किया जाता है)। ईमेल को मॉडल करने का एक तरीका है कि उनमें से प्रत्येक को शब्दों के सेट (बैग) के रूप में दर्शाया जाए। यदि हम मानते हैं कि शब्द एक-दूसरे से स्वतंत्र हैं, तो हम Naive Bayes classifier का उपयोग कर सकते हैं , अर्थात, प्रत्येक शब्द और प्रत्येक वर्ग (प्रशिक्षण एल्गोरिथ्म) के लिए पूर्व संभाव्यता की गणना करें और फिर नए दस्तावेज़ से संबंधित संभावित संभावनाएँ खोजने के लिए Bayes प्रमेय लागू करें। विशेष वर्ग।
तो, मूल रूप से हमारे पास है:
raw model + training set + training algorithm -> trained model
trained model + classification algorithm + new object -> object label
अब ध्यान दें कि हमने शब्दों के एक बैग के रूप में हमारी वस्तुओं (दस्तावेजों) का प्रतिनिधित्व किया। लेकिन क्या एकमात्र तरीका है? वास्तव में, हम कच्चे पाठ से बहुत अधिक निकाल सकते हैं। उदाहरण के लिए, शब्दों के बजाय जैसा कि हम उनके तने या नींबू का उपयोग कर सकते हैं , शोर को रोकते हैं , शब्दों का पीओएस टैग जोड़ सकते हैं , नामित संस्थाएं निकाल सकते हैं या यहां तक कि दस्तावेज़ की HTML संरचना का भी पता लगा सकते हैं। वास्तव में, एक दस्तावेज का अधिक सामान्य प्रतिनिधित्व (और, सामान्य रूप से, किसी भी वस्तु) एक फीचर वेक्टर है । पाठ के लिए उदाहरण:
actor, analogue, bad, burn, ..., NOUN, VERB, ADJ, ..., in_bold, ... | label
0, 0, 1, 1, ..., 5, 7, 2, ..., 2, ... | not spam
0, 1, 0, 0, ..., 3, 12, 10, ..., 0, ... | spam
यहाँ पहली पंक्ति संभावित विशेषताओं की सूची है और बाद की पंक्तियाँ बताती हैं कि किसी दस्तावेज़ में कितनी बार यह सुविधा होती है। उदाहरण के लिए पहले दस्तावेज़ में "अभिनेता" शब्द की कोई घटना नहीं है, "जलना" शब्द की 1 घटना, 5 संज्ञा, 2 विशेषण और पाठ के 2 टुकड़े बोल्ड। अंतिम कॉलम एक परिणामी क्लास लेबल से मेल खाता है।
फीचर वेक्टर का उपयोग करके आप अपने ग्रंथों के किसी भी गुण को शामिल कर सकते हैं। हालाँकि सुविधाओं के अच्छे सेट को खोजने में कुछ समय लग सकता है।
और मॉडल और एल्गोरिदम के बारे में क्या? क्या हम Naive Bayes के लिए बाध्य हैं। हर्गिज नहीं। लॉजिस्टिक रिग्रेशन , एसवीएम , निर्णय पेड़ - बस कुछ लोकप्रिय क्लासिफायर का उल्लेख करने के लिए। (ध्यान दें, कि हम "क्लासिफायर" कहते हैं ज्यादातर मामलों में हमारा मतलब है कि मॉडल + प्रशिक्षण और वर्गीकरण के लिए इसी एल्गोरिदम)।
कार्यान्वयन के लिए, आप कार्य को 2 भागों में विभाजित कर सकते हैं:
- निष्कर्षण - कच्चे ग्रंथों को फीचर वैक्टर में बदलना।
- ऑब्जेक्ट वर्गीकरण - मॉडल बनाना और लगाना।
पहले बिंदु को अच्छी तरह से कई एनएलपी पुस्तकालयों में काम किया जाता है । दूसरा मशीन सीखने के बारे में है, इसलिए, आपके डेटासेट के आधार पर, आप या तो उपयोग कर सकते हैं Weka , या MLlib ।