2010-04-03 15 views
12

मैं एनएलपी और एनएलटीके में एक नौसिखिया हूं। मुझे एनएलपी में बहुत दिलचस्पी है और इसलिए कुछ स्थानीय संस्थानों में एआई पर सप्ताहांत पाठ्यक्रम में शामिल हो गया, जिसके लिए मुझे पाठ्यक्रम पूरा करने के लिए एक परियोजना करने के लिए की आवश्यकता है, और मैंने इसे एनएलपी में करने का फैसला किया। समस्या यह है कि प्रशिक्षक इस कोर्स के लिए बिल्कुल अच्छा नहीं है (मेरे अनुसार वह सिर्फ एक charlatan है) (या के रूप में पढ़ाने में बहुत दिलचस्पी नहीं हो सकती है यह वह आखिरी बैच है जिसके बाद संस्थान भेजने जा रहा है उसे बाहर)। इसलिए मैं ऐसी परिस्थिति में फंस गया हूं जहां मुझे को इस परियोजना को ढाई महीने की अवधि में पूरा करना है, लेकिन मैदान में व्यक्ति व्यक्ति के रूप में मुझे को समझने के लिए आवश्यक चीजों को समझना बहुत मुश्किल लगता है परियोजना। (साथ ही, जैसा कि मैं पूर्ण समय काम कर रहा हूं, मुझे इस पर समर्पित करने के लिए पर्याप्त समय नहीं मिल रहा है)।प्राकृतिक भाषा प्रसंस्करण - शुरुआती परियोजनाओं के लिए विचार

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

(2) एनएलटीके की अच्छी समीक्षा है, और व्यापक दस्तावेज़ीकरण और एक बहुत ही सक्रिय समुदाय है।

तो समस्या यह है कि मुझे क्या प्रोजेक्ट लेना चाहिए, ताकि मैं कुछ सीख सकूं और समय पर परियोजना को पूरा कर पाऊंगा। (मैं NLP में लगभग कुछ भी नहीं पता है, यहां तक ​​कि पता नहीं वास्तव में कॉर्पोरा क्या है ... :()

तो, मुझे कुछ विषयों है कि मैं इस परियोजना के लिए विचार करना चाहिए का सुझाव दें।

सादर,

microkernel :)

+0

क्या आपने http://www.nltk.org/projects पर देखा है? – miku

+0

हां, मैंने देखा लेकिन समस्या शुरुआती के रूप में है, मुझे नहीं पता कि कौन मेरे लिए उपयुक्त होगा (मुझे 1 महीने के समय में इसे खत्म करने पर विचार करना) क्या आप सुझाव दे सकते हैं कि मेरे जैसे शुरुआती लोगों के लिए क्या उपयुक्त होगा। – Microkernel

+3

"मैं किस परियोजना को कर सकता हूं" प्रश्न का प्रकार। – alvas

उत्तर

11

अधिकांश "शुरुआत" परियोजनाओं अच्छी तरह से ज्ञात एल्गोरिदम reimplementing का उद्देश्य है, तो शुरुआत में जाना जाता समाधान के खिलाफ उनके परिणामों की पुष्टि करने से सीख सकते हैं। इसके लिए, मैं एक ईमेल स्पैम फ़िल्टर की तरह कुछ सरल की सिफारिश करता हूं।

text|is_spam 
hi bob! how are you?|0 
what time are you coming over|0 
how to buy viagra now!|1 

इसके बाद, आप एक परीक्षण बनाएंगे: आप की तरह एक प्रशिक्षण फ़ाइल बनाने, यानी एक CSV फ़ाइल में कई असली ईमेल के पाठ की प्रतिलिपि और उन्हें मैन्युअल रूप से स्पैम लेबल या नहीं स्पैम, द्वारा शुरू कर दूं फ़ाइल, प्रशिक्षण फ़ाइल के समान प्रारूप में, लेकिन स्पष्ट रूप से विभिन्न उदाहरणों के साथ।

फिर, आप अपना वर्गीकरण/स्पैम फ़िल्टर बनायेंगे। स्पैम फ़िल्टर को लागू करने के कई अलग-अलग तरीके हैं, लेकिन सबसे बुनियादी केवल आवृत्ति की गणना करके है जिसके साथ एक शब्द is_spam = 0 और is_spam = 1 के साथ प्रकट होता है। उदाहरण के लिए, उपर्युक्त प्रशिक्षण फ़ाइल के आधार पर, "वियाग्रा" शब्द 1 स्पैम वर्गीकरण से जुड़ा हुआ है, लेकिन 0 गैर-स्पैम वर्गीकरण, इसलिए संभवत: भविष्य में "वायाग्रा" शब्द वाले ईमेल को स्पैम के रूप में वर्गीकृत किया जाएगा। इसी प्रकार, शब्द "कैसे" 1 स्पैम और 1 गैर-स्पैम ईमेल में दिखाई देता है, इसलिए यह एक निश्चित वर्गीकरण को इंगित करने की संभावना कम है।

