Πώς να κατασκευάσετε ένα αγωγό ανάλυσης συναισθήματος κοινωνικών μέσων ενημέρωσης

Η ανάλυση συναισθήματος στα μέσα κοινωνικής δικτύωσης μπορεί να είναι πολύ χρήσιμη για την παρακολούθηση της μάρκας σας, των ανταγωνιστών σας ή οποιουδήποτε άλλου θέματος ενδιαφέροντος. Σε αυτό το άρθρο θα σας δείξουμε πώς να δημιουργήσετε ένα σύστημα που ακούει τα μέσα κοινωνικής δικτύωσης, όπως το Reddit, το Hacker News, το Linkedin, το Twitter κ.λπ., και να εκτελεί αυτόματα ανάλυση συναισθήματος στο περιεχόμενο χάρη στη γεννητική τεχνητή νοημοσύνη.

Ανάλυση συναισθήματος στα μέσα κοινωνικής δικτύωσης

Συνδυάζοντας την κοινωνική ακρόαση με την ανάλυση συναισθήματος για την ανάλυση συναισθήματος μάρκας

Η κοινωνική ακρόαση είναι η πράξη της προσοχής και της ερμηνείας των συνομιλιών γύρω από ένα οποιοδήποτε θέμα σε πλατφόρμες κοινωνικής δικτύωσης, ιστότοπους αναθεώρησης και άλλα διαδικτυακά κανάλια.

Η ανάλυση συναισθήματος, από την άλλη πλευρά, είναι η διαδικασία εντοπισμού και κατηγοριοποίησης των απόψεων που εκφράζονται σε ένα κείμενο ως θετικές, αρνητικές ή ουδέτερες. Περιλαμβάνει τη χρήση της επεξεργασίας φυσικής γλώσσας, της ανάλυσης κειμένου και της υπολογιστικής γλωσσολογίας για τον συστηματικό εντοπισμό, την εξαγωγή, την ποσοτικοποίηση και τη μελέτη συναισθηματικών καταστάσεων και υποκειμενικών πληροφοριών.

Όταν συνδυάζετε την κοινωνική ακρόαση και την ανάλυση συναισθήματος, μπορείτε να παρακολουθείτε και να αναλύετε το συναίσθημα που εκφράζεται στις συζητήσεις που σχετίζονται με το εμπορικό σήμα σας ή τους ανταγωνιστές σας. Αυτό είναι επίσης γνωστό ως "ανάλυση συναισθήματος μάρκας". Η ανάλυση συναισθήματος μάρκας σάς επιτρέπει να κατανοείτε αυτόματα πώς αισθάνονται οι καταναλωτές για την μάρκα σας ή τους ανταγωνιστές σας, να εντοπίζετε τομείς προς βελτίωση, να μπαίνετε στη σωστή συζήτηση στα μέσα κοινωνικής δικτύωσης για να επικοινωνείτε με πιθανούς πελάτες και να λαμβάνετε αποφάσεις βάσει δεδομένων για να ενισχύετε τη φήμη της μάρκας σας και την αφοσίωση των πελατών σας.

Δημιουργία μιας πλατφόρμας κοινωνικής ακρόασης

Η δημιουργία μιας πλατφόρμας κοινωνικής ακρόασης απαιτεί να συνδεθείτε σε μια πλατφόρμα κοινωνικών μέσων και να ανακτάτε κάθε νέα δημοσίευση και σχόλιο που περιέχει τις λέξεις-κλειδιά που θέλετε να παρακολουθείτε.

Αυτό επιτυγχάνεται ευκολότερα αν η πλατφόρμα που σκοπεύετε να παρακολουθήσετε εκθέτει ένα API. Για παράδειγμα, το Reddit εκθέτει ένα API που μπορείτε εύκολα να καταναλώσετε. Ακολουθεί ένα απλό αίτημα cURL που ανακτά τις τελευταίες 100 αναρτήσεις στο Reddit:

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

Και εδώ είναι μια τυπική απάντηση που επιστρέφεται από το 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
                    }
                },
            [...]
            ]
        }
    }

Φτιάξαμε ένα ειδικό σεμινάριο που δείχνει πώς να παρακολουθείτε το Reddit με ένα απλό πρόγραμμα Go. Διαβάστε περισσότερα εδώ για το πώς να παρακολουθείτε το Reddit με το Go.

