So bauen Sie Ihr eigenes Facebook-Stimmungsanalyse-Tool PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

So erstellen Sie Ihr eigenes Facebook Sentiment Analysis Tool

In diesem Artikel wird erläutert, wie Sie auf einfache Weise ein einfaches Tool zur Analyse der Facebook-Stimmung erstellen können, mit dem öffentliche Beiträge (sowohl von Benutzern als auch von Seiten) als positiv, negativ und neutral klassifiziert werden können. Wir werden die Graph API Search von Facebook und die Datumbox API 1.0v verwenden. Ähnlich wie Twitter Sentiment Analysis Tool Diese Implementierung wurde vor einigen Monaten erstellt und ist in PHP geschrieben. Sie können jedoch ganz einfach Ihr eigenes Tool in der Computersprache Ihrer Wahl erstellen.

Update: Das Datumbox Machine Learning Framework ist jetzt Open Source und kostenlos für herunterladen. Wenn Sie einen Sentiment Analysis-Klassifizierer erstellen möchten, ohne die API-Einschränkungen zu erfüllen, verwenden Sie die Klasse com.datumbox.applications.nlp.TextClassifier.

Den vollständigen PHP-Code des Tools finden Sie unter Github.

Wie funktioniert die Facebook-Stimmungsanalyse?

Wie wir in früheren Artikeln besprochen haben, durchführen Stimmungsanalyse erfordert die Verwendung fortgeschrittener Techniken des maschinellen Lernens und der Verarbeitung natürlicher Sprachen. In den vorherigen Beiträgen haben wir im Detail mehrere Textklassifizierer gesehen, wie z Naiver Bayes, der Softmax-Regression und für Max. Entropiehaben wir die Wichtigkeit der Verwendung besprochen Merkmalsauswahl in Textklassifizierungsproblemen und schließlich haben wir gesehen, wie man eine Implementierung des entwickeln kann Multinomial Naive Bayes Klassifikator in JAVA.

Die Durchführung der Stimmungsanalyse auf Facebook unterscheidet sich nicht wesentlich von dem, was wir in der Vergangenheit besprochen haben. Kurz gesagt, wir müssen die Facebook-Beiträge abrufen und ihren Inhalt extrahieren und sie dann tokenisieren, um ihre Keyword-Kombinationen zu extrahieren. Anschließend führen wir eine Merkmalsauswahl durch, um nur die für das Klassifizierungsproblem wichtigen n-Gramm beizubehalten, und trainieren unseren Klassifizierer, um die positiven, negativen und neutralen Beiträge zu identifizieren.

Der obige Vorgang wird durch die Verwendung der Datumbox erheblich vereinfacht API für maschinelles Lernen. Alles, was Sie tun müssen, um eine Stimmungsanalyse auf Facebook durchzuführen, ist die Graph API-Suche aufzurufen, um die Posts von Interesse zu extrahieren, ihren Text zu extrahieren und die Datumbox Sentiment Analysis API aufzurufen, um ihre Klassifizierung zu erhalten.

Erstellen des Facebook-Tools zur Stimmungsanalyse

Um das Tool zur Analyse der Facebook-Stimmung zu erstellen, müssen Sie zwei Dinge tun: Die Facebook-API verwenden, um die öffentlichen Beiträge abzurufen und die Polarität der Beiträge anhand ihrer Schlüsselwörter zu bewerten. Für die erste Aufgabe verwenden wir die Graph API-Suche von Facebook und für die zweite die Datumbox API 1.0v.

Wir werden die Entwicklung des Tools beschleunigen, indem wir zwei Klassen verwenden: Die Facebook PHP-SDK Dadurch können wir problemlos auf die Diagrammsuche und die Datumbox zugreifen PHP-API-Client. Die komplizierteste Aufgabe in diesem Prozess ist erneut die Erstellung einer Facebook-Anwendung, mit der wir die Beiträge von Facebook abrufen können. Die Datumbox-Integration ist ein Kinderspiel.

Erstellen Sie Ihre eigene Facebook-Anwendung

