Ako vytvoriť potrubie na analýzu sentimentu v sociálnych médiách

Analýza nálad v sociálnych médiách môže byť veľmi užitočná na monitorovanie vašej značky, vašich konkurentov alebo akejkoľvek inej témy, ktorá vás zaujíma. V tomto článku vám ukážeme, ako vytvoriť systém, ktorý počúva sociálne médiá, ako sú Reddit, Hacker News, Linkedin, Twitter atď., a automaticky vykonáva analýzu sentimentu na obsahu vďaka generatívnej umelej inteligencii.

Analýza nálad v sociálnych médiách

Kombinácia sociálneho počúvania s analýzou sentimentu na analýzu sentimentu značky

Sociálne počúvanie je akt venovania pozornosti a interpretácie konverzácií na ľubovoľné témy na platformách sociálnych médií, stránkach s recenziami a iných online kanáloch.

Na druhej strane, analýza nálad je proces identifikácie a kategorizácie názorov vyjadrených v texte ako pozitívnych, negatívnych alebo neutrálnych. Zahŕňa použitie spracovania prirodzeného jazyka, analýzy textu a počítačovej lingvistiky na systematickú identifikáciu, extrakciu, kvantifikáciu a štúdium afektívnych stavov a subjektívnych informácií.

Keď skombinujete počúvanie sociálnych sietí a analýzu nálad, môžete sledovať a analyzovať nálady vyjadrené v konverzáciách týkajúcich sa vašej značky alebo vašich konkurentov. Táto metóda je známa aj ako "analýza sentimentu značky". Analýza sentimentu značky vám umožňuje automaticky pochopiť, čo si spotrebitelia myslia o vašej značke alebo o vašich konkurentoch, identifikovať oblasti, ktoré je potrebné zlepšiť, skočiť do správnej konverzácie v sociálnych médiách a nadviazať kontakt s potenciálnymi zákazníkmi a prijímať rozhodnutia založené na údajoch s cieľom zlepšiť reputáciu vašej značky a lojalitu zákazníkov.

Budovanie platformy na počúvanie sociálnych sietí

Vytvorenie platformy na počúvanie sociálnych sietí vyžaduje, aby ste sa pripojili k platforme sociálnych médií a načítali všetky nové príspevky a komentáre, ktoré obsahujú kľúčové slová, ktoré chcete monitorovať.

To sa ľahšie dosiahne, ak platforma, ktorú plánujete monitorovať, sprístupňuje rozhranie API. Napríklad Reddit vystavuje rozhranie API, ktoré môžete ľahko využívať. Tu je jednoduchá požiadavka cURL, ktorá načíta posledných 100 príspevkov Reddit:

curl https://www.reddit.com/r/all/new/.json?limit=100

A tu je typická odpoveď, ktorú vráti ich rozhranie API:

{
    "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
                    }
                },
            [...]
            ]
        }
    }

Vytvorili sme špecializovaný návod, v ktorom ukazujeme, ako monitorovať Reddit pomocou jednoduchého programu Go. Viac informácií o tom, ako monitorovať Reddit pomocou Go, nájdete tu.

Každá platforma sociálnych médií má svoje vlastné jemnosti, ktoré v tomto článku bohužiaľ nemôžeme pokryť. Ak chcete jednoducho monitorovať platformy sociálnych médií (ako Reddit, Linkedin, X, Hacker News a ďalšie), môžete si predplatiť špecializovanú platformu na počúvanie sociálnych sietí, ako je naša služba KWatch.io. KWatch.io môžete vyskúšať zadarmo tu.

Pridanie kľúčových slov na ovládací panel KWatch.io Pridanie kľúčových slov na ovládací panel KWatch.io

Medzi hlavné výzvy pri počúvaní sociálnych médií patrí veľký objem údajov, ktoré musíte spracovať, skutočnosť, že vás platforma sociálnych médií môže zablokovať, ak zadáte príliš veľa požiadaviek, a skutočnosť, že musíte byť inteligentní pri spracovaní údajov.

V ďalšej časti vysvetlíme, ako integrovať zozbierané údaje do vášho systému.

Integrácia údajov zo sociálnych médií do vášho systému

Po zhromaždení údajov z platforiem sociálnych médií ich musíte uložiť do databázy alebo dátového skladu. To vám umožní analyzovať údaje, vykonávať analýzu sentimentu a vytvárať poznatky.

