- 3 Februarie 2014
- Vasilis Vryniotis
- . 7 comentarii
În acest articol vom discuta despre cum puteți construi cu ușurință un instrument simplu de analiză a sentimentelor Facebook, capabil să clasifice postările publice (atât de la utilizatori, cât și de la pagini) ca pozitive, negative și neutre. Vom folosi Google Graph API Search și Datumbox API 1.0v. Similar cu Instrumentul de analiză a sentimentelor Twitter pe care am construit-o cu câteva luni în urmă, această implementare este scrisă în PHP, cu toate acestea, vă puteți construi foarte ușor propriul instrument în limbajul de computer ales de dvs.
Actualizare: Datumbox Machine Learning Framework este acum open-source și gratuit Descarca. Dacă doriți să construiți un clasificator de analiză a sentimentelor fără a atinge limitările API, utilizați clasa com.datumbox.applications.nlp.TextClassifier.
Codul PHP complet al instrumentului poate fi găsit pe Github.
Cum funcționează Facebook Sentiment Analysis?
După cum am discutat în articolele anterioare, performanțele Analiza sentimentelor necesită utilizarea tehnicilor avansate de învățare automată și procesare a limbajului natural. În postările anterioare am văzut în detaliu mai multe clasificatoare de text, cum ar fi Bayes naiv, Regresia Softmax si Entropia maximă, am discutat despre importanța utilizării Selectarea caracteristicilor în problemele de clasificare a textului și în cele din urmă am văzut cum se poate dezvolta o implementare a Clasificator multinomial Naive Bayes în JAVA.
Efectuarea analizei sentimentelor pe Facebook nu diferă semnificativ de ceea ce am discutat în trecut. Pe scurt, trebuie să preluăm postările de pe Facebook și să le extragem conținutul și apoi să le tokenizăm pentru a le extrage combinațiile de cuvinte cheie. Apoi efectuăm selecția caracteristicilor pentru a păstra doar n-gramele care sunt importante pentru problema de clasificare și ne antrenăm clasificatorul să identifice posturile pozitive, negative și neutre.
Procesul de mai sus este simplificat semnificativ prin utilizarea Datumbox-urilor API-ul Machine Learning. Tot ceea ce trebuie să faceți pentru a efectua o analiză a sentimentelor pe Facebook este să apelați la căutarea Graph API pentru a extrage postările de interes, a le extrage textul și a apela API-ul Datumbox Sentiment Analysis pentru a obține clasificarea lor.
Construirea instrumentului de analiză a sentimentelor Facebook
Pentru a construi instrumentul de analiză a sentimentelor Facebook aveți nevoie de două lucruri: să utilizați API-ul Facebook pentru a prelua postările publice și să evaluați polaritatea postărilor pe baza cuvintelor lor cheie. Pentru prima sarcină vom folosi căutarea API Graph de la Facebook și pentru a doua API-ul Datumbox 1.0v.
Vom accelera dezvoltarea instrumentului folosind 2 clase: The Facebook PHP SDK ceea ce ne va permite cu ușurință să accesăm căutarea grafică și Datumbox PHP-API-Client. Încă o dată, cea mai complicată sarcină din proces este crearea unei aplicații Facebook care ne va permite să preluăm postările de pe Facebook; integrarea Datumbox este o simplă simplă.
Crearea propriei aplicații Facebook
Din păcate, Facebook a făcut obligatorie autentificarea înainte de accesare API-ul lor Graph Search. Din fericire, oferă un foarte ușor de utilizat SDK care are grijă de majoritatea detaliilor tehnice ale integrării. Încă înainte de a-l folosi, trebuie să creați, folosind contul dvs. Facebook, o nouă aplicație Facebook.
Procesul este simplu. Mergi la Pagina pentru dezvoltatori Facebook (va trebui să vă înregistrați dacă nu ați scris niciodată o aplicație Facebook în trecut). Faceți clic pe Aplicații din meniu și selectați „Creați aplicație nouă”.
În fereastra pop-up, completați numele afișat al aplicației dvs., spațiul de nume, selectați o categorie și faceți clic pe Creare aplicație. Odată ce aplicația este creată, accesați pagina principală a aplicației și selectați Tabloul de bord. Aici veți obține AppID și valorile App Secret. Copiați acele valori într-un loc sigur, deoarece vom avea nevoie de ele mai târziu.
Apoi accesați Setările aplicației dvs. și faceți clic pe „+ Platforma aplicației” în partea de jos a paginii. În fereastra pop-up selectați „Site web” și apoi pe adresa URL a site-ului introduceți adresa URL a locației în care veți încărca instrumentul (Exemplu: https://localhost/). Faceți clic pe „Salvați modificările” și ați terminat!
Obțineți cheia API Datumbox
Pentru a accesa API-ul Datumbox înscrieți pentru un cont gratuit și vizitați-vă Panoul de acreditări API pentru a obține cheia API.
Dezvoltarea clasei Facebook Sentiment Analysis
În cele din urmă, tot ce trebuie să facem este să scriem o clasă simplă care să integreze cele două API-uri. Mai întâi apelează Facebook Graph Search, se autentifică, preia postările și apoi le transmite API-ului Datumbox pentru a le recupera polaritatea.
Iată codul clasei împreună cu comentariile necesare.
<?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; } }
După cum puteți vedea mai sus pe constructor, transmitem cheile necesare pentru a accesa cele 2 API-uri. Pe metoda publică sentimentAnalysis() inițializam Clientul Facebook, ne autentificăm și recuperăm lista de postări. Rețineți că, dacă nu v-ați autorizat încă aplicația sau dacă nu sunteți conectat la Facebook cu contul dvs., veți fi redirecționat către Facebook.com pentru a vă autentifica și autoriza aplicația (este aplicația dvs., nu vă faceți griji cu privire la problemele de confidențialitate). Odată ce lista de postări este preluată, acestea sunt transmise la Datumbox API pentru a-și obține polaritatea.
esti gata! Sunteți gata să utilizați această clasă pentru a efectua Analiza sentimentelor pe Facebook. Puteți Descarca codul PHP complet al instrumentului Facebook Sentiment Analysis de la Github.
Utilizarea și extinderea implementării
Pentru a utiliza instrumentul furnizat, trebuie să creați aplicația Facebook așa cum este descris mai sus și apoi să o configurați modificând fișierul config.php. În acest fișier va trebui să puneți cheia Datumbox API, ID-ul aplicației Facebook și Secretul pe care le-ați copiat mai devreme.
În cele din urmă, în postarea anterioară am construit un sistem independent Instrumentul de analiză a sentimentelor Twitter. Nu vă va dura mai mult de 10 minute pentru a îmbina cele 2 implementări și a crea un singur instrument care este capabil să preia postări atât de pe Facebook, cât și de pe Twitter și să prezinte rezultatele într-un singur raport.
Dacă v-a plăcut articolul, vă rugăm să acordați un minut pentru a-l distribui pe Facebook sau Twitter! 🙂
- AI
- ai art
- ai art generator
- ai robot
- inteligență artificială
- certificare de inteligență artificială
- robot cu inteligență artificială
- roboți cu inteligență artificială
- software de inteligență artificială
- blockchain
- conferință blockchain ai
- coingenius
- inteligența artificială conversațională
- criptoconferință ai
- dall-e
- Datumbox
- învățare profundă
- google ai
- masina de învățare
- Învățare automată și statistici
- Marketing online
- Plato
- platoul ai
- Informații despre date Platon
- Jocul lui Platon
- PlatoData
- platogaming
- Programare
- scara ai
- sintaxă
- zephyrnet