Κάθε πλατφόρμα κοινωνικής δικτύωσης έχει τις δικές της ιδιαιτερότητες που δεν μπορούμε να καλύψουμε σε αυτό το άρθρο δυστυχώς. Για να παρακολουθείτε εύκολα τις πλατφόρμες κοινωνικής δικτύωσης (όπως το Reddit, το Linkedin, το X, το Hacker News και άλλα), ίσως να θέλετε να εγγραφείτε σε μια ειδική πλατφόρμα κοινωνικής ακρόασης, όπως η υπηρεσία KWatch.io. Δοκιμάστε το KWatch.io δωρεάν εδώ.

Προσθέστε λέξεις-κλειδιά στο ταμπλό του KWatch.io Προσθέστε λέξεις-κλειδιά στο ταμπλό του KWatch.io

Ορισμένες από τις κύριες προκλήσεις κατά την ακρόαση κοινωνικών μέσων είναι ο μεγάλος όγκος δεδομένων που πρέπει να διαχειριστείτε, το γεγονός ότι μπορεί να μπλοκαριστείτε από την πλατφόρμα κοινωνικών μέσων αν κάνετε πάρα πολλά αιτήματα και το γεγονός ότι πρέπει να είστε έξυπνοι όσον αφορά τον τρόπο με τον οποίο χειρίζεστε τα δεδομένα.

Στην επόμενη ενότητα, θα εξηγήσουμε πώς να ενσωματώσετε τα δεδομένα που συλλέξατε στο σύστημά σας.

Ενσωμάτωση δεδομένων κοινωνικών μέσων στο σύστημά σας

Μόλις συλλέξετε τα δεδομένα από τις πλατφόρμες κοινωνικής δικτύωσης, πρέπει να τα αποθηκεύσετε σε μια βάση δεδομένων ή μια αποθήκη δεδομένων. Αυτό θα σας επιτρέψει να αναλύσετε τα δεδομένα, να εκτελέσετε ανάλυση συναισθήματος και να δημιουργήσετε ιδέες.

Υπάρχουν διάφοροι τρόποι για την αποθήκευση των δεδομένων των μέσων κοινωνικής δικτύωσης (τα οποία είναι βασικά δεδομένα καθαρού κειμένου), ανάλογα με τις απαιτήσεις σας και τον όγκο των δεδομένων που διαχειρίζεστε. Ορισμένες κοινές επιλογές περιλαμβάνουν:

Εάν έχετε εγγραφεί σε μια πλατφόρμα κοινωνικής παρακολούθησης, θα πρέπει να ελέγξετε εάν προσφέρει έναν τρόπο μεταφοράς των δεδομένων στο σύστημά σας.

Τα webhooks, που συχνά αναφέρονται ως "web callbacks" ή "HTTP push API", χρησιμεύουν ως μέσο για τις εφαρμογές να μοιράζονται δεδομένα σε πραγματικό χρόνο με άλλες εφαρμογές. Αυτό επιτυγχάνεται με τη δημιουργία αιτημάτων HTTP POST όταν λαμβάνουν χώρα συγκεκριμένα γεγονότα, παρέχοντας έτσι πληροφορίες σε άλλες εφαρμογές αμέσως.

Για παράδειγμα, στην πλατφόρμα μας, KWatch.io, θα πρέπει να μεταβείτε στην ενότητα "ειδοποιήσεις" και να ορίσετε μια διεύθυνση URL webhook που δείχνει στο σύστημά σας.

Webhook API στο KWatch.io Webhook API στο KWatch.io

Να πώς μοιάζει το webhook του KWatch.io (είναι ένα ωφέλιμο φορτίο 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.",
}

Αν είστε νέοι σε αυτό, μπορείτε να λάβετε αυτά τα webhooks στην Python χρησιμοποιώντας το FastAPI χωρίς κόπο.

Εγκαταστήστε το FastAPI με τον διακομιστή Uvicorn:

pip install fastapi uvicorn

Τώρα δημιουργήστε ένα νέο αρχείο Python και επικολλήστε τον ακόλουθο κώδικα (ίσως χρειαστεί να προσαρμόσετε αυτό το σενάριο):

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

Αποθηκεύστε το αρχείο και εκτελέστε το διακομιστή με την ακόλουθη εντολή:

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

Ο διακομιστής σας εκτελείται τώρα και είναι έτοιμος να λάβει webhooks από το KWatch.io.

