Η ανάλυση συναισθήματος στα μέσα κοινωνικής δικτύωσης μπορεί να είναι πολύ χρήσιμη για την παρακολούθηση της μάρκας σας, των ανταγωνιστών σας ή οποιουδήποτε άλλου θέματος ενδιαφέροντος. Σε αυτό το άρθρο θα σας δείξουμε πώς να δημιουργήσετε ένα σύστημα που ακούει τα μέσα κοινωνικής δικτύωσης, όπως το 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
Ορισμένες από τις κύριες προκλήσεις κατά την ακρόαση κοινωνικών μέσων είναι ο μεγάλος όγκος δεδομένων που πρέπει να διαχειριστείτε, το γεγονός ότι μπορεί να μπλοκαριστείτε από την πλατφόρμα κοινωνικών μέσων αν κάνετε πάρα πολλά αιτήματα και το γεγονός ότι πρέπει να είστε έξυπνοι όσον αφορά τον τρόπο με τον οποίο χειρίζεστε τα δεδομένα.
Στην επόμενη ενότητα, θα εξηγήσουμε πώς να ενσωματώσετε τα δεδομένα που συλλέξατε στο σύστημά σας.
Μόλις συλλέξετε τα δεδομένα από τις πλατφόρμες κοινωνικής δικτύωσης, πρέπει να τα αποθηκεύσετε σε μια βάση δεδομένων ή μια αποθήκη δεδομένων. Αυτό θα σας επιτρέψει να αναλύσετε τα δεδομένα, να εκτελέσετε ανάλυση συναισθήματος και να δημιουργήσετε ιδέες.
Υπάρχουν διάφοροι τρόποι για την αποθήκευση των δεδομένων των μέσων κοινωνικής δικτύωσης (τα οποία είναι βασικά δεδομένα καθαρού κειμένου), ανάλογα με τις απαιτήσεις σας και τον όγκο των δεδομένων που διαχειρίζεστε. Ορισμένες κοινές επιλογές περιλαμβάνουν:
Εάν έχετε εγγραφεί σε μια πλατφόρμα κοινωνικής παρακολούθησης, θα πρέπει να ελέγξετε εάν προσφέρει έναν τρόπο μεταφοράς των δεδομένων στο σύστημά σας.
Τα webhooks, που συχνά αναφέρονται ως "web callbacks" ή "HTTP push API", χρησιμεύουν ως μέσο για τις εφαρμογές να μοιράζονται δεδομένα σε πραγματικό χρόνο με άλλες εφαρμογές. Αυτό επιτυγχάνεται με τη δημιουργία αιτημάτων HTTP POST όταν λαμβάνουν χώρα συγκεκριμένα γεγονότα, παρέχοντας έτσι πληροφορίες σε άλλες εφαρμογές αμέσως.
Για παράδειγμα, στην πλατφόρμα μας, KWatch.io, θα πρέπει να μεταβείτε στην ενότητα "ειδοποιήσεις" και να ορίσετε μια διεύθυνση URL webhook που δείχνει στο σύστημά σας.
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, ChatDolphin κ.λπ. Αυτά τα LLM δεν είναι απαραίτητα γρήγορα και μπορεί να είναι δαπανηρά σε κλίμακα, αλλά εγγυώνται αποτελέσματα τελευταίας τεχνολογίας. Εάν πρέπει να αναλύσετε πολύ μεγάλο όγκο λέξεων-κλειδιών, ίσως θελήσετε να μειώσετε το κόστος χρησιμοποιώντας μικρότερα μοντέλα ή να τελειοποιήσετε το δικό σας μοντέλο.
Μπορείτε να αναπτύξετε το δικό σας μοντέλο AI ή να συνδεθείτε σε ένα API AI όπως το OpenAI ή το NLP Cloud. Σε αυτό το άρθρο θα συνδεθούμε με το NLP Cloud AI API.
Μπορείτε να εγγραφείτε στο NLP Cloud και να λάβετε το κλειδί API εδώ.Το αίτημά σας δεν χρειάζεται να είναι πολύ περίπλοκο. Για παράδειγμα, εδώ είναι ένα σχόλιο στο 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