पायथन में ट्विटर के लिए सेंटीमेंट विश्लेषण [बंद]


87

मैं एक खुला स्रोत कार्यान्वयन के लिए देख रहा हूँ, अधिमानतः पाठ वाक्य विश्लेषण ( http://en.wikipedia.org/wiki/Sentiment_analysis ) के अजगर में । क्या कोई ऐसे ओपन सोर्स कार्यान्वयन से परिचित है जिसका मैं उपयोग कर सकता हूं?

मैं एक एप्लिकेशन लिख रहा हूं जो कुछ खोज शब्द के लिए ट्विटर खोजता है, "यूट्यूब" कहता है, और "खुश" ट्वीट बनाम "दुखद" ट्वीट गिनाता है। मैं Google के एपेंगाइन का उपयोग कर रहा हूं, इसलिए यह अजगर में है। मैं ट्विटर से दिए गए खोज परिणामों को वर्गीकृत करने में सक्षम होना चाहता हूं और मैं अजगर में ऐसा करना चाहता हूं। मैं अब तक इस तरह की भावना का विश्लेषण करने वाला नहीं हूं, विशेष रूप से अजगर में नहीं। क्या आप ऐसे खुले स्रोत कार्यान्वयन से परिचित हैं जिनका मैं उपयोग कर सकता हूं? अधिमानतः यह पहले से ही अजगर में है, लेकिन यदि नहीं, तो उम्मीद है कि मैं इसे अजगर में अनुवाद कर सकता हूं।

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

BTW, ट्विटर ":)" और ":(" खोज में ऑपरेटरों का समर्थन करता है, जो सिर्फ ऐसा करने का लक्ष्य रखते हैं, लेकिन दुर्भाग्य से, उनके द्वारा प्रदान किया गया वर्गीकरण उतना महान नहीं है, इसलिए मुझे लगा कि मैं इसे स्वयं आजमा सकता हूं ।

धन्यवाद!

BTW, एक शुरुआती डेमो यहां है और मेरे पास अब तक का कोड यहां है और मैं इसे किसी भी इच्छुक डेवलपर के साथ ओपनसोर्स करना पसंद करूंगा।

जवाबों:


44

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

आप उन्नत विवेकशील मॉडलिंग के लिए टूलकिट में रुचि रख सकते हैं, जिसे आसानी से पायथन के साथ हस्तक्षेप किया जा सकता है। इसका उपयोग प्राकृतिक भाषा प्रसंस्करण के विभिन्न क्षेत्रों में वर्गीकरण कार्यों के लिए किया गया है। आपके पास कई अलग-अलग मॉडलों की एक पिक भी है। मेरा सुझाव है कि जब तक आप पहले से ही एक Naive Bayes classifier को लागू करने से परिचित हों, तब तक अधिकतम Entropy वर्गीकरण के साथ शुरुआत करें। यदि नहीं, तो आप इसे देखना चाहते हैं और मशीन सीखने के कार्य के रूप में सांख्यिकीय वर्गीकरण की एक अच्छी समझ प्राप्त करने के लिए इसे एक कोड कर सकते हैं।

ऑस्टिन कम्प्यूटेशनल भाषाविज्ञान समूहों में टेक्सास विश्वविद्यालय ने कक्षाएं आयोजित की हैं, जहां से निकलने वाली अधिकांश परियोजनाओं ने इस महान उपकरण का उपयोग किया है। आप कम्प्यूटेशनल भाषाविज्ञान II के लिए कोर्स पेज पर देख सकते हैं कि यह कैसे काम करता है और पिछले अनुप्रयोगों ने क्या कार्य किया है।

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

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


धन्यवाद। मैं केवल रातों में ऐसा कर रहा हूं, इसलिए ... इसमें कुछ समय लगेगा, लेकिन मैं एक अपडेट पोस्ट करूंगा जब मेरे पास कुछ तैयार हो जाएगा
Ran

7
एनएलटीके कोड अपाचे लाइसेंस 2.0 के अनुसार nltk.org/faq के
amit

1
आप क्यों कहते हैं कि Weka शैक्षणिक उद्देश्यों के लिए है? यह पेंटा बीआई सूट का हिस्सा नहीं है? और पेंटाहो उद्यमों की सेवा करता है।
स्वप्निल

77

उसके साथ अच्छा भाग्य।

वाक्य काफी प्रासंगिक है, और ट्वीट करने वाली संस्कृति समस्या को बदतर बना देती है क्योंकि आपको संदर्भ नहीं दिया जाता है अधिकांश ट्वीट्स के लिए । ट्विटर का पूरा मुद्दा यह है कि आप बहुत ही कम संदेश में सार्थक संचार को साझा करने के लिए साझा "वास्तविक दुनिया" के संदर्भ में बड़ी मात्रा में लाभ उठा सकते हैं।

अगर वे कहते हैं कि वीडियो बुरा है, तो क्या इसका मतलब बुरा है, या बुरा है ?

एक भाषाविद् प्रोफेसर एक दिन अपनी कक्षा में व्याख्यान दे रहे थे। "अंग्रेजी में," उसने कहा, "एक डबल नकारात्मक एक सकारात्मक बनाता है। कुछ भाषाओं में, हालांकि, जैसे रूसी, एक डबल नकारात्मक अभी भी एक नकारात्मक है। हालांकि, ऐसी कोई भाषा नहीं है, जिसमें एक डबल नकारात्मक एक नकारात्मक बना सकता है।"

कमरे के पीछे से एक आवाज उठी, "हाँ। ठीक है।"


4
मुझे खुशी है कि आपके पास एक उपयोगी उत्तर था, जैसा कि मैंने अन्यथा आपको केवल उस उद्धरण के लिए उखाड़ना पड़ा। :-)
बेन ब्लैंक

