Kendi Facebook Duygu Analizi Aracınızı nasıl oluşturabilirsiniz? PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Kendi Facebook Duygu Analizi Aracınızı Oluşturma

Bu makalede, herkese açık gönderileri (hem kullanıcılardan hem de sayfalardan) olumlu, olumsuz ve tarafsız olarak sınıflandırabilen basit bir Facebook Duygu Analizi aracını nasıl kolayca oluşturabileceğinizi tartışacağız. Facebook'un Graph API Search ve Datumbox API 1.0v'yi kullanacağız. Benzer Twitter Duyarlılık Analizi aracı birkaç ay önce oluşturduğumuza göre, bu uygulama PHP ile yazılmış olsa da, kendi aracınızı seçtiğiniz bilgisayar dilinde çok kolay bir şekilde oluşturabilirsiniz.

Güncelleme: Datumbox Machine Learning Framework artık açık kaynak kodlu ve ücretsiz indir. API sınırlamalarına uymadan bir Duygu Analizi sınıflandırıcısı oluşturmak istiyorsanız, com.datumbox.applications.nlp.TextClassifier sınıfını kullanın.

Aracın eksiksiz PHP kodu şurada bulunabilir: Github.

Facebook Duygu Analizi nasıl çalışır?

Önceki makalelerde tartıştığımız gibi, performans Duygu Analizi gelişmiş Makine Öğrenimi ve Doğal Dil İşleme tekniklerinin kullanılmasını gerektirir. Önceki gönderilerde, aşağıdaki gibi birkaç Metin Sınıflandırıcıyı ayrıntılı olarak gördük. Naif bayanlar, Softmax Regresyon ve Maksimum Entropi, kullanmanın önemini tartıştık Öznitelik Seçimi metin sınıflandırma problemlerinde ve nihayet bir kişinin nasıl bir uygulama geliştirebileceğini gördük. JAVA'da multinomial Naive Bayes sınıflandırıcı.

Facebook'ta Duygu Analizi yapmak, geçmişte tartıştıklarımızdan önemli ölçüde farklı değildir. Özetle, facebook gönderilerini alıp içeriklerini çıkarmamız ve ardından anahtar kelime kombinasyonlarını çıkarmak için bunları belirtmemiz gerekiyor. Daha sonra sadece sınıflandırma problemi için önemli olan n-gramları tutmak için özellik seçimi yapıyoruz ve sınıflandırıcımızı pozitif, negatif ve nötr postları tanımlaması için eğitiyoruz.

Yukarıdaki süreç, Datumbox'ın kullanılmasıyla önemli ölçüde basitleştirilmiştir. Makine Öğrenimi API'si. Facebook'ta duyarlılık analizi yapmak için tek yapmanız gereken, ilgilenilen gönderileri çıkarmak, metinlerini çıkarmak ve sınıflandırmalarını almak için Datumbox Duyarlılık Analizi API'sini çağırmak için Graph API araması çağırmaktır.

Facebook Duyarlılık Analizi aracını oluşturma

Facebook Duygu Analizi aracını oluşturmak için iki şeye ihtiyacınız vardır: Herkese açık gönderileri almak için Facebook API'sini kullanmak ve gönderilerin anahtar kelimelerine göre kutuplarını değerlendirmek. İlk görev için Facebook'un Graph API aramasını ve ikincisi için Datumbox API 1.0v'yi kullanacağız.

Aracın geliştirilmesini 2 sınıf kullanarak hızlandıracağız: Facebook PHP SDK'sı Bu, Grafik aramasına ve Veri Kutusu'na kolayca erişmemizi sağlayacak PHP-API İstemcisi. Bir kez daha, süreçteki en karmaşık görev, Facebook'tan gönderileri almamıza izin verecek bir Facebook Uygulaması oluşturmaktır; Datumbox entegrasyonu çocuk oyuncağı.

Kendi Facebook Uygulamanızı Oluşturmak

