- Február 3, 2014
- Vasilis Vryniotis
- . 7 megjegyzés
Ebben a cikkben megvitatjuk, hogyan hozhat létre egyszerűen egy egyszerű Facebook-hangulatelemző eszközt, amely képes a nyilvános bejegyzéseket (mind a felhasználóktól, mind az oldalaktól) pozitív, negatív és semleges kategóriába sorolni. A Facebook Graph API Search és a Datumbox API 1.0v alkalmazását fogjuk használni. Hasonló a Twitter hangulatelemző eszköz amit néhány hónapja építettünk, ez a megvalósítás PHP-ben íródott, ennek ellenére nagyon könnyen elkészítheti saját eszközét az Ön által választott számítógépes nyelven.
Frissítés: A Datumbox Machine Learning Framework nyílt forráskódú és ingyenes letöltés. Ha érzelemelemzési osztályozót szeretne létrehozni anélkül, hogy meghaladná az API-korlátokat, használja a com.datumbox.applications.nlp.TextClassifier osztályt.
Az eszköz teljes PHP kódja megtalálható a GitHub.
Hogyan működik a Facebook hangulatelemzés?
Ahogyan azt a korábbi cikkekben tárgyaltuk, előadó Érzelmi elemzés fejlett gépi tanulási és természetes nyelvi feldolgozási technikákat igényel. Az előző bejegyzésekben részletesen láthattunk több szövegosztályozót, mint például a Naiv Bayes, a Softmax regresszió és a Max entrópia, megbeszéltük a használat fontosságát Funkció kiválasztása szövegosztályozási problémákban, és végül láttuk, hogyan lehet kidolgozni a megvalósítást Multinomiális Naive Bayes osztályozó JAVA nyelven.
A hangulatelemzés végrehajtása a Facebookon nem különbözik lényegesen attól, amit korábban megbeszéltünk. Dióhéjban le kell kérnünk a Facebook-bejegyzéseket, ki kell bontani a tartalmukat, majd tokenizálnunk kell őket, hogy kivonhassuk a kulcsszókombinációikat. Ezt követően a jellemzők kiválasztását végezzük, hogy csak az osztályozási probléma szempontjából fontos n-grammokat tartsuk meg, és az osztályozónkat megtanítjuk a pozitív, negatív és semleges bejegyzések azonosítására.
A fenti folyamat jelentősen leegyszerűsödik a Datumbox használatával Machine Learning API. Mindössze annyit kell tennie, hogy a Facebookon érzelemelemzést végezzen, csak hívja a Graph API-keresést az érdeklődésre számot tartó bejegyzések kinyeréséhez, a szövegük kinyeréséhez, és hívja a Datumbox Sentiment Analysis API-t, hogy megkapja a besorolásukat.
A Facebook hangulatelemző eszközének felépítése
A Facebook Sentiment Analysis eszköz elkészítéséhez két dologra van szükség: Facebook API használatára a nyilvános bejegyzések lekérésére és a bejegyzések polaritásának kiértékelésére a kulcsszavak alapján. Az első feladathoz a Facebook Graph API keresőjét, a másodikhoz a Datumbox API 1.0v-t használjuk.
Felgyorsítjuk az eszköz fejlesztését 2 osztály használatával: A Facebook PHP SDK amivel könnyen elérhetjük a Graph keresést és a Datumboxot PHP-API-kliens. A folyamat legbonyolultabb feladata ismét egy Facebook-alkalmazás létrehozása, amely lehetővé teszi a bejegyzések lekérését a Facebookról; a Datumbox integráció egy szelet torta.
Saját Facebook alkalmazás létrehozása
Sajnos a Facebook kötelezővé tette a hitelesítést a hozzáférés előtt Graph Search API-jukat. Szerencsére nagyon egyszerű használatot biztosítanak SDK amely gondoskodik az integráció technikai részleteiről. Mégis használat előtt létre kell hoznia egy új Facebook-alkalmazást a Facebook-fiókjával.
A folyamat egyszerű. Menj Facebook fejlesztői oldal (Regisztrálnia kell, ha még soha nem írt Facebook-jelentkezést). Kattintson az Alkalmazások elemre a menüben, és válassza az „Új alkalmazás létrehozása” lehetőséget.
A felugró ablakban töltse ki az alkalmazás megjelenített nevét, a névteret, válasszon egy kategóriát, és kattintson az Alkalmazás létrehozása gombra. Az alkalmazás létrehozása után lépjen az alkalmazás főoldalára, és válassza az Irányítópult lehetőséget. Itt kapja meg AppID-jét és az App Secret értékeit. Másolja át ezeket az értékeket egy biztonságos helyre, mert később szükségünk lesz rájuk.
Ezután lépjen az alkalmazás beállításaihoz, és kattintson az oldal alján található „+ App Platform” elemre. A felugró ablakban válassza ki a „Webhely” lehetőséget, majd a Webhely URL-címében adja meg annak a helynek az URL-jét, ahová fel fogja tölteni az eszközt (Példa: https://localhost/). Kattintson a „Módosítások mentése” gombra, és kész!
Szerezze meg Datumbox API-kulcsát
A Datumbox API eléréséhez regisztrálj ingyenes fiókért, és látogassa meg API hitelesítő adatok panel hogy megkapja az API-kulcsot.
A Facebook Sentiment Analysis osztály fejlesztése
Végül csak annyit kell tennünk, hogy írjunk egy egyszerű osztályt, amely integrálja a két API-t. Először meghívja a Facebook Graph Search-ot, hitelesíti, lekéri a bejegyzéseket, majd átadja a Datumbox API-nak, hogy lekérje a polaritásukat.
Itt található az osztály kódja a szükséges megjegyzésekkel együtt.
<?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; } }
Ahogy fentebb látható a konstruktoron, átadjuk azokat a kulcsokat, amelyek a 2 API eléréséhez szükségesek. A sentimentAnalysis() nyilvános metódussal inicializáljuk a Facebook klienst, hitelesítjük és lekérjük a bejegyzések listáját. Vegye figyelembe, hogy ha még nem engedélyezte az alkalmazást, vagy ha nem jelentkezett be a Facebookra a fiókjával, a rendszer átirányítja a Facebook.com oldalra, ahol bejelentkezhet és engedélyezheti az alkalmazást (ez az Ön alkalmazása, nem kell aggódnia az adatvédelmi problémák miatt). A bejegyzések listájának lekérése után a rendszer átadja a Datumbox API-nak, hogy megkapja a polaritásukat.
Jól indulsz! Készen áll arra, hogy használja ezt az osztályt érzelemelemzés elvégzésére a Facebookon. tudsz letöltés a Facebook Sentiment Analysis eszközének teljes PHP-kódja a Githubtól.
A megvalósítás használata és bővítése
A mellékelt eszköz használatához létre kell hoznia a Facebook alkalmazást a fent leírtak szerint, majd konfigurálnia kell a config.php fájl módosításával. Ebben a fájlban el kell helyeznie a Datumbox API-kulcsot, a Facebook App Id-t és a Titkot, amelyeket korábban másolt.
Végül az előző bejegyzésben építettünk egy önállót Twitter hangulatelemző eszköz. Nem tart több mint 10 percet a 2 implementáció egyesítése és egyetlen eszköz létrehozása, amely képes a Facebook és a Twitter bejegyzéseinek lekérésére és az eredmények egyetlen jelentésben történő bemutatására.
Ha tetszett a cikk, kérjük, szánjon egy percet és ossza meg Facebookon vagy Twitteren! 🙂
- AI
- ai művészet
- ai art generátor
- van egy robotod
- mesterséges intelligencia
- mesterséges intelligencia tanúsítás
- mesterséges intelligencia robot
- mesterséges intelligencia robotok
- mesterséges intelligencia szoftver
- blockchain
- blokklánc konferencia ai
- coingenius
- társalgási mesterséges intelligencia
- kriptokonferencia ai
- dall's
- Datumbox
- mély tanulás
- google azt
- gépi tanulás
- Gépi tanulás és statisztika
- Online Marketing
- Plató
- plato ai
- Platón adatintelligencia
- Platón játék
- PlatoData
- platogaming
- Programozás
- skála ai
- szintaxis
- zephyrnet