Analiza sentimentelor din social media poate fi foarte utilă pentru a vă monitoriza marca, concurenții sau orice alt subiect de interes. În acest articol vă arătăm cum să construiți un sistem care să asculte social media precum Reddit, Hacker News, Linkedin, Twitter etc. și să efectueze automat o analiză a sentimentului asupra conținutului datorită AI generativ.
Ascultarea socială este actul de a acorda atenție și de a interpreta conversațiile în jurul unui anumit tip de subiecte pe platformele de socializare, pe site-urile de recenzii și pe alte canale online.
Pe de altă parte, analiza sentimentelor este procesul de identificare și clasificare a opiniilor exprimate într-un text ca fiind pozitive, negative sau neutre. Aceasta presupune utilizarea procesării limbajului natural, a analizei textului și a lingvisticii computaționale pentru a identifica, extrage, cuantifica și studia în mod sistematic stările afective și informațiile subiective.
Atunci când combinați ascultarea socială și analiza sentimentelor, puteți urmări și analiza sentimentele exprimate în conversațiile legate de marca dvs. sau de concurenții dvs. Acest lucru este, de asemenea, cunoscut sub numele de "analiza sentimentului mărcii". Analiza sentimentului mărcii vă permite să înțelegeți în mod automat ce simt consumatorii în legătură cu marca dvs. sau cu concurenții dvs., să identificați domeniile de îmbunătățire, să intrați în conversația potrivită pe rețelele sociale pentru a interacționa cu potențialii clienți și să luați decizii bazate pe date pentru a îmbunătăți reputația mărcii dvs. și loialitatea clienților.
Crearea unei platforme de ascultare socială necesită să vă conectați la o platformă de social media și să preluați toate postările și comentariile noi care conțin cuvintele cheie pe care doriți să le monitorizați.
Acest lucru este mai ușor de realizat dacă platforma pe care intenționați să o monitorizați expune un API. De exemplu, Reddit expune un API pe care îl puteți consuma cu ușurință. Iată o simplă solicitare cURL care recuperează ultimele 100 de postări Reddit:
curl https://www.reddit.com/r/all/new/.json?limit=100
Și iată un răspuns tipic returnat de API-ul lor:
{
"kind": "Listing",
"data": {
"after": "t3_1asad4n",
"dist": 100,
"modhash": "ne8fi0fr55b56b8a75f8075df95fa2f03951cb5812b0f9660d",
"geo_filter": "",
"children": [
{
"kind": "t3",
"data": {
"approved_at_utc": null,
"subreddit": "GunAccessoriesForSale",
"selftext": "Morning gents. I\u2019m looking to snag up your forgotten factory yellow spring for the 509T. I need to source one for a buddy who lost his and I cannot find any available anywhere! \n\nIf one of you have the yellow spring laying around, looking to pay $50 shipped\u2026 \n\nTo my 509t owners, it\u2019s the \u201clight\u201d spring that comes in a plastic bag in the carrying case. \n\nThanks in advance ",
"author_fullname": "t2_2ezh71n6",
"saved": false,
"mod_reason_title": null,
"gilded": 0,
"clicked": false,
"title": "[WTB] 509T yellow spring",
"link_flair_richtext": [],
"subreddit_name_prefixed": "r/GunAccessoriesForSale",
[...]
"contest_mode": false,
"mod_reports": [],
"author_patreon_flair": false,
"author_flair_text_color": "dark",
"permalink": "/r/GunAccessoriesForSale/comments/1asadbj/wtb_509t_yellow_spring/",
"parent_whitelist_status": null,
"stickied": false,
"url": "https://www.reddit.com/r/GunAccessoriesForSale/comments/1asadbj/wtb_509t_yellow_spring/",
"subreddit_subscribers": 182613,
"created_utc": 1708094934.0,
"num_crossposts": 0,
"media": null,
"is_video": false
}
},
[...]
]
}
}
Am realizat un tutorial dedicat care arată cum să monitorizăm Reddit cu un simplu program Go. Citiți mai multe aici despre cum să monitorizați Reddit cu Go.
Fiecare platformă de social media are propriile subtilități pe care, din păcate, nu le putem aborda în acest articol. Pentru a monitoriza cu ușurință platformele de social media (cum ar fi Reddit, Linkedin, X, Hacker News și multe altele), ar fi bine să vă abonați la o platformă dedicată de ascultare socială, cum ar fi serviciul nostru KWatch.io. Încercați KWatch.io gratuit aici.
Adăugați cuvinte cheie în tabloul dvs. de bord KWatch.io
Unele dintre principalele provocări, atunci când se efectuează ascultarea social media, sunt volumul mare de date pe care trebuie să le gestionați, faptul că puteți fi blocat de platforma social media dacă faceți prea multe solicitări și faptul că trebuie să fiți inteligent în ceea ce privește modul în care gestionați datele.
În secțiunea următoare, vom explica cum să integrați datele colectate în sistemul dumneavoastră.
După ce ați colectat datele de pe platformele de socializare, trebuie să le stocați într-o bază de date sau într-un depozit de date. Acest lucru vă va permite să analizați datele, să efectuați o analiză a sentimentelor și să generați perspective.
Există mai multe moduri de a stoca datele din social media (care sunt, în principiu, date text pur), în funcție de cerințele dumneavoastră și de volumul de date cu care aveți de-a face. Unele opțiuni comune includ:
Dacă v-ați abonat la o platformă de ascultare socială, ar trebui să verificați dacă aceasta oferă o modalitate de a transfera datele în sistemul dumneavoastră.
Webhooks, adesea denumite "web callback" sau "HTTP push API", servesc ca mijloc pentru ca aplicațiile să partajeze date în timp real cu alte aplicații. Acest lucru se realizează prin generarea de solicitări HTTP POST atunci când au loc anumite evenimente, furnizând astfel informații altor aplicații cu promptitudine.
De exemplu, pe platforma noastră, KWatch.io, ar trebui să mergeți la secțiunea "notificări" și să setați un URL webhook care să arate spre sistemul dumneavoastră.
API Webhook pe KWatch.io
Iată cum arată webhook-ul KWatch.io (este o sarcină utilă JSON):
{
"platform": "reddit",
"query": "Keywords: vllm",
"datetime": "19 Jan 24 05:52 UTC",
"link": "https://www.reddit.com/r/LocalLLaMA/comments/19934kd/sglang_new/kijvtk5/",
"content": "sglang runtime has a different architecture on the higher-level part with vllm.",
}
Dacă sunteți nou în acest domeniu, puteți primi fără efort aceste webhooks în Python folosind FastAPI.
Instalați FastAPI cu serverul Uvicorn:
pip install fastapi uvicorn
Acum creați un nou fișier Python și inserați următorul cod (este posibil să fie nevoie să adaptați acest script):
# Import necessary modules
from fastapi import FastAPI
from pydantic import BaseModel
# Initialize your FastAPI app
app = FastAPI()
# Update the Pydantic model to properly type-check and validate the incoming data
class WebhookData(BaseModel):
platform: str
query: str
datetime: str
link: str
content: str
# Define an endpoint to receive webhook data
@app.post("/kwatch-webhooks")
async def receive_webhook(webhook_data: WebhookData):
# Process the incoming data
# For demonstration, we're just printing it
print("Received webhook data:", webhook_data.dict())
# Return a response
return {"message": "Webhook data received successfully"}
if __name__ == "__main__":
# Run the server with Uvicorn
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
Salvați fișierul și rulați serverul cu următoarea comandă:
uvicorn webhook_server:app — reload — host 0.0.0.0 — port 8000
Serverul dvs. este acum în funcțiune și este pregătit să primească webhooks de la KWatch.io.
Odată ce ați colectat și stocat datele din social media, puteți efectua o analiză a sentimentelor.
În prezent, cea mai precisă modalitate de a efectua analiza sentimentală a unui text despre un anumit cuvânt cheie este utilizarea unor modele generative de inteligență artificială, cum ar fi GPT-4, LLaMA 3, ChatDolphin etc. Aceste LLM-uri nu sunt neapărat rapide și pot fi costisitoare la scară largă, dar garantează rezultate de ultimă oră. Dacă aveți nevoie să analizați volume foarte mari de cuvinte cheie, este posibil să doriți să reduceți costurile prin utilizarea unor modele mai mici sau să vă rafinați propriul model.
Puteți implementa propriul model de inteligență artificială sau vă puteți conecta la un API de inteligență artificială, cum ar fi OpenAI sau NLP Cloud. În acest articol, ne vom conecta la NLP Cloud AI API.
Vă puteți înregistra pe NLP Cloud și vă puteți recupera cheia API aici.Cererea dumneavoastră nu trebuie să fie prea complexă. De exemplu, iată un comentariu pe Reddit, despre OpenAI:
Un comentariu pe Reddit despre OpenAI
Să folosim modelul ChatDolphin de pe NLP Cloud pentru a analiza sentimentul despre OpenAI în acest comentariu de pe Reddit. În primul rând, instalați clientul NLP Cloud Python:
pip install nlpcloud
Acum puteți analiza sentimentul comentariului Reddit cu următorul cod Python:
import nlpcloud
brand = "OpenAI"
reddit_comment = "Wasn't it the same with all OpenAI products? Amazing and groundbreaking at first, soon ruined by excessive censorship and outpaced by the competitors"
client = nlpcloud.Client("chatdolphin", "your api token", gpu=True)
print(client.generation(f"What is the sentiment about {brand} in the following comment? Positive, negative, or neutral? Answer with 1 word only.\n\n{reddit_comment}"))
Răspunsul va fi:
Negative
Acum, să încheiem și să scriem codul final care ascultă webhook-ul API și efectuează analiza sentimentală a datelor:
from fastapi import FastAPI
from pydantic import BaseModel
import nlpcloud
client = nlpcloud.Client("dolphin", "your api token", gpu=True)
app = FastAPI()
class WebhookData(BaseModel):
platform: str
query: str
datetime: str
link: str
content: str
@app.post("/kwatch-webhooks")
async def receive_webhook(webhook_data: WebhookData):
brand = "OpenAI"
print(client.generation(f"""What is the sentiment about {brand} in the following comment? Positive, negative, or neutral? Answer with 1 word only.\n\n
{webhook_data.content}"""))
return {"message": "Webhook data received successfully"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
După cum puteți vedea, este posibil să automatizați analiza sentimentală a datelor din social media cu ajutorul modelelor moderne de inteligență artificială generativă și al instrumentelor eficiente de ascultare socială. Această abordare poate fi aplicată în diverse scenarii de monitorizare a social media. Iată câteva idei:
Totuși, producerea unui astfel de program poate fi o provocare. În primul rând pentru că mediile sociale nu sunt atât de ușor de monitorizat, dar și pentru că modelele generative de inteligență artificială pot fi costisitoare pentru a fi utilizate pe volume mari de date.
Dacă nu doriți să construiți și să mențineți un astfel de sistem de unul singur, vă recomandăm să utilizați în schimb platforma noastră KWatch.io, deoarece monitorizăm automat social media și efectuăm o analiză a sentimentului asupra postărilor și comentariilor detectate: înregistrați-vă pe KWatch.io aici.
Arthur
CTO la KWatch.io