facebook-duyarlılık-analiziMaalesef Facebook, erişmeden önce kimlik doğrulamayı zorunlu hale getirdi Grafik Arama API'leri. Neyse ki kullanımı çok kolay SDK entegrasyonun teknik ayrıntılarının çoğuyla ilgilenir. Yine de kullanmadan önce Facebook Hesabınızı kullanarak yeni bir Facebook uygulaması oluşturmanız gerekir.

İşlem basit. Git Facebook Geliştiricileri sayfası (Daha önce hiç Facebook Uygulaması yazmadıysanız kayıt olmanız gerekir). Menüdeki Uygulamalar'a tıklayın ve "Yeni Uygulama Oluştur" u seçin.

Açılır pencerede, uygulamanızın Görünen Adını, Ad Alanını doldurun, bir Kategori seçin ve Uygulama Oluştur'u tıklayın. Uygulama oluşturulduktan sonra Uygulamanızın ana sayfasına gidin ve Kontrol Paneli'ni seçin. Burası, AppID'nizi ve Uygulama Gizli değerlerini alacağınız yerdir. Daha sonra ihtiyacımız olacağından bu değerleri güvenli bir yerde kopyalayın.

Ardından, uygulamanızın Ayarlarına gidin ve sayfanın altındaki "+ Uygulama Platformu"na tıklayın. Açılır pencerede “Web Sitesi”ni seçin ve ardından Site URL adresine aracınızı yükleyeceğiniz konumun URL'sini girin (Örnek: https://localhost/). "Değişiklikleri Kaydet" e tıklayın ve bitirdiniz!

Datumbox API anahtarınızı alın

Datumbox API'ye erişmek için kaydolmak ücretsiz bir hesap için ziyaret edin ve API Kimlik Bilgileri paneli API Anahtarınızı almak için.

Facebook Duyarlılık Analizi sınıfını geliştirme

Son olarak, tek yapmamız gereken, iki API'yi entegre eden basit bir sınıf yazmaktır. İlk önce Facebook Graph Search'ü çağırır, gönderileri doğrular, alır ve ardından polaritelerini almak için Datumbox API'ye aktarır.

İşte sınıfın kodu, gerekli yorumlarla birlikte.

<?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;
    }
}

Yapıcıda yukarıda görebileceğiniz gibi, 2 API'ye erişmek için gerekli olan anahtarları iletiyoruz. Genel yöntemde sentimentAnalysis (), Facebook İstemcisini başlatır, kimlik doğrulaması yapar ve gönderilerin listesini alırız. Uygulamanıza henüz yetki vermediyseniz veya hesabınızla Facebook'ta oturum açmadıysanız, oturum açmak ve uygulamaya izin vermek için Facebook.com'a yönlendirileceğinizi unutmayın (bu sizin uygulamanız, gizlilik sorunları hakkında endişelenmeyin). Gönderi listesi alındığında, kutuplarını almak için Datumbox API'ye geçirilir.

Senin gitmen iyidir! Facebook'ta Duygu Analizi yapmak için bu sınıfı kullanmaya hazırsınız. Yapabilirsin indir Github'dan Facebook Duygu Analizi aracının eksiksiz PHP kodu.

Uygulamayı Kullanma ve Genişletme

Sağlanan aracı kullanmak için Facebook Uygulamasını yukarıda açıklandığı gibi oluşturmanız ve ardından config.php dosyasını değiştirerek yapılandırmanız gerekir. Bu dosyaya, daha önce kopyaladığınız Datumbox API anahtarını, Facebook Uygulama Kimliği'ni ve Sırrı koymanız gerekecektir.

Son olarak bir önceki yazıda bağımsız bir Twitter Duyarlılık Analizi aracı. 10 uygulamayı birleştirip hem Facebook'tan hem de Twitter'dan gönderileri alabilen ve sonuçları tek bir raporda sunabilen tek bir araç oluşturmanız 2 dakikadan fazla sürmez.

Makaleyi beğendiyseniz, lütfen Facebook veya Twitter'da paylaşmak için bir dakikanızı ayırın! 🙂

Zaman Damgası:

Den fazla Veri kutusu