2
मुझे लगता है कि सिडनी मोर्गनबेसर से उद्धरण "हाँ, हाँ" था
स्कॉट

19

आपके सुझावों के लिए सभी का धन्यवाद, वे वास्तव में बहुत उपयोगी थे! मैंने एक Naive Bayesian वर्गीकारक का उपयोग किया, जिसे मैंने यहाँ से उधार लिया था । मैंने इसे अच्छे / बुरे कीवर्ड की सूची के साथ फीड करके शुरू किया था और फिर यूजर फीडबैक को नियोजित करके एक "सीखना" फीचर जोड़ा था। यह बहुत अच्छा काम करने के लिए निकला।

मेरे काम का पूरा विवरण एक ब्लॉग पोस्ट के रूप में ।

फिर, आपकी मदद बहुत उपयोगी थी, इसलिए धन्यवाद!


1
ब्लॉग पोस्ट लिंक अब काम नहीं कर रहा है, क्या आप इसे अपडेट कर सकते हैं?
पेत्रुति मिहाई

हाय @PetrutiuMihai वास्तव में उस ब्लॉग को ले लिया गया था। लेकिन यह बहुत पुराना सामान है, अनुसंधान के मोर्चे पर आज के रूप में नहीं, इसलिए आप बहुत याद नहीं करेंगे;
रॉन

14

मैंने एक शब्द सूची का निर्माण किया है जिसमें भावना के साथ लेबल दिया गया है। आप इसे यहां से एक्सेस कर सकते हैं:

http://www2.compute.dtu.dk/pubdb/views/edoc_download.php/6010/zip/imm6010.zip

आपको मेरे ब्लॉग पर एक छोटा पायथन प्रोग्राम मिलेगा:

http://finnaarupnielsen.wordpress.com/2011/06/20/simplest-sentiment-analysis-in-python-with-af/

यह पोस्ट प्रदर्शित करती है कि एकल वाक्य के साथ-साथ ट्विटर के साथ शब्द सूची का उपयोग कैसे करें।

शब्द सूचियों के दृष्टिकोण की अपनी सीमाएँ हैं। आपको लेख "मेरी नई सूची: माइक्रोब्लॉग्स में भावना विश्लेषण के लिए शब्द सूची का मूल्यांकन" में मेरी शब्द सूची की सीमाओं की जांच मिलेगी। वह लेख मेरे होमपेज से उपलब्ध है।

कृपया ध्यान दें unicode(s, 'utf-8')कि कोड से गायब है (paedagogic कारणों के लिए)।


"पोस्टीरियर स्पेस अब उपलब्ध नहीं है" क्या आप कहीं अजगर कोड पोस्ट कर सकते हैं?
andilabs

1
इसे नोट करने के लिए धन्यवाद। मैंने अब एक पोस्टप्रेस लिंक को एक वर्डप्रेस लिंक में बदल दिया है जहां मैंने अपना ब्लॉग स्थानांतरित किया है।
फिन Finरूप नील्सन

क्या आप अपनी भावुकता के साथ किसी प्रयोग के बारे में कुछ कह सकते हैं? मेरा मतलब है कि वर्गीकरण के बारे में क्या था, जो कि पूर्वधारणा थी।
औरलैब्स

