Cara membuat Alat Analisis Sentimen Facebook Anda sendiri, PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Cara membuat Alat Analisis Sentimen Facebook Anda sendiri

Pada artikel ini kita akan membahas bagaimana Anda dapat dengan mudah membuat alat Analisis Sentimen Facebook sederhana yang mampu mengklasifikasikan posting publik (baik dari pengguna dan dari halaman) sebagai positif, negatif dan netral. Kami akan menggunakan Pencarian API Grafik Facebook dan API Datumbox 1.0v. Mirip dengan Alat Analisis Sentimen Twitter yang kami buat beberapa bulan yang lalu, implementasi ini ditulis dalam PHP, namun Anda dapat dengan mudah membuat perangkat Anda sendiri dalam bahasa komputer pilihan Anda.

Pembaruan: Kerangka Pembelajaran Mesin Datumbox sekarang open-source dan bebas untuk Download. Jika Anda ingin membuat pengklasifikasi Analisis Sentimen tanpa mencapai batasan API, gunakan kelas com.datumbox.applications.nlp.TextClassifier.

Kode PHP lengkap dari alat tersebut dapat ditemukan di Github.

Bagaimana Analisis Sentimen Facebook bekerja?

Seperti yang telah kita bahas di artikel sebelumnya, perform Analisis Sentimen perlu menggunakan pembelajaran Mesin lanjutan dan teknik Pemrosesan Bahasa Alami. Di posting sebelumnya kita melihat secara detail beberapa Pengklasifikasi Teks seperti Bayes Naif, yang Regresi Softmax dan Entropi Maks, kami membahas pentingnya menggunakan Pemilihan Fitur dalam masalah klasifikasi teks dan akhirnya kami melihat bagaimana seseorang dapat mengembangkan implementasi file Pengklasifikasi Multinomial Naive Bayes di JAWA.

Melakukan Analisis Sentimen di Facebook tidak berbeda secara signifikan dengan apa yang kita bahas sebelumnya. Singkatnya, kita perlu mengambil posting facebook dan mengekstrak kontennya dan kemudian kita membuat token untuk mengekstrak kombinasi kata kunci mereka. Setelah itu kami melakukan pemilihan fitur untuk menyimpan hanya n-gram yang penting untuk masalah klasifikasi dan kami melatih pengklasifikasi kami untuk mengidentifikasi pos positif, negatif, dan netral.

Proses di atas disederhanakan secara signifikan dengan menggunakan Datumbox API Pembelajaran Mesin. Semua yang perlu dilakukan untuk melakukan analisis sentimen di Facebook adalah memanggil pencarian API Grafik untuk mengekstrak posting yang menarik, mengekstrak teksnya dan memanggil API Analisis Sentimen Datumbox untuk mendapatkan klasifikasinya.

Membangun alat Analisis Sentimen Facebook

Untuk membangun alat Analisis Sentimen Facebook, Anda memerlukan dua hal: Menggunakan API Facebook untuk mengambil kiriman publik dan mengevaluasi polaritas kiriman berdasarkan kata kuncinya. Untuk tugas pertama kita akan menggunakan pencarian API Grafik Facebook dan untuk yang kedua API Datumbox 1.0v.

Kami akan mempercepat pengembangan alat dengan menggunakan 2 kelas: SDK PHP Facebook yang akan dengan mudah memungkinkan kita untuk mengakses pencarian Grafik dan Datumbox Klien-PHP-API. Sekali lagi tugas yang paling rumit dalam prosesnya adalah membuat Aplikasi Facebook yang memungkinkan kita untuk mengambil kiriman dari Facebook; integrasi Datumbox sangat mudah.

Membuat Aplikasi Facebook Anda sendiri

facebook-sentimen-analisisSayangnya Facebook mewajibkan untuk melakukan otentikasi sebelum mengakses Graph Search API mereka. Untungnya mereka memberikan yang sangat mudah digunakan SDK yang menangani sebagian besar detail teknis integrasi. Masih sebelum menggunakannya Anda harus membuat dengan menggunakan Akun Facebook Anda sebuah aplikasi Facebook baru.

Prosesnya sederhana. Pergi ke Halaman Pengembang Facebook (Anda harus mendaftar jika Anda belum pernah menulis Aplikasi Facebook sebelumnya). Klik Aplikasi di menu dan pilih "Buat Aplikasi Baru".

Di jendela popup isi Nama Tampilan aplikasi Anda, Namespace, pilih Kategori dan klik Buat Aplikasi. Setelah Aplikasi dibuat, buka halaman utama Aplikasi Anda dan pilih Dashboard. Di sinilah Anda akan mendapatkan AppID dan nilai App Secret. Salin nilai-nilai tersebut di tempat yang aman karena kita akan membutuhkannya nanti.

Selanjutnya buka Pengaturan aplikasi Anda dan klik โ€œ+ Platform Aplikasiโ€ di bagian bawah halaman. Pada pop-up pilih "Situs Web" dan kemudian pada alamat URL Situs masukkan URL lokasi tempat Anda akan mengunggah alat Anda (Contoh: https://localhost/). Klik "Simpan Perubahan" dan selesai!

Dapatkan kunci API Datumbox Anda

Untuk mengakses API Datumbox mendaftar untuk mendapatkan akun gratis dan kunjungi Panel Kredensial API untuk mendapatkan Kunci API Anda.

Mengembangkan kelas Analisis Sentimen Facebook

Akhirnya yang perlu kita lakukan adalah menulis kelas sederhana yang mengintegrasikan dua API. Pertama-tama panggil Pencarian Grafik Facebook, mengautentikasi, mengambil posting dan kemudian meneruskannya ke API Datumbox untuk mengambil polaritasnya.

Berikut adalah kode kelas beserta komentar yang diperlukan.

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

Seperti yang Anda lihat di atas pada konstruktor, kami meneruskan kunci yang diperlukan untuk mengakses 2 API. Pada metode publik sentimentAnalysis () kami menginisialisasi Klien Facebook, kami mengautentikasi dan kami mengambil daftar posting. Perhatikan bahwa jika Anda belum mengizinkan aplikasi Anda atau jika Anda tidak masuk ke Facebook dengan akun Anda, Anda akan dialihkan ke Facebook.com untuk masuk dan mengotorisasi aplikasi (ini adalah aplikasi Anda, jangan khawatir tentang masalah privasi). Setelah daftar postingan diambil, postingan tersebut diteruskan ke Datumbox API untuk mendapatkan polaritasnya.

Anda siap berangkat! Anda siap menggunakan kelas ini untuk melakukan Analisis Sentimen di Facebook. Kamu bisa Download kode PHP lengkap alat Analisis Sentimen Facebook dari Github.

Menggunakan dan Memperluas Implementasi

Untuk menggunakan alat yang disediakan Anda perlu membuat Aplikasi Facebook seperti dijelaskan di atas dan kemudian mengkonfigurasinya dengan memodifikasi file config.php. Dalam file ini Anda harus memasukkan kunci API Datumbox, ID dan Rahasia Aplikasi Facebook yang Anda salin sebelumnya.

Akhirnya pada postingan sebelumnya kita telah membangun standalone Alat Analisis Sentimen Twitter. Anda tidak memerlukan waktu lebih dari 10 menit untuk menggabungkan 2 implementasi dan membuat satu alat yang mampu mengambil kiriman dari Facebook dan Twitter dan menyajikan hasilnya dalam satu laporan.

Jika Anda menyukai artikel ini, harap luangkan waktu sebentar untuk membagikannya di Facebook atau Twitter! ๐Ÿ™‚

Stempel Waktu:

Lebih dari kotak data