اپنا فیس بک کے جذباتی تجزیہ کا ٹول پلیٹو بلاکچین ڈیٹا انٹیلی جنس کیسے بنائیں۔ عمودی تلاش۔ عی

اپنا فیس بک جذباتی تجزیہ کا ٹول کیسے بنائیں

اس مضمون میں ہم اس بات پر بات کریں گے کہ آپ کس طرح آسانی سے ایک سادہ فیس بک جذباتی تجزیہ ٹول بنا سکتے ہیں جو عوامی پوسٹس (صارفین اور صفحات دونوں سے) کو مثبت، منفی اور غیر جانبدار کے طور پر درجہ بندی کرنے کے قابل ہو۔ ہم فیس بک کی گراف API تلاش اور ڈیٹام باکس API 1.0v استعمال کرنے جا رہے ہیں۔ کی طرح ٹویٹر جذباتی تجزیہ کا آلہ جسے ہم نے چند ماہ پہلے بنایا تھا، یہ عمل پی ایچ پی میں لکھا گیا ہے، اس کے باوجود آپ اپنی پسند کی کمپیوٹر زبان میں اپنا ٹول بہت آسانی سے بنا سکتے ہیں۔

اپ ڈیٹ: ڈیٹام باکس مشین لرننگ فریم ورک اب اوپن سورس اور مفت ہے۔ ڈاؤن لوڈ، اتارنا. اگر آپ API کی حدود کو مارے بغیر جذباتی تجزیہ کا درجہ بندی کرنا چاہتے ہیں تو com.datumbox.applications.nlp.TextClassifier کلاس استعمال کریں۔

ٹول کا مکمل پی ایچ پی کوڈ پر پایا جا سکتا ہے۔ Github کے.

فیس بک جذباتی تجزیہ کیسے کام کرتا ہے؟

جیسا کہ ہم نے گزشتہ مضامین میں بات چیت کی، کارکردگی کا مظاہرہ احساس تجزیہ جدید مشین لرننگ اور نیچرل لینگویج پروسیسنگ تکنیک استعمال کرنے کی ضرورت ہے۔ پچھلی پوسٹس میں ہم نے کئی ٹیکسٹ کلاسیفائرز کو تفصیل سے دیکھا جیسے کہ بولی، سافٹ میکس ریگریشن اور میکس اینٹروپی، ہم نے استعمال کرنے کی اہمیت پر تبادلہ خیال کیا۔ فیچر سلیکشن متن کی درجہ بندی کے مسائل میں اور آخر کار ہم نے دیکھا کہ کوئی کس طرح کے نفاذ کو تیار کرسکتا ہے۔ JAVA میں ملٹی نامی نائیو بیز کا درجہ بندی کرنے والا.

فیس بک پر جذباتی تجزیہ کرنا ماضی میں جس بات پر ہم نے تبادلہ خیال کیا ہے اس سے نمایاں طور پر مختلف نہیں ہے۔ مختصراً، ہمیں فیس بک پوسٹس لانے اور ان کے مواد کو نکالنے کی ضرورت ہے اور پھر ہم ان کے مطلوبہ الفاظ کے امتزاج کو نکالنے کے لیے انہیں ٹوکنائز کرتے ہیں۔ اس کے بعد ہم خصوصیت کا انتخاب کرتے ہیں تاکہ صرف ان n-گراموں کو رکھیں جو درجہ بندی کے مسئلے کے لیے اہم ہیں اور ہم اپنے درجہ بندی کرنے والے کو مثبت، منفی اور غیر جانبدار پوسٹس کی شناخت کرنے کی تربیت دیتے ہیں۔

مندرجہ بالا عمل کو Datumbox's کا استعمال کرکے نمایاں طور پر آسان بنایا گیا ہے۔ مشین لرننگ API. فیس بک پر جذباتی تجزیہ کرنے کے لیے صرف گراف API سرچ کو کال کرنا ہے، دلچسپی کی پوسٹس کو نکالنے، ان کے متن کو نکالنے اور ان کی درجہ بندی حاصل کرنے کے لیے Datumbox Sentiment Analysis API کو کال کریں۔

فیس بک جذباتی تجزیہ ٹول کی تعمیر

Facebook Sentiment Analysis ٹول بنانے کے لیے آپ کو دو چیزوں کی ضرورت ہوتی ہے: عوامی پوسٹس حاصل کرنے کے لیے Facebook API کا استعمال کرنا اور ان کے کلیدی الفاظ کی بنیاد پر پوسٹس کی polarity کا جائزہ لینا۔ پہلے کام کے لیے ہم فیس بک کی گراف API تلاش کریں گے اور دوسرے کے لیے Datumbox API 1.0v۔

ہم 2 کلاسوں کا استعمال کرکے ٹول کی ترقی کو تیز کریں گے: The فیس بک پی ایچ پی SDK جو ہمیں گراف کی تلاش اور ڈیٹام باکس تک آسانی سے رسائی فراہم کرے گا۔ PHP-API-کلائنٹ. ایک بار پھر اس عمل میں سب سے پیچیدہ کام ایک فیس بک ایپلیکیشن بنانا ہے جو ہمیں فیس بک سے پوسٹس لانے کی اجازت دے گا۔ ڈیٹام باکس انضمام کیک کا ایک ٹکڑا ہے۔

اپنی فیس بک ایپلیکیشن بنانا

فیس بک جذبات کا تجزیہبدقسمتی سے فیس بک نے رسائی سے پہلے تصدیق کرنا لازمی قرار دے دیا۔ ان کا گراف سرچ API. شکر ہے کہ وہ استعمال میں بہت آسان فراہم کرتے ہیں۔ SDK جو انضمام کی زیادہ تر تکنیکی تفصیلات کا خیال رکھتا ہے۔ پھر بھی اسے استعمال کرنے سے پہلے آپ کو اپنا فیس بک اکاؤنٹ استعمال کرکے ایک نئی فیس بک ایپلیکیشن بنانا ہوگی۔

