วิธีสร้างเครื่องมือวิเคราะห์ความรู้สึกของ Facebook ของคุณเอง PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

วิธีสร้างเครื่องมือวิเคราะห์ความรู้สึกบน Facebook ของคุณเอง

ในบทความนี้ เราจะพูดถึงวิธีการสร้างเครื่องมือวิเคราะห์ความคิดเห็นบน Facebook อย่างง่ายที่สามารถจัดประเภทโพสต์สาธารณะ (ทั้งจากผู้ใช้และจากเพจ) ให้เป็นเชิงบวก เชิงลบ และเป็นกลาง เราจะใช้การค้นหา Graph API ของ Facebook และ Datumbox API 1.0v คล้ายกับ เครื่องมือวิเคราะห์ความเชื่อมั่นของ Twitter ที่เราสร้างขึ้นเมื่อไม่กี่เดือนก่อน การใช้งานนี้เขียนด้วย PHP อย่างไรก็ตาม คุณสามารถสร้างเครื่องมือของคุณเองได้อย่างง่ายดายในภาษาคอมพิวเตอร์ที่คุณเลือก

อัปเดต: ขณะนี้ Datumbox Machine Learning Framework เป็นโอเพ่นซอร์สและฟรีสำหรับ ดาวน์โหลด. หากคุณต้องการสร้างตัวแยกประเภทการวิเคราะห์ความคิดเห็นโดยไม่กระทบกับข้อจำกัด API ให้ใช้คลาส com.datumbox.applications.nlp.TextClassifier

สามารถอ่านโค้ด PHP ที่สมบูรณ์ของเครื่องมือได้ที่ Github.

การวิเคราะห์ความคิดเห็นบน Facebook ทำงานอย่างไร

ดังที่เราได้กล่าวไปแล้วในบทความที่แล้ว การแสดง การวิเคราะห์ความเชื่อมั่น ต้องใช้การเรียนรู้ของเครื่องขั้นสูงและเทคนิคการประมวลผลภาษาธรรมชาติ ในโพสต์ก่อนหน้านี้ เราเห็นรายละเอียดเกี่ยวกับตัวแยกข้อความหลายตัว เช่น ไร้เดียงสา Bayesที่ การถดถอย Softmax และ แม็กซ์ เอนโทรปี, เราได้กล่าวถึงความสำคัญของการใช้ การเลือกคุณสมบัติ ในปัญหาการจำแนกข้อความและในที่สุดเราก็เห็นว่าสามารถพัฒนาการนำ Multinomial Naive Bayes ลักษณนามในJAVA.

การวิเคราะห์ความคิดเห็นบน Facebook ไม่ได้แตกต่างไปจากที่เราพูดคุยกันในครั้งก่อนอย่างมีนัยสำคัญ โดยสรุป เราต้องดึงโพสต์บน Facebook และแยกเนื้อหา จากนั้นเราจะแปลงเป็นโทเค็นเพื่อแยกชุดค่าผสมของคำหลัก หลังจากนั้น เราทำการเลือกคุณสมบัติเพื่อเก็บเฉพาะ n-gram ที่มีความสำคัญสำหรับปัญหาการจำแนกประเภท และเราฝึกตัวแยกประเภทเพื่อระบุโพสต์เชิงบวก เชิงลบ และเป็นกลาง

กระบวนการข้างต้นลดความซับซ้อนลงอย่างมากโดยใช้ Datumbox's API การเรียนรู้ของเครื่อง. สิ่งเดียวที่ต้องทำเพื่อวิเคราะห์ความคิดเห็นบน Facebook คือการเรียกการค้นหา Graph API เพื่อแยกโพสต์ที่น่าสนใจ แยกข้อความ และเรียก Datumbox Sentiment Analysis API เพื่อรับการจัดประเภท

การสร้างเครื่องมือวิเคราะห์ความคิดเห็นบน Facebook

ในการสร้างเครื่องมือวิเคราะห์ความคิดเห็นบน Facebook คุณจำเป็นต้องมีสองสิ่ง: ในการใช้ Facebook API เพื่อดึงข้อมูลโพสต์สาธารณะ และเพื่อประเมินขั้วของโพสต์ตามคำหลัก สำหรับงานแรก เราจะใช้การค้นหา Graph API ของ Facebook และงานที่สองคือ Datumbox API 1.0v

เราจะเร่งการพัฒนาเครื่องมือโดยใช้ 2 คลาส: The Facebook PHP SDK ซึ่งจะทำให้เราเข้าถึงการค้นหากราฟและ Datumbox . ได้อย่างง่ายดาย PHP-API-ไคลเอนต์. อีกครั้งที่งานที่ซับซ้อนที่สุดในกระบวนการคือการสร้างแอปพลิเคชัน Facebook ซึ่งจะทำให้เราสามารถดึงโพสต์จาก Facebook ได้ การรวม Datumbox เป็นเรื่องง่าย

สร้างแอปพลิเคชั่น Facebook ของคุณเอง