Facebook-Sentiment-AnalyseLeider hat Facebook die Authentifizierung vor dem Zugriff vorgeschrieben ihre Graph Search API. Zum Glück bieten sie eine sehr einfach zu bedienende SDK Das kümmert sich um die meisten technischen Details der Integration. Bevor Sie es verwenden, müssen Sie mithilfe Ihres Facebook-Kontos eine neue Facebook-Anwendung erstellen.

Der Prozess ist einfach. Gehe zu Facebook-Entwicklerseite (Sie müssen sich registrieren, wenn Sie in der Vergangenheit noch nie eine Facebook-Anwendung geschrieben haben.) Klicken Sie im Menü auf Apps und wählen Sie "Neue App erstellen".

Geben Sie im Popup-Fenster den Anzeigenamen Ihrer Anwendung, den Namespace, ein, wählen Sie eine Kategorie aus und klicken Sie auf App erstellen. Sobald die Anwendung erstellt wurde, gehen Sie zur Hauptseite Ihrer Anwendung und wählen Sie Dashboard. Hier erhalten Sie Ihre AppID und die App Secret-Werte. Kopieren Sie diese Werte an einem sicheren Ort, da wir sie später benötigen.

Gehen Sie als Nächstes zu den Einstellungen Ihrer Anwendung und klicken Sie unten auf der Seite auf „+ App-Plattform“. Wählen Sie im Popup-Fenster „Website“ und geben Sie dann in die Website-URL-Adresse die URL des Speicherorts ein, an den Sie Ihr Tool hochladen werden (Beispiel: https://localhost/). Klicken Sie auf „Änderungen speichern“ und Sie sind fertig!

Holen Sie sich Ihren Datumbox-API-Schlüssel

So greifen Sie auf die Datumbox-API zu Registrieren für ein kostenloses Konto und besuchen Sie Ihre Bereich "API-Anmeldeinformationen" um Ihren API-Schlüssel zu erhalten.

Entwicklung der Facebook Sentiment Analysis-Klasse

Schließlich müssen wir nur eine einfache Klasse schreiben, die die beiden APIs integriert. Ruft zuerst die Facebook-Diagrammsuche auf, authentifiziert sich, ruft die Beiträge ab und leitet sie dann an die Datumbox-API weiter, um ihre Polarität abzurufen.

Hier ist der Code der Klasse zusammen mit den notwendigen Kommentaren.

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

Wie Sie oben im Konstruktor sehen können, übergeben wir die Schlüssel, die für den Zugriff auf die beiden APIs erforderlich sind. Mit der öffentlichen Methode sentimentAnalysis () initialisieren wir den Facebook-Client, authentifizieren uns und rufen die Liste der Beiträge ab. Beachten Sie, dass Sie, wenn Sie Ihre Anwendung noch nicht autorisiert haben oder nicht mit Ihrem Konto bei Facebook angemeldet sind, zu Facebook.com weitergeleitet werden, um sich anzumelden und die App zu autorisieren (es ist Ihre App, keine Sorge um Datenschutzprobleme). Sobald die Liste der Beiträge abgerufen wurde, werden sie an die Datumbox-API übergeben, um ihre Polarität zu ermitteln.

Du bist startklar! Sie können diese Klasse verwenden, um eine Stimmungsanalyse auf Facebook durchzuführen. Sie können herunterladen der vollständige PHP-Code des Facebook Sentiment Analysis Tools von Github.

Implementierung verwenden und erweitern

Um das bereitgestellte Tool verwenden zu können, müssen Sie die Facebook-Anwendung wie oben beschrieben erstellen und anschließend durch Ändern der Datei config.php konfigurieren. In diese Datei müssen Sie den Datumbox-API-Schlüssel, die Facebook-App-ID und das Geheimnis einfügen, die Sie zuvor kopiert haben.

Schließlich haben wir im vorherigen Beitrag eine eigenständige Version erstellt Twitter Sentiment Analysis Tool. Sie benötigen nicht mehr als 10 Minuten, um die beiden Implementierungen zusammenzuführen und ein einziges Tool zu erstellen, mit dem Sie Beiträge von Facebook und Twitter abrufen und die Ergebnisse in einem einzigen Bericht präsentieren können.

Wenn Ihnen der Artikel gefallen hat, nehmen Sie sich bitte eine Minute Zeit, um ihn auf Facebook oder Twitter zu teilen! 🙂

Zeitstempel:

Mehr von Bezugsbox