عمل آسان ہے۔ کے پاس جاؤ فیس بک ڈویلپرز کا صفحہ (اگر آپ نے ماضی میں کبھی فیس بک کی درخواست نہیں لکھی ہے تو آپ کو رجسٹر کرنے کی ضرورت ہوگی)۔ مینو میں ایپس پر کلک کریں اور "نئی ایپ بنائیں" کو منتخب کریں۔

پاپ اپ ونڈو میں اپنی درخواست کا ڈسپلے نام، نام کی جگہ پر کریں، ایک زمرہ منتخب کریں اور ایپ بنائیں پر کلک کریں۔ ایک بار ایپلیکیشن بن جانے کے بعد اپنی ایپلیکیشن کے مین پیج پر جائیں اور ڈیش بورڈ کو منتخب کریں۔ یہیں سے آپ کو اپنی AppID اور ایپ سیکرٹ ویلیوز ملیں گی۔ ان اقدار کو محفوظ جگہ پر کاپی کریں کیونکہ ہمیں بعد میں ان کی ضرورت ہوگی۔

اس کے بعد اپنی ایپلیکیشن کی سیٹنگز پر جائیں اور صفحہ کے نیچے "+ ایپ پلیٹ فارم" پر کلک کریں۔ پاپ اپ پر "ویب سائٹ" کو منتخب کریں اور پھر سائٹ کے یو آر ایل ایڈریس پر اس مقام کا URL ڈالیں جہاں آپ اپنا ٹول اپ لوڈ کریں گے (مثال: https://localhost/)۔ "تبدیلیاں محفوظ کریں" پر کلک کریں اور آپ کا کام ہو گیا!

اپنی Datumbox API کلید حاصل کریں۔

Datumbox API تک رسائی حاصل کرنے کے لیے سائن اپ ایک مفت اکاؤنٹ کے لیے اور اپنے ملاحظہ کریں۔ API اسناد کا پینل اپنی API کلید حاصل کرنے کے لیے۔

فیس بک کے جذباتی تجزیہ کی کلاس تیار کرنا

آخر میں ہمیں صرف ایک سادہ کلاس لکھنا ہے جو دو APIs کو مربوط کرتی ہے۔ پہلے فیس بک گراف سرچ کو کال کرتا ہے، تصدیق کرتا ہے، پوسٹس کو بازیافت کرتا ہے اور پھر ان کی قطبیت کو بازیافت کرنے کے لیے انہیں ڈیٹام باکس API میں منتقل کرتا ہے۔

ضروری تبصروں کے ساتھ کلاس کا کوڈ یہ ہے۔

<?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 APIs تک رسائی کے لیے درکار ہوتی ہیں۔ عوامی طریقہ جذباتی تجزیہ() پر ہم فیس بک کلائنٹ کو شروع کرتے ہیں، ہم تصدیق کرتے ہیں اور پوسٹس کی فہرست بازیافت کرتے ہیں۔ نوٹ کریں کہ اگر آپ نے ابھی تک اپنی درخواست کی اجازت نہیں دی ہے یا اگر آپ اپنے اکاؤنٹ سے Facebook میں لاگ ان نہیں ہیں، تو آپ کو Facebook.com پر لاگ ان کرنے اور ایپ کو اختیار کرنے کے لیے ری ڈائریکٹ کیا جائے گا (یہ آپ کی ایپ ہے، رازداری کے مسائل کی کوئی فکر نہیں)۔ پوسٹس کی فہرست بازیافت ہونے کے بعد انہیں ڈیٹام باکس API کو منتقل کیا جاتا ہے تاکہ ان کی قطبیت حاصل کی جاسکے۔

آپ کو جانا اچھا ہے! آپ فیس بک پر جذباتی تجزیہ کرنے کے لیے اس کلاس کو استعمال کرنے کے لیے تیار ہیں۔ آپ کر سکتے ہیں۔ ڈاؤن لوڈ، اتارنا گیتھب سے فیس بک کے جذباتی تجزیہ ٹول کا مکمل پی ایچ پی کوڈ۔

عمل درآمد کا استعمال اور توسیع

فراہم کردہ ٹول کو استعمال کرنے کے لیے آپ کو فیس بک ایپلیکیشن بنانا ہوگا جیسا کہ اوپر بیان کیا گیا ہے اور پھر config.php فائل میں ترمیم کرکے اسے کنفیگر کرنا ہوگا۔ اس فائل میں آپ کو Datumbox API کلید، فیس بک ایپ آئی ڈی اور سیکرٹ ڈالنے کی ضرورت ہوگی جسے آپ نے پہلے کاپی کیا تھا۔

آخر کار پچھلی پوسٹ میں ہم نے اسٹینڈ اسٹون بنایا ہے۔ ٹویٹر جذباتی تجزیہ کا آلہ. آپ کو 10 نفاذات کو ضم کرنے اور ایک واحد ٹول بنانے میں 2 منٹ سے زیادہ وقت نہیں لگے گا جو فیس بک اور ٹویٹر دونوں سے پوسٹس حاصل کرنے اور نتائج کو ایک ہی رپورٹ میں پیش کرنے کے قابل ہو۔

اگر آپ کو مضمون پسند آیا تو براہ کرم اسے فیس بک یا ٹویٹر پر شیئر کرنے کے لیے ایک منٹ نکالیں! 🙂

ٹائم اسٹیمپ:

سے زیادہ ڈیٹا باکس