facebook-อารมณ์-วิเคราะห์น่าเสียดายที่ Facebook กำหนดให้ต้องตรวจสอบสิทธิ์ก่อนเข้าถึง Graph Search API ของพวกเขา. โชคดีที่พวกเขาให้ใช้งานง่ายมาก SDK ซึ่งดูแลรายละเอียดทางเทคนิคส่วนใหญ่ของการรวม ก่อนใช้งาน คุณต้องสร้างแอปพลิเคชัน Facebook ใหม่โดยใช้บัญชี Facebook ของคุณ

กระบวนการนี้ง่าย ไปที่ หน้านักพัฒนา Facebook (คุณจะต้องลงทะเบียนหากคุณไม่เคยเขียนแอปพลิเคชัน Facebook มาก่อน) คลิกที่แอพในเมนูและเลือก "สร้างแอพใหม่"

ในหน้าต่างป๊อปอัป ให้กรอก Display Name ของแอปพลิเคชันของคุณ Namespace เลือก Category แล้วคลิก Create App เมื่อสร้างแอปพลิเคชันแล้ว ให้ไปที่หน้าหลักของแอปพลิเคชันของคุณแล้วเลือกแดชบอร์ด นี่คือที่ที่คุณจะได้รับ AppID และค่า App Secret คัดลอกค่าเหล่านั้นในที่ปลอดภัยเนื่องจากเราต้องการในภายหลัง

ถัดไปไปที่การตั้งค่าแอปพลิเคชันของคุณแล้วคลิก "+ แพลตฟอร์มแอป" ที่ด้านล่างของหน้า ในป๊อปอัป ให้เลือก "เว็บไซต์" จากนั้นในที่อยู่ URL ของไซต์ ให้ใส่ URL ของตำแหน่งที่คุณจะอัปโหลดเครื่องมือของคุณ (ตัวอย่าง: https://localhost/) คลิก "บันทึกการเปลี่ยนแปลง" และทำเสร็จแล้ว!

รับคีย์ Datumbox API ของคุณ

ในการเข้าถึง Datumbox API ลงทะเบียน สำหรับบัญชีฟรีและไปที่ .ของคุณ แผงข้อมูลรับรอง API เพื่อรับคีย์ API ของคุณ

การพัฒนาคลาสวิเคราะห์ความรู้สึกบน Facebook

สุดท้าย สิ่งที่เราต้องทำคือเขียนคลาสง่าย ๆ ที่รวม API ทั้งสองเข้าด้วยกัน ขั้นแรกให้เรียกใช้ Facebook Graph Search ตรวจสอบสิทธิ์ ดึงข้อมูลโพสต์ จากนั้นส่งต่อไปยัง Datumbox 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 ในวิธีสาธารณะ sentimentAnalysis() เราเริ่มต้นไคลเอนต์ Facebook เรารับรองความถูกต้อง และเรียกค้นรายการโพสต์ โปรดทราบว่าหากคุณยังไม่ได้อนุญาตแอปพลิเคชันของคุณ หรือหากคุณไม่ได้ลงชื่อเข้าใช้ Facebook ด้วยบัญชีของคุณ คุณจะถูกเปลี่ยนเส้นทางไปที่ Facebook.com เพื่อเข้าสู่ระบบและอนุญาตแอป (เป็นแอปของคุณ ไม่ต้องกังวลกับปัญหาความเป็นส่วนตัว) เมื่อดึงรายชื่อโพสต์แล้ว โพสต์เหล่านั้นจะถูกส่งไปยัง Datumbox API เพื่อรับขั้ว

คุณดีไป! คุณพร้อมที่จะใช้คลาสนี้เพื่อวิเคราะห์ความคิดเห็นบน Facebook แล้ว คุณสามารถ ดาวน์โหลด โค้ด PHP ที่สมบูรณ์ของเครื่องมือวิเคราะห์ความคิดเห็นของ Facebook จาก Github

การใช้และการขยายการดำเนินการ

ในการใช้เครื่องมือที่มีให้ คุณจะต้องสร้างแอปพลิเคชัน Facebook ตามที่อธิบายไว้ข้างต้น แล้วกำหนดค่าโดยแก้ไขไฟล์ config.php ในไฟล์นี้ คุณจะต้องใส่คีย์ Datumbox API, Facebook App Id และ Secret ที่คุณคัดลอกไว้ก่อนหน้านี้

ในที่สุดในโพสต์ก่อนหน้า เราได้สร้างสแตนด์อโลน เครื่องมือวิเคราะห์ความเชื่อมั่นของ Twitter. จะใช้เวลาไม่เกิน 10 นาทีในการผสานการใช้งาน 2 แบบและสร้างเครื่องมือเดียวที่สามารถดึงข้อมูลโพสต์ทั้งจาก Facebook และ Twitter และนำเสนอผลลัพธ์ในรายงานฉบับเดียว

หากคุณชอบบทความนี้ โปรดสละเวลาสักครู่เพื่อแชร์บน Facebook หรือ Twitter! 🙂

ประทับเวลา:

เพิ่มเติมจาก กล่องข้อมูล