फिर आप अपने क्लासिफायर को प्रशिक्षण फ़ाइल पर प्रशिक्षित करेंगे, और परीक्षण फ़ाइल पर इसे चलाकर इसकी सटीकता की गणना करेंगे।

यदि उपर्युक्त विधि बहुत सरल है, तो आप एन-ग्राम (शब्दों के समूह), या यहां तक ​​कि व्याकरणिक संरचना को गिनती करके पहले जटिलता बढ़ा सकते हैं (उदाहरण के लिए बहुत सारे स्पैम आमतौर पर यादृच्छिक कचरा होता है कीवर्ड के साथ आबादी, जहां गैर-स्पैम आमतौर पर कुछ समझ में आता है)।आप संभावित रूप से कई अलग-अलग वर्गीकरण लागू कर सकते हैं, और उनकी सटीकता की तुलना कर सकते हैं।

माना जाता है कि इसके मुकाबले थोड़ा और कुछ है, लेकिन इन तरीकों को इंटरनेट पर अच्छी तरह से प्रलेखित किया गया है, और यह आपकी परियोजना है इसलिए यह आपके आगे अनुसंधान करने के लिए है। सौभाग्य।

+0

आपको बहुत बहुत धन्यवाद :) यह मेरे लिए विचार करने के लिए वास्तव में दिलचस्प परियोजना है। (समय के साथ स्पैम के पैटर्न के बारे में जानने के लिए, पिछले कुछ महीनों से मैं उन सभी स्पैम एकत्र कर रहा हूं जिन्हें मैं प्राप्त कर रहा था (उन्हें एक अलग फ़ोल्डर में रखो)) और अब मेरे पास 2000 से अधिक स्पैम एकत्र हुए हैं, अनुमान लगाएं कि यह पर्याप्त रूप से बड़ा प्रशिक्षण है डेटा :)। अब यह कुछ उपयोग के लिए आया है। वाह!!! सहायता साथी के लिए धन्यवाद :) – Microkernel

7

कुछ विचार:।

  • एक प्रोग्राम है जो भाषा है कि कोई इनपुट फ़ाइल में लिखा है आप अलग-अलग भाषाओं के कुछ नमूने आवश्यकता होगी अनुमान लगा लेता है; विकिपीडिया एक उत्कृष्ट स्रोत है।

  • एक प्रोग्राम जो टेक्स्ट कॉर्पस पर आधारित है, कॉर्पस के समान शब्दों या वाक्यों को बनाता है।

  • Voynich Manuscript के साथ कुछ दिलचस्प करने के लिए खोजें। आप ट्रांसक्रिप्शन here पा सकते हैं। ।

(वैसे, "कोष" बस "पाठ का गुच्छा" के लिए एक फैंसी शब्द Wikipedia से है: "। (ग्रंथों की एक बड़ी और संरचित सेट अब आम तौर पर इलेक्ट्रॉनिक रूप से संग्रहीत और संसाधित)" शब्द आम तौर पर उन ग्रंथों को संदर्भित करता है जिनका उपयोग आप अपने एल्गोरिदम को प्रशिक्षित करने और परीक्षण करने के लिए करते हैं, क्योंकि अज्ञात ग्रंथों के विपरीत यह क्षेत्र में सामने आएगा।)

+0

आपको बहुत बहुत धन्यवाद :) पहला व्यक्ति मेरी पहुंच में दिखता है (अनुमान है कि Google टूलबार वेबपृष्ठ की भाषा खोजने के लिए उपयोग करता है और अनुवाद सहायता मांगता है)। अंतिम व्यक्ति भी दिलचस्प दिखता है, लेकिन वर्तमान स्थिति में मैं हूं, मैं ऐसा नहीं कर सकता हूं मुझे लगता है ... सुझावों के लिए धन्यवाद :) – Microkernel

0

आप वीओआईपी पर ग्राहक सहायता कॉल के कुछ हिस्सों को रिकॉर्ड करने के लिए एनएलपी का उपयोग कर सकते हैं फ़ोन। उपयोगकर्ता द्वारा अन्य विकल्प इनपुट कीपैड से लिया जा सकता है। इस प्रणाली के साथ, आप एक सहायक कर्मियों की आवश्यकता को खत्म कर सकते हैं। उदाहरण के लिए - वॉयस-आधारित प्राधिकरण वाले संगठन में ईमेल आईडी पर पासवर्ड रीसेट करें।

1

Kaggle जैसी वेबसाइटों पर पोस्ट की गई चुनौतियों पर काम करने का प्रयास करें। उनके पास detecting insults in social commentary जैसी दिलचस्प चुनौतियां हैं जिनके लिए डेटा स्वतंत्र रूप से उपलब्ध है।

संबंधित मुद्दे