1
मेरे पास यहां कुछ मूल्यांकन के लिंक हैं: neuro.compute.dtu.dk/wiki/AFINN#Evaluation मैंने खुद सटीक, याद और वर्गीकरण के मामले में इसके प्रदर्शन का मूल्यांकन नहीं किया है। मैंने जो किया वह मिस्लोव के अमेज़ॅन मैकेनिकल तुर्क लेबलिंग ट्वीट्स के साथ रैंक सहसंबंध था।
फिन Finरूप नील्सन

10

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

अब, यह कहा जा रहा है, भावना डोमेन विशिष्ट है, और आपको सामान्य उद्देश्य डेटा-सेट के साथ उच्च-स्तरीय सटीकता प्राप्त करना मुश्किल हो सकता है।

सौभाग्य।


डारन, मैं तुम्हें प्रॉमिस करने जा रहा था।
दाने द साने

4

मुझे लगता है कि आपको यह खोजना मुश्किल हो सकता है कि आप क्या कर रहे हैं। सबसे करीबी चीज जो मुझे पता है लिंगपाइप है , जिसमें कुछ भावना विश्लेषण कार्यक्षमता है और एक सीमित प्रकार के ओपन-सोर्स लाइसेंस के तहत उपलब्ध है, लेकिन जावा में लिखा गया है।

इसके अलावा, भावना विश्लेषण प्रणाली आमतौर पर उत्पाद / फिल्म समीक्षा डेटा पर एक प्रणाली को प्रशिक्षित करके विकसित की जाती है जो औसत ट्वीट से काफी अलग है। वे कई वाक्यों के साथ पाठ के लिए अनुकूलित होने जा रहे हैं, सभी एक ही विषय के बारे में। मुझे संदेह है कि आप खुद एक नियम-आधारित प्रणाली के साथ आने में बेहतर करेंगे, शायद एक भावुक शब्दों के आधार पर जैसे कि पिट्सबर्ग विश्वविद्यालय प्रदान करता है

वास्तव में सुंदर इंटरफ़ेस (और ट्विट्र्र्र्र ) के समान विचार के कार्यान्वयन के लिए हम ठीक महसूस करते हैं



1

हो सकता है कि TextBlob (NLTK और पैटर्न पर आधारित) आपके लिए सही भावना विश्लेषण उपकरण हो।


1

मैं कुछ समय पहले प्राकृतिक भाषा टूलकिट में आया था। आप शायद इसे एक शुरुआती बिंदु के रूप में उपयोग कर सकते हैं। इसमें बहुत सारे मॉड्यूल और एडऑन्स भी हैं, इसलिए शायद उनके पास पहले से ही कुछ समान है।


0

थोड़ा निराला विचार: आप ट्विटर एपीआई का उपयोग करके ट्वीट्स का एक बड़ा सेट डाउनलोड करने की कोशिश कर सकते हैं, और फिर इमोटिकॉन्स का उपयोग करके उस सेट के सबसेट को वर्गीकृत कर सकते हैं: ":)", ":", ",": D ", आदि के लिए एक सकारात्मक समूह। , और ":(", आदि के साथ एक और नकारात्मक समूह

एक बार जब आपके पास वह क्रूड वर्गीकरण होता है, तो आप आवृत्ति या एनग्राम विश्लेषण या उन पंक्तियों के साथ कुछ और सुराग खोज सकते हैं।

यह मूर्खतापूर्ण लग सकता है, लेकिन इस पर गंभीर शोध किया गया है ("भावना विश्लेषण" और इमोटिकॉन की खोज)। देखने लायक।


0

TweetFeel द्वारा एक ट्विटर सेंटीमेंट एपीआई है जो ट्वीट्स का उन्नत भाषाई विश्लेषण करता है, और सकारात्मक / नकारात्मक ट्वीट्स को पुनः प्राप्त कर सकता है। Http://www.webservius.com/corp/docs/tweetfeel_sentiment.htm देखें


0

स्क्रैच से ट्विटर सेंटीमेंट एनालिसिस को कोड करने में रुचि रखने वालों के लिए, GitHub पर असाइनमेंट कोड (असाइनमेंट 1 - लिंक के भाग के रूप में ) के साथ एक कोर्टेरा कोर्स " डेटा साइंस " है । भावनाएं AFINN-111 का हिस्सा हैं

आप उदाहरण के लिए, यहां काम कर समाधान पा सकते हैं । AFINN-111 भावना सूची के अलावा, ट्वीट में शर्तों की आवृत्ति के आधार पर एक गतिशील शब्द सूची बनाने का एक सरल कार्यान्वयन है जिसमें एक पॉज़ / नकारात्मक स्कोर ( यहाँ देखें ) है।

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