I nutidens AI-drevne landskab transformerer maskinlæring, AI og chatbots industrier i et hidtil uset tempo.
Flere virksomheder søger at integrere kunstig intelligens i deres drift, men hvordan disse systemer er bygget bliver ofte overset. Hovedingrediensen? Data. En maskinlæringsmodel er kun så god som de data, den er trænet på. Men hvor kommer alle disse data fra?
En betydelig del af de data, vi stoler på, er offentligt tilgængelige, ofte fundet i opslag på sociale medier, brugeranmeldelser og andet onlineindhold. Til sentimentanalyse er en af de rigeste datakilder Twitter , som kontinuerligt streamer brugergenereret indhold i realtid. Udfordringen ligger imidlertid i, hvordan man indsamler disse data effektivt og rent.
Da jeg begyndte at arbejde på et sentimentanalyseprojekt ved hjælp af Twitter-data, overvejede jeg i første omgang at bruge Twitter API. Jeg stødte dog hurtigt på en betydelig begrænsning: Free-tier API'en giver kun adgang til tweets fra de foregående syv dage. Til omfattende sentimentanalyse, især for trendemner eller politiske begivenheder, der strækker sig over uger eller måneder, begrænser denne begrænsning i høj grad omfanget og kvaliteten af de tilgængelige data.
Selvom opgradering til et højere API-niveau var en mulighed, var omkostningerne uoverkommelige for et lille projekt som mit. Dette efterlod mig med to veje: forsøg på at indsamle data manuelt gennem traditionel skrabning (som kom med sit eget sæt af udfordringer som CAPTCHA'er, redundanser og ufuldstændige poster) eller find en alternativ løsning.
Det er her, Bright Data kommer i spil og løser disse problemer problemfrit ved at tilbyde rene, skalerbare og historiske Twitter-datasæt. I stedet for at være begrænset af API-begrænsninger kunne jeg få adgang til forskellige data af høj kvalitet til mit projekt uden de sædvanlige besvær.
I denne artikel vil jeg guide dig igennem, hvordan du kan udnytte Bright Datas markedsplads til at erhverve Twitter-data af høj kvalitet til sentimentanalyse og dele min erfaring.
Gå til Bright Data-webstedet og opret en gratis konto for at starte. Når du er logget ind, bliver du dirigeret til Data Marketplace, hvor der kan tilgås forskellige forudbyggede datasæt, inklusive dem, der er relateret til Twitter.
Når du har valgt dit datasæt, kan du downloade det direkte til din lokale maskine eller få adgang til det via API. Den hurtige proces giver dig mulighed for at begynde at arbejde med data af høj kvalitet næsten med det samme. Jeg brugte Twitter-posts datasættet
De rå Twitter-data indeholder typisk en masse metadata, som måske ikke er relevante for sentimentanalyse, såsom brugeroplysninger, billed-URL'er og andre ikke-tekstuelle data. Vi vil fokusere på teksten i tweets, da det er her, sentimentanalysen vil blive anvendt sammen med relevante engagementsmålinger som reposts og likes.
import pandas as pd df = pd.read_csv("path_to_your_dataset.csv") df.head()
Det næste trin er at rense dataene ved at håndtere manglende værdier og fjerne irrelevante kolonner.
df_clean = df[['user_posted', 'description', 'date_posted', 'reposts', 'likes']] df_clean = df_clean.dropna(subset=['description']) df_clean = df_clean.drop_duplicates(subset=['description']) df_clean.head()
Nu hvor vi har renset dataene og har den relevante tekst, er det tid til at dykke ned i sentimentanalysen . Følelsesanalyse betyder at bestemme den følelsesmæssige tone bag ord – om tweetet er positivt, negativt eller neutralt.
Jeg har brugt et populært bibliotek kaldet VADER (Valence Aware Dictionary and Sentiment Reasoner), specielt designet til tekst på sociale medier. Det er fantastisk til at håndtere uformelt sprog som slang og emojis.
Kodestykket nedenfor udfører sentimentanalyse ved hjælp af VADER
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer analyzer = SentimentIntensityAnalyzer() def get_sentiment(text): sentiment = analyzer.polarity_scores(text) return sentiment['compound'] df_clean['sentiment'] = df_clean['description'].apply(get_sentiment) df_clean.head()
Når sentiment-score er beregnet, kan vi analysere fordelingen for at se, hvor positive eller negative tweets i gennemsnit er. Dette kan give indsigt i den overordnede offentlige stemning omkring et bestemt emne eller begivenhed. Vi kan også visualisere følelsesfordelingen ved hjælp af et histogram eller wordcloud til at identificere centrale følelser.
Dette plot vil give dig en god fornemmelse af følelsesspredningen, uanset om den hælder mod positiv, negativ eller neutral. I dette tilfælde er der en høj frekvens af neutrale tweets.
Nu hvor vi har sentimentresultaterne for hvert tweet, er næste trin at undersøge, om der er nogen sammenhæng mellem sentiment og engagementsmålinger som likes og reposts. I analytics på sociale medier kan man forvente, at mere positiv stemning kan føre til højere engagement (flere likes, flere reposts). Men er det virkelig tilfældet?
For at finde ud af det, kan vi beregne sammenhængen mellem sentiment-score og engagement-metrics, resultaterne er:
Correlation between sentiment and likes: 0.022806738610786123
Correlation between sentiment and reposts: 0.008885789875330416
I betragtning af de svage korrelationsværdier fra min dataanalyse, ser vi, at der ikke er en stærk sammenhæng mellem sentiment og engagement. Korrelationen mellem sentiment og likes var 0,02, og for sentiment og reposts var den kun 0,008. Disse værdier tyder på, at engagementsmålinger som likes og reposts ikke er væsentligt påvirket af tweets følelser .
Den svage sammenhæng mellem sentiment og engagement viser, at der er andre faktorer i spil. Mens sentimentanalyse hjælper os med at forstå den offentlige mening, er engagement sandsynligvis drevet af yderligere faktorer, såsom:
Mens sentimentanalyse er et værdifuldt værktøj til at forstå, hvordan folk har det med et emne, er det ikke altid en pålidelig forudsigelse af engagement. For at få dybere indsigt i brugeradfærd er det vigtigt at overveje andre faktorer såsom indholdets timing, relevans og brugerens indflydelse.