Εκτέλεση ανάλυσης συναισθήματος στα δεδομένα με γεννητικά μοντέλα ΤΝ όπως το GPT-4 ή το LLaMA 3

Αφού συλλέξετε και αποθηκεύσετε τα δεδομένα των μέσων κοινωνικής δικτύωσης, μπορείτε να εκτελέσετε ανάλυση συναισθήματος σε αυτά.

Σήμερα, ο πιο ακριβής τρόπος για να πραγματοποιηθεί ανάλυση συναισθήματος σε ένα κομμάτι κειμένου σχετικά με μια συγκεκριμένη λέξη-κλειδί είναι η χρήση γεννητικών μοντέλων ΤΝ όπως τα GPT-4, LLaMA 3, ChatDolphin κ.λπ. Αυτά τα LLM δεν είναι απαραίτητα γρήγορα και μπορεί να είναι δαπανηρά σε κλίμακα, αλλά εγγυώνται αποτελέσματα τελευταίας τεχνολογίας. Εάν πρέπει να αναλύσετε πολύ μεγάλο όγκο λέξεων-κλειδιών, ίσως θελήσετε να μειώσετε το κόστος χρησιμοποιώντας μικρότερα μοντέλα ή να τελειοποιήσετε το δικό σας μοντέλο.

Μπορείτε να αναπτύξετε το δικό σας μοντέλο AI ή να συνδεθείτε σε ένα API AI όπως το OpenAI ή το NLP Cloud. Σε αυτό το άρθρο θα συνδεθούμε με το NLP Cloud AI API.

Μπορείτε να εγγραφείτε στο NLP Cloud και να λάβετε το κλειδί API εδώ.

Το αίτημά σας δεν χρειάζεται να είναι πολύ περίπλοκο. Για παράδειγμα, εδώ είναι ένα σχόλιο στο Reddit, σχετικά με το OpenAI:

Ένα σχόλιο στο Reddit για το OpenAI Ένα σχόλιο στο Reddit για το OpenAI

Ας χρησιμοποιήσουμε το μοντέλο ChatDolphin στο NLP Cloud για να αναλύσουμε το συναίσθημα σχετικά με το OpenAI σε αυτό το σχόλιο στο Reddit. Αρχικά, εγκαταστήστε τον πελάτη Python του NLP Cloud:

pip install nlpcloud

Τώρα μπορείτε να αναλύσετε το συναίσθημα του σχολίου Reddit με τον ακόλουθο κώδικα 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}"))

Η απάντηση θα είναι:

Negative

Τώρα ας ολοκληρώσουμε και ας γράψουμε τον τελικό κώδικα που ακούει το webhook του API και εκτελεί ανάλυση συναισθήματος στα δεδομένα:

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)
    

Συμπέρασμα

Όπως μπορείτε να δείτε, είναι δυνατή η αυτοματοποίηση της ανάλυσης συναισθήματος σε δεδομένα κοινωνικών μέσων με τη βοήθεια σύγχρονων μοντέλων τεχνητής νοημοσύνης και αποτελεσματικών εργαλείων κοινωνικής ακρόασης. Η προσέγγιση αυτή μπορεί να εφαρμοστεί σε διάφορα σενάρια παρακολούθησης των μέσων κοινωνικής δικτύωσης. Ακολουθούν ορισμένες ιδέες:

Ωστόσο, η παραγωγή ενός τέτοιου προγράμματος μπορεί να αποτελέσει πρόκληση. Πρώτον, επειδή τα μέσα κοινωνικής δικτύωσης δεν είναι τόσο εύκολο να παρακολουθούνται, αλλά και επειδή τα παραγωγικά μοντέλα τεχνητής νοημοσύνης μπορεί να είναι δαπανηρό να χρησιμοποιηθούν σε μεγάλους όγκους δεδομένων.

Εάν δεν θέλετε να δημιουργήσετε και να συντηρήσετε ένα τέτοιο σύστημα μόνοι σας, σας συνιστούμε να χρησιμοποιήσετε την πλατφόρμα KWatch.io, καθώς παρακολουθούμε αυτόματα τα μέσα κοινωνικής δικτύωσης και πραγματοποιούμε ανάλυση συναισθήματος στις αναρτήσεις και τα σχόλια που εντοπίζονται: εγγραφείτε στο KWatch.io εδώ.

Arthur
CTO στην KWatch.io