Existuje niekoľko spôsobov ukladania údajov zo sociálnych médií (čo sú v podstate čisto textové údaje) v závislosti od vašich požiadaviek a objemu údajov, s ktorými pracujete. Medzi bežné možnosti patria:

Ak ste sa prihlásili do platformy na počúvanie sociálnych sietí, mali by ste si overiť, či ponúka spôsob prenosu údajov do vášho systému.

Webhooks, často označované ako "webové spätné volania" alebo "HTTP push API", slúžia aplikáciám na zdieľanie údajov v reálnom čase s inými aplikáciami. Dosahuje sa to generovaním požiadaviek HTTP POST, keď sa vyskytnú určité udalosti, čím sa informácie okamžite doručia iným aplikáciám.

Napríklad na našej platforme KWatch.io by ste mali prejsť do časti "oznámenia" a nastaviť adresu URL webhooku, ktorá bude smerovať na váš systém.

Webový háčik API na KWatch.io Webový háčik API na KWatch.io

Takto vyzerá webový háčik KWatch.io (ide o užitočné zaťaženie 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.",
}

Ak ste v tejto oblasti nováčik, môžete tieto webové háčiky bez problémov prijímať v jazyku Python pomocou rozhrania FastAPI.

Nainštalujte FastAPI so serverom Uvicorn:

pip install fastapi uvicorn

Teraz vytvorte nový súbor Python a vložte nasledujúci kód (možno budete musieť tento skript upraviť):

# 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)

Uložte súbor a spustite server nasledujúcim príkazom:

uvicorn webhook_server:app — reload — host 0.0.0.0 — port 8000

Váš server je teraz spustený a pripravený prijímať webové háčiky zo služby KWatch.io.

Vykonávanie analýzy sentimentu na údajoch pomocou generatívnych modelov umelej inteligencie ako GPT-4 alebo LLaMA 3

Po zhromaždení a uložení údajov zo sociálnych médií môžete na nich vykonať analýzu nálad.

V súčasnosti je najpresnejším spôsobom, ako vykonať analýzu sentimentu na časti textu o konkrétnom kľúčovom slove, použitie generatívnych modelov umelej inteligencie, ako sú GPT-4, LLaMA 3, ChatDolphin atď. Tieto LLM nemusia byť rýchle a v rozsahu môžu byť nákladné, ale zaručujú najmodernejšie výsledky. Ak potrebujete analyzovať veľmi veľké objemy kľúčových slov, možno budete chcieť znížiť náklady použitím menších modelov alebo vyladením vlastného modelu.

Môžete nasadiť vlastný model AI alebo sa pripojiť k rozhraniu API AI, ako je OpenAI alebo NLP Cloud. V tomto článku sa pripojíme k rozhraniu API NLP Cloud AI.

Tu sa môžete zaregistrovať do služby NLP Cloud a získať svoj kľúč API.

Vaša žiadosť nemusí byť príliš zložitá. Napríklad tu je komentár na Reddite o OpenAI:

Komentár na Reddite o OpenAI Komentár na Reddite o OpenAI

Na analýzu nálad o OpenAI v tomto komentári na Reddite použime model ChatDolphin v službe NLP Cloud. Najprv nainštalujte klienta NLP Cloud v jazyku Python:

pip install nlpcloud

Teraz môžete analyzovať sentiment komentára na Reddite pomocou nasledujúceho kódu Pythonu:

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}"))

Odpoveď bude nasledovná:

Negative

Teraz to ukončíme a napíšeme finálny kód, ktorý načúva webovému háku API a vykonáva analýzu sentimentu na údajoch:

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)
    

Záver

Ako vidíte, je možné automatizovať analýzu sentimentu na údajoch zo sociálnych médií pomocou moderných generatívnych modelov AI a účinných nástrojov na počúvanie sociálnych sietí. Tento prístup možno uplatniť v rôznych scenároch monitorovania sociálnych médií. Tu je niekoľko nápadov:

Výroba takéhoto programu však môže byť náročná. Jednak preto, že sociálne médiá nie je také jednoduché monitorovať, ale aj preto, že generatívne modely umelej inteligencie môžu byť nákladné na použitie na veľké objemy údajov.

Ak nechcete sami vytvárať a udržiavať takýto systém, odporúčame vám namiesto toho použiť našu platformu KWatch.io, pretože automaticky monitorujeme sociálne médiá a vykonávame analýzu sentimentu na zistených príspevkoch a komentároch: zaregistrovať sa na KWatch.io tu.

Arthur
Technický riaditeľ spoločnosti KWatch.io