अपना खुद का फेसबुक सेंटीमेंट एनालिसिस टूल प्लेटोब्लॉकचैन डेटा इंटेलिजेंस कैसे बनाएं। लंबवत खोज। ऐ.

अपना खुद का फेसबुक सेंटीमेंट एनालिसिस टूल कैसे बनाएं

इस लेख में हम चर्चा करेंगे कि कैसे आप आसानी से एक साधारण फेसबुक सेंटीमेंट एनालिसिस टूल बना सकते हैं जो सार्वजनिक पोस्ट (दोनों उपयोगकर्ताओं और पेजों से) को सकारात्मक, नकारात्मक और तटस्थ के रूप में वर्गीकृत करने में सक्षम है। हम Facebook के ग्राफ़ API खोज और Datumbox API 1.0v का उपयोग करने जा रहे हैं। के समान ट्विटर सेंटीमेंट एनालिसिस टूल जिसे हमने कुछ महीने पहले बनाया था, यह कार्यान्वयन PHP में लिखा गया है फिर भी आप अपनी पसंद की कंप्यूटर भाषा में बहुत आसानी से अपना टूल बना सकते हैं।

अद्यतन: डाटंबॉक्स मशीन लर्निंग फ्रेमवर्क अब खुला-स्रोत और मुफ्त है डाउनलोड. यदि आप एपीआई सीमाओं को प्रभावित किए बिना एक सेंटीमेंट एनालिसिस क्लासिफायर का निर्माण करना चाहते हैं, तो com.datumbox.applications.nlp.TextClassifier वर्ग का उपयोग करें।

टूल का पूरा PHP कोड पर पाया जा सकता है Github.

फेसबुक सेंटीमेंट एनालिसिस कैसे काम करता है?

जैसा कि हमने पिछले लेखों में चर्चा की, प्रदर्शन भावनाओं का विश्लेषण उन्नत मशीन लर्निंग और प्राकृतिक भाषा प्रसंस्करण तकनीकों का उपयोग करने की आवश्यकता है। पिछली पोस्टों में हमने कई टेक्स्ट क्लासिफायर्स को विस्तार से देखा जैसे कि भोले भाले, सॉफ्टमैक्स रिग्रेशन और मैक्स एन्ट्रॉपी, हमने उपयोग करने के महत्व पर चर्चा की फीचर चयन पाठ वर्गीकरण की समस्याओं में और अंत में हमने देखा कि कोई कैसे कार्यान्वयन को विकसित कर सकता है जावा में बहुराष्ट्रीय Naive Bayes क्लासिफायरियर.

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

Datumbox's . का उपयोग करके उपरोक्त प्रक्रिया को काफी सरल बनाया गया है मशीन लर्निंग एपीआई. फेसबुक पर सेंटीमेंट एनालिसिस करने के लिए केवल ग्राफ़ एपीआई सर्च को कॉल करना होता है ताकि रुचि के पदों को निकाला जा सके, उनके टेक्स्ट को निकाला जा सके और उनका वर्गीकरण प्राप्त करने के लिए डेटमबॉक्स सेंटीमेंट एनालिसिस एपीआई को कॉल किया जा सके।

फेसबुक सेंटीमेंट एनालिसिस टूल बनाना

फेसबुक सेंटीमेंट एनालिसिस टूल बनाने के लिए आपको दो चीजों की आवश्यकता होती है: सार्वजनिक पोस्ट लाने के लिए फेसबुक एपीआई का उपयोग करना और उनके कीवर्ड के आधार पर पोस्ट की ध्रुवीयता का मूल्यांकन करना। पहले कार्य के लिए हम Facebook के ग्राफ़ API खोज और दूसरे के लिए Datumbox API 1.0v का उपयोग करेंगे।

हम 2 वर्गों का उपयोग करके उपकरण के विकास को गति देंगे: The फेसबुक PHP एसडीके जो हमें आसानी से ग्राफ़ खोज और डेटाबॉक्स तक पहुँचने की अनुमति देगा पीएचपी-एपीआई-क्लाइंट. एक बार फिर इस प्रक्रिया में सबसे जटिल कार्य एक फेसबुक एप्लिकेशन बनाना है जो हमें फेसबुक से पोस्ट लाने की अनुमति देगा; डेटमबॉक्स एकीकरण केक का एक टुकड़ा है।

