A közösségi média hangulatelemzése nagyon hasznos lehet a márka, a versenytársak vagy bármely más érdekes téma nyomon követéséhez. Ebben a cikkben megmutatjuk, hogyan építhetünk egy olyan rendszert, amely a közösségi médiát, például a Redditet, a Hacker News-t, a Linkedint, a Twittert stb. hallgatja, és a generatív mesterséges intelligenciának köszönhetően automatikusan elvégzi a tartalom hangulatelemzését.
A közösségi figyelés a közösségi média platformokon, értékelő oldalakon és más online csatornákon bármilyen témával kapcsolatos beszélgetésekre való odafigyelés és azok értelmezése.
Az érzelemelemzés másrészt a szövegben kifejezett vélemények azonosításának és pozitív, negatív vagy semleges kategóriákba sorolásának folyamata. A természetes nyelvi feldolgozás, a szövegelemzés és a számítógépes nyelvészet felhasználásával szisztematikusan azonosítja, kivonja, számszerűsíti és tanulmányozza az érzelmi állapotokat és a szubjektív információkat.
A közösségi figyelés és a hangulatelemzés kombinálásával nyomon követheti és elemezheti a márkájával vagy versenytársaival kapcsolatos beszélgetésekben kifejezett hangulatot. Ezt "márkaérzelemzésnek" is nevezik. A márkaérzelem-elemzés lehetővé teszi, hogy automatikusan megértse, hogyan vélekednek a fogyasztók az Ön márkájáról vagy versenytársairól, azonosítsa a fejlesztendő területeket, a megfelelő beszélgetésbe ugorjon bele a közösségi médiában a potenciális ügyfelekkel való kapcsolattartás érdekében, és adatvezérelt döntéseket hozzon a márka hírnevének és ügyfélhűségének javítása érdekében.
A közösségi figyelőplatform létrehozásához be kell csatlakoznia egy közösségi médiaplatformba, és le kell kérnie minden olyan új bejegyzést és hozzászólást, amely tartalmazza a nyomon követni kívánt kulcsszavakat.
Ez könnyebben megvalósítható, ha a megfigyelni kívánt platform API-t bocsát ki. A Reddit például egy olyan API-t tesz közzé, amelyet könnyen felhasználhat. Íme egy egyszerű cURL-kérés, amely lekérdezi az utolsó 100 Reddit-bejegyzést:
curl https://www.reddit.com/r/all/new/.json?limit=100
Itt pedig egy tipikus válasz, amelyet az API-juk küld vissza:
{
"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
}
},
[...]
]
}
}
Készítettünk egy külön bemutatót, amely megmutatja, hogyan lehet a Redditet egy egyszerű Go programmal figyelni. Itt olvashatsz többet arról, hogyan lehet a Redditet a Go segítségével nyomon követni.
Minden egyes közösségi médiaplatformnak megvannak a maga finomságai, amelyekkel ebben a cikkben sajnos nem tudunk foglalkozni. A közösségi médiaplatformok (például a Reddit, a Linkedin, az X, a Hacker News és mások) egyszerű nyomon követése érdekében érdemes feliratkoznia egy dedikált közösségi figyelő platformra, például a KWatch.io szolgáltatásunkra. Próbálja ki a KWatch.io-t ingyenesen itt.
Kulcsszavak hozzáadása a KWatch.io műszerfalon
A közösségi médiameghallgatás során a fő kihívások közé tartozik a nagy mennyiségű adat, amelyet kezelni kell, az a tény, hogy a közösségi médiaplatform blokkolhatja Önt, ha túl sok kérést tesz, és az a tény, hogy okosan kell kezelnie az adatokat.
A következő szakaszban elmagyarázzuk, hogyan lehet az összegyűjtött adatokat integrálni a rendszerbe.
Miután összegyűjtötte az adatokat a közösségi médiaplatformokról, azokat egy adatbázisban vagy adattárházban kell tárolnia. Ez lehetővé teszi az adatok elemzését, az érzelemelemelemzés elvégzését és a meglátások generálását.
A közösségi médiaadatok (amelyek alapvetően tiszta szöveges adatok) tárolásának több módja is létezik, az Ön igényeitől és a kezelt adatmennyiségtől függően. Néhány gyakori lehetőség a következő:
Ha feliratkozott egy közösségi figyelő platformra, ellenőrizze, hogy kínálnak-e módot az adatok átvitelére az Ön rendszerébe.
A webhookok, amelyeket gyakran "webes visszahívásoknak" vagy "HTTP push API"-nak is neveznek, az alkalmazások számára a valós idejű adatok más alkalmazásokkal való megosztását szolgálják. Ezt úgy érik el, hogy bizonyos események bekövetkezésekor HTTP POST-kéréseket generálnak, és így az információkat azonnal eljuttatják más alkalmazásokhoz.
Például a mi platformunkon, a KWatch.io-n, az "értesítések" szakaszba kell lépnie, és be kell állítania egy webhook URL-t, amely a rendszerére mutat.
API Webhook a KWatch.io-n
Így néz ki a KWatch.io webhook (ez egy JSON payload):
{
"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.",
}
Ha új vagy ebben a témában, a FastAPI segítségével könnyedén fogadhatod ezeket a webhookokat Pythonban.
Telepítse a FastAPI-t az Uvicorn szerverrel:
pip install fastapi uvicorn
Most hozzon létre egy új Python fájlt, és illessze be a következő kódot (lehet, hogy át kell alakítania ezt a szkriptet):
# 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)
Mentse a fájlt, és futtassa a kiszolgálót a következő paranccsal:
uvicorn webhook_server:app — reload — host 0.0.0.0 — port 8000
A kiszolgálója most már fut, és készen áll a KWatch.io webhooks fogadására.
Miután összegyűjtötte és tárolta a közösségi médiaadatokat, elvégezheti rajtuk a hangulatelemzést.
Ma a legpontosabb módja annak, hogy egy adott kulcsszóval kapcsolatos szöveges elemzést végezzünk egy adott szövegdarabon, az olyan generatív AI modellek használata, mint a GPT-4, LLaMA 3, ChatDolphin stb. Ezek az LLM-ek nem feltétlenül gyorsak és méretarányosan költségesek lehetnek, de garantálják a legkorszerűbb eredményeket. Ha nagyon nagy mennyiségű kulcsszót kell elemeznie, érdemes kisebb modellek használatával csökkenteni a költségeket, vagy finomhangolni a saját modelljét.
Telepítheti saját AI-modelljét, vagy csatlakozhat egy AI API-hoz, például az OpenAI-hoz vagy az NLP Cloudhoz. Ebben a cikkben az NLP Cloud AI API-hoz csatlakozunk.
Itt regisztrálhatsz az NLP Cloudra, és lekérdezheted az API-kulcsodat.A kérésnek nem kell túl bonyolultnak lennie. Itt van például egy hozzászólás a Redditen, az OpenAI-ról:
Egy megjegyzés a Redditen az OpenAI-ról
Használjuk a ChatDolphin modellt az NLP Cloudon, hogy elemezzük az OpenAI-ról alkotott véleményt ebben a Reddit-kommentben. Először is telepítsük az NLP Cloud Python kliensét:
pip install nlpcloud
Most már elemezheti a Reddit-kommentár hangulatát a következő Python-kóddal:
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}"))
A válasz a következő lesz:
Negative
Most csomagoljuk be és írjuk meg a végső kódot, amely az API webhookot hallgatja, és az adatokon érzelemelemelemzést végez:
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)
Mint látható, a közösségi médiaadatokon végzett hangulatelemzés automatizálható a modern generatív AI modellek és a hatékony közösségi figyelőeszközök segítségével. Ez a megközelítés különböző közösségi médiafigyelési forgatókönyvekben alkalmazható. Íme néhány ötlet:
Egy ilyen program előállítása azonban kihívást jelenthet. Egyrészt azért, mert a közösségi médiát nem olyan könnyű nyomon követni, másrészt pedig azért, mert a generatív AI-modellek nagy mennyiségű adatra való alkalmazása költséges lehet.
Ha nem szeretne saját maga kiépíteni és fenntartani egy ilyen rendszert, javasoljuk, hogy használja helyette a KWatch.io platformunkat, mivel mi automatikusan figyeljük a közösségi médiát, és érzelemelemelemzést végzünk az észlelt posztokon és kommenteken: regisztráljon a KWatch.io-n itt.
Arthur
CTO a KWatch.io-nál