अपना खुद का फेसबुक एप्लिकेशन बनाना

फेसबुक-भावना-विश्लेषणदुर्भाग्य से फेसबुक ने एक्सेस करने से पहले प्रमाणित करना अनिवार्य कर दिया है उनका ग्राफ़ खोज API. शुक्र है कि वे उपयोग करने में बहुत आसान प्रदान करते हैं एसडीके जो एकीकरण के अधिकांश तकनीकी विवरणों का ध्यान रखता है। अभी भी इसका उपयोग करने से पहले आपको अपने फेसबुक अकाउंट का उपयोग करके एक नया फेसबुक एप्लिकेशन बनाना होगा।

प्रक्रिया सरल है। के लिए जाओ फेसबुक डेवलपर्स पेज (यदि आपने पहले कभी फेसबुक एप्लिकेशन नहीं लिखा है तो आपको पंजीकरण करना होगा)। मेनू पर ऐप्स पर क्लिक करें और "नया ऐप बनाएं" चुनें।

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

इसके बाद अपने एप्लिकेशन की सेटिंग में जाएं और पेज के नीचे "+ ऐप प्लेटफॉर्म" पर क्लिक करें। पॉपअप पर "वेबसाइट" का चयन करें और फिर साइट यूआरएल पते पर उस स्थान का यूआरएल डालें जहां आप अपना टूल अपलोड करेंगे (उदाहरण: https://localhost/)। "परिवर्तन सहेजें" पर क्लिक करें और आपका काम हो गया!

अपना डेटाबॉक्स एपीआई कुंजी प्राप्त करें

डेटमबॉक्स एपीआई तक पहुँचने के लिए साइन अप करें एक मुफ्त खाते के लिए और अपने पर जाएँ एपीआई क्रेडेंशियल पैनल अपनी एपीआई कुंजी प्राप्त करने के लिए।

फेसबुक सेंटीमेंट एनालिसिस क्लास विकसित करना

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

यहाँ आवश्यक टिप्पणियों के साथ कक्षा का कोड है।

<?php
include_once(dirname(__FILE__).'/DatumboxAPI.php');
include_once(dirname(__FILE__).'/facebook-php-sdk/src/facebook.php');
class FacebookSentimentAnalysis {
    
    protected $datumbox_api_key; //Your Datumbox API Key. Get it from https://www.datumbox.com/apikeys/view/
    
    protected $app_id; //Your Facebook APP Id. Get it from https://developers.facebook.com/ 
    protected $app_secret; //Your Facebook APP Id. Get it from https://developers.facebook.com/
    
    /**
    * The constructor of the class
    * 
    * @param string $datumbox_api_key   Your Datumbox API Key
    * @param string $app_id             Your Facebook App Id
    * @param string $app_secret         Your Facebook App Secret
    * 
    * @return FacebookSentimentAnalysis  
    */
    public function __construct($datumbox_api_key, $app_id, $app_secret){
        $this->datumbox_api_key=$datumbox_api_key;
        
        $this->app_id=$app_id;
        $this->app_secret=$app_secret;
    }
    
    /**
    * This function fetches the fb posts list and evaluates their sentiment
    * 
    * @param array $facebookSearchParams The Facebook Search Parameters that are passed to Facebook API. Read more here https://developers.facebook.com/docs/reference/api/search/
    * 
    * @return array
    */
    public function sentimentAnalysis($facebookSearchParams) {
        $posts=$this->getPosts($facebookSearchParams);
        
        return $this->findSentiment($posts);
    }
    
    /**
    * Calls the Open Graph Search method of the Facebook API for particular Graph API Search Parameters and returns the list of posts that match the search criteria.
    * 
    * @param mixed $facebookSearchParams The Facebook Search Parameters that are passed to Facebook API. Read more here https://developers.facebook.com/docs/reference/api/search/
    * 
    * @return array $posts
    */
    protected function getPosts($facebookSearchParams) {
        //Use the Facebook SDK Client
        $Client = new Facebook(array(
          'appId'  => $this->app_id,
          'secret' => $this->app_secret,
        ));

        // Get User ID
        $user = $Client->getUser();

        //if Use is not set, redirect to login page
        if(!$user) {
            header('Location: '.$Client->getLoginUrl());
            die();
        }
        
        $posts = $Client->api('/search', 'GET', $facebookSearchParams); //call the service and get the list of posts
        
        unset($Client);
        
        return $posts;
    }
    
    /**
    * Finds the Sentiment for a list of Facebook posts.
    * 
    * @param array $posts List of posts coming from Facebook's API
    * 
    * @param array $posts
    */
    protected function findSentiment($posts) {
        $DatumboxAPI = new DatumboxAPI($this->datumbox_api_key); //initialize the DatumboxAPI client
        
        $results=array();
        if(!isset($posts['data'])) {
            return $results;
        }
        
        foreach($posts['data'] as $post) { //foreach of the posts that we received
            $message=isset($post['message'])?$post['message']:'';
            
            if(isset($post['caption'])) {
                $message.=("nn".$post['caption']);
            }
            if(isset($post['description'])) {
                $message.=("nn".$post['description']);
            }
            if(isset($post['link'])) {
                $message.=("nn".$post['link']);
            }
            
            $message=trim($message);
            if($message!='') {
                $sentiment=$DatumboxAPI->SentimentAnalysis(strip_tags($message)); //call Datumbox service to get the sentiment
                
                if($sentiment!=false) { //if the sentiment is not false, the API call was successful.
                    $tmp = explode('_',$post['id']);
                    if(!isset($tmp[1])) {
                        $tmp[1]='';
                    }
                    $results[]=array( //add the post message in the results
                        'id'=>$post['id'],
                        'user'=>$post['from']['name'],
                        'text'=>$message,
                        'url'=>'https://www.facebook.com/'.$tmp[0].'/posts/'.$tmp[1],
                        'sentiment'=>$sentiment,
                    );
                }
            }
        }
        
        unset($posts);
        unset($DatumboxAPI);
        
        return $results;
    }
}

जैसा कि आप ऊपर कंस्ट्रक्टर पर देख सकते हैं, हम उन कुंजियों को पास करते हैं जो 2 एपीआई तक पहुंचने के लिए आवश्यक हैं। पब्लिक मेथड सेंटीमेंट एनालिसिस () पर हम फेसबुक क्लाइंट को इनिशियलाइज़ करते हैं, हम प्रमाणित करते हैं और हम पोस्ट की सूची को पुनः प्राप्त करते हैं। ध्यान दें कि यदि आपने अभी तक अपने आवेदन को अधिकृत नहीं किया है या यदि आप अपने खाते से फेसबुक में लॉग इन नहीं हैं, तो आपको ऐप को लॉग इन करने और अधिकृत करने के लिए Facebook.com पर रीडायरेक्ट किया जाएगा (यह आपका ऐप है, गोपनीयता के मुद्दों के बारे में कोई चिंता नहीं है)। एक बार पदों की सूची प्राप्त हो जाने के बाद उन्हें अपनी ध्रुवीयता प्राप्त करने के लिए डेटामबॉक्स एपीआई को पास कर दिया जाता है।

आप जाने के लिए अच्छे हैं! आप Facebook पर सेंटीमेंट एनालिसिस करने के लिए इस क्लास का उपयोग करने के लिए तैयार हैं। तुम कर सकते हो डाउनलोड जीथब से फेसबुक सेंटीमेंट एनालिसिस टूल का पूरा PHP कोड।

कार्यान्वयन का उपयोग और विस्तार

दिए गए टूल का उपयोग करने के लिए आपको ऊपर बताए अनुसार Facebook एप्लिकेशन बनाना होगा और फिर config.php फ़ाइल को संशोधित करके इसे कॉन्फ़िगर करना होगा। इस फाइल में आपको डेटमबॉक्स एपीआई की, फेसबुक ऐप आईडी और सीक्रेट डालना होगा जिसे आपने पहले कॉपी किया था।

अंत में पिछली पोस्ट में हमने एक स्टैंडअलोन बनाया है ट्विटर सेंटीमेंट एनालिसिस टूल. 10 कार्यान्वयनों को मर्ज करने और एक ऐसा टूल बनाने में आपको 2 मिनट से अधिक समय नहीं लगेगा जो फेसबुक और ट्विटर दोनों से पोस्ट लाने और एक ही रिपोर्ट में परिणाम प्रस्तुत करने में सक्षम है।

अगर आपको लेख अच्छा लगा हो तो कृपया इसे फेसबुक या ट्विटर पर साझा करने के लिए एक मिनट का समय दें! मैं

समय टिकट:

से अधिक दातुनॉक्स