Miningul de date Twitter: un ghid pentru analiza datelor mari folosind Python

Publicat: 2022-03-11

Big Data este peste tot. Perioadă. În procesul de a conduce o afacere de succes în zilele noastre, probabil că veți întâlni ea indiferent dacă vă place sau nu.

Indiferent dacă sunteți un om de afaceri care încearcă să atingă vremurile sau un minune al codurilor care caută următorul proiect, acest tutorial vă va oferi o scurtă privire de ansamblu asupra a ceea ce este big data. Veți afla cum vi se aplică și cum puteți începe rapid prin API-ul Twitter și Python.

Șarpe piton citind Twitter

Ce este Big Data?

Big Data este exact ceea ce sună – o mulțime de date. Singur, un singur punct de date nu vă poate oferi prea multe informații. Dar terabyții de date, combinați cu modele matematice complexe și puterea de calcul zbuciumată, pot crea perspective pe care ființele umane nu sunt capabile să le producă. Valoarea pe care Big Data Analytics o oferă unei afaceri este intangibilă și depășește capacitățile umane în fiecare zi.

Primul pas către analiza big data este colectarea datelor în sine. Acest lucru este cunoscut sub numele de „exploatare de date”. Datele pot veni de oriunde. Majoritatea companiilor se ocupă de gigaocteți de date despre utilizatori, produse și locații. În acest tutorial, vom explora modul în care putem folosi tehnicile de extragere a datelor pentru a aduna date Twitter, care pot fi mai utile decât ați crede.

De exemplu, să presupunem că rulați Facebook și doriți să utilizați datele Messenger pentru a oferi informații despre cum puteți face publicitate mai bine publicului dvs. Messenger are 1,2 miliarde de utilizatori activi lunar. În acest caz, datele mari sunt conversații între utilizatori. Dacă ar fi să citiți individual conversațiile fiecărui utilizator, ați putea să vă faceți o idee bună despre ceea ce îi place și să le puteți recomanda produse în consecință. Folosind o tehnică de învățare automată cunoscută sub denumirea de Procesare a limbajului natural (NLP), puteți face acest lucru la scară largă, cu întregul proces automatizat și lăsat pe seama mașinilor.

Acesta este doar unul dintre nenumăratele exemple despre modul în care învățarea automată și analiza datelor mari pot adăuga valoare companiei dvs.

De ce date Twitter?

Twitter este o mină de aur de date. Spre deosebire de alte platforme sociale, tweet-urile aproape fiecărui utilizator sunt complet publice și pot fi extrase. Acesta este un avantaj enorm dacă încercați să obțineți o cantitate mare de date pe care să rulați analize. Datele Twitter sunt, de asemenea, destul de specifice. API-ul Twitter vă permite să faceți interogări complexe, cum ar fi extragerea fiecărui tweet despre un anumit subiect în ultimele douăzeci de minute sau extragerea tweet-urilor neretweetate ale unui anumit utilizator.

O simplă aplicare a acestui lucru ar putea fi analizarea modului în care compania dumneavoastră este primită de publicul larg. Puteți colecta ultimele 2.000 de tweet-uri care menționează compania dvs. (sau orice termen doriți) și să rulați un algoritm de analiză a sentimentelor asupra acesteia.

De asemenea, putem viza utilizatorii care locuiesc în mod specific într-o anumită locație, care este cunoscută sub numele de date spațiale. O altă aplicație a acestui lucru ar putea fi cartografierea zonelor de pe glob unde compania dvs. a fost menționată cel mai mult.

După cum puteți vedea, datele de pe Twitter pot fi o ușă mare către informațiile publicului larg și modul în care acesta primește un subiect. Acest lucru, combinat cu deschiderea și limitarea generoasă a ratei API-ului Twitter, poate produce rezultate puternice.

Prezentare generală a instrumentelor

Vom folosi Python 2.7 pentru aceste exemple. În mod ideal, ar trebui să aveți un IDE în care să scrieți acest cod. Voi folosi PyCharm - Community Edition.

Pentru a vă conecta la API-ul Twitter, vom folosi o bibliotecă Python numită Tweepy, pe care o vom instala în scurt timp.

Noțiuni de bază

Cont de dezvoltator Twitter

Pentru a utiliza API-ul Twitter, trebuie să creăm un cont de dezvoltator pe site-ul de aplicații Twitter.

  1. Conectați-vă sau creați un cont Twitter la https://apps.twitter.com/.
  2. Creați o nouă aplicație (buton din dreapta sus)
    Locația butonului pentru a crea o aplicație
  3. Completați pagina de creare a aplicației cu un nume unic , un nume de site (folosește un site de substituent dacă nu ai unul) și o descriere a proiectului. Acceptați termenii și condițiile și treceți la pagina următoare.
    Formular de creare a aplicației
  4. Odată ce proiectul dvs. a fost creat, faceți clic pe fila „Chei și jetoane de acces”. Acum ar trebui să puteți vedea secretul de consumator și cheia de consumator.
    Locația cheii și a secretului API Twitter
  5. Veți avea nevoie și de o pereche de jetoane de acces. Derulați în jos și solicitați acele jetoane. Pagina ar trebui să se reîmprospăteze, iar acum ar trebui să aveți un simbol de acces și un simbol de acces secret.
    Formular care arată jetoanele de acces

Vom avea nevoie de toate acestea mai târziu, așa că asigurați-vă că păstrați această filă deschisă.

Instalarea Tweepy

Tweepy este un instrument excelent acceptat pentru accesarea API-ului Twitter. Acceptă Python 2.6, 2.7, 3.3, 3.4, 3.5 și 3.6. Există câteva moduri diferite de a instala Tweepy. Cea mai ușoară cale este să folosești pip .

Folosind Pip

Pur și simplu tastați pip install tweepy în terminalul dvs.

Folosind GitHub

Puteți urma instrucțiunile din depozitul GitHub al lui Tweepy. Pașii de bază sunt următorii:

 git clone https://github.com/tweepy/tweepy.git cd tweepy python setup.py install

Puteți depana orice problemă de instalare și acolo.

Autentificare

Acum că avem instrumentele necesare pregătite, putem începe să codificăm! Linia de bază a fiecărei aplicații pe care o vom construi astăzi necesită utilizarea Tweepy pentru a crea un obiect API cu care putem apela funcții. Cu toate acestea, pentru a crea obiectul API, trebuie mai întâi să ne autentificăm cu informațiile despre dezvoltator.

Mai întâi, să importăm Tweepy și să adăugăm propriile noastre informații de autentificare.

 import tweepy consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1" consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh" access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi" access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"

Acum este timpul să ne creăm obiectul API.

 # Creating the authentication object auth = tweepy.OAuthHandler(consumer_key, consumer_secret) # Setting your access token and secret auth.set_access_token(access_token, access_token_secret) # Creating the API object while passing in auth information api = tweepy.API(auth)

Aceasta va fi baza fiecărei aplicații pe care le construim, așa că asigurați-vă că nu o ștergeți.

Exemplul 1: Cronologia dvs

În acest exemplu, vom extrage cele mai recente zece tweet-uri din feedul tău Twitter. Vom face acest lucru folosind funcția home_timeline() a obiectului API. Putem apoi stoca rezultatul într-o variabilă și o trecem în buclă pentru a imprima rezultatele.

 # Using the API object to get tweets from your timeline, and storing it in a variable called public_tweets public_tweets = api.home_timeline() # foreach through all tweets pulled for tweet in public_tweets: # printing the text stored inside the tweet object print tweet.text

Rezultatul ar trebui să arate ca o grămadă de tweet-uri aleatorii, urmate de adresa URL a tweet-ului în sine.

Tweet conținut și link-uri pe terminal

Urmărirea linkului către tweet vă va duce adesea la tweetul în sine. Urmărirea linkului de la primul tweet ne-ar da următorul rezultat:

Trimiteți pe Tweet la care era legat primul link al imaginii anterioare

Rețineți că, dacă rulați acest lucru prin terminal și nu printr-un IDE precum PyCharm, este posibil să aveți unele probleme de formatare când încercați să imprimați textul tweet-ului.

JSON din spatele rezultatelor

În exemplul de mai sus, am tipărit textul din fiecare tweet folosind tweet.text . Pentru a ne referi la atribute specifice ale fiecărui obiect tweet, trebuie să ne uităm la JSON returnat de API-ul Twitter.

Rezultatul pe care îl primiți de la API-ul Twitter este într-un format JSON și are atașat o cantitate destul de mare de informații. Pentru simplitate, acest tutorial se concentrează în principal pe atributul „text” al fiecărui tweet și informații despre tweeter (utilizatorul care a creat tweet-ul). Pentru eșantionul de mai sus, puteți vedea întregul obiect JSON returnat aici.

Iată o privire rapidă asupra unor atribute pe care le oferă un tweet.

Unele dintre atributele returnate de API-ul Twitter

Dacă doriți să găsiți data la care a fost creat tweet-ul, l-ați interoga cu print tweet.created_at .

De asemenea, puteți vedea că fiecare obiect tweet vine cu informații despre tweeter.

Atributele utilizatorului returnate de API-ul Twitter

Pentru a obține atributul „nume” și „locație” al tweeterului, puteți rula print tweet.user.screen_name și print tweet.user.location .

Rețineți că aceste atribute pot fi extrem de utile dacă aplicația dvs. depinde de date spațiale.

Exemplul 2: Tweets de la un anumit utilizator

În acest exemplu, pur și simplu vom extrage ultimele douăzeci de tweet-uri de la un utilizator ales de noi.

Mai întâi, vom examina documentația Tweepy pentru a vedea dacă există o astfel de funcție. Cu puțină cercetare, aflăm că funcția user_timeline() este ceea ce căutăm.

Documentația pentru comanda de cronologie a utilizatorului

Putem vedea că funcția user_timeline() are câțiva parametri utili pe care îi putem folosi, în special id (ID-ul utilizatorului) și count (cantitatea de tweet-uri pe care vrem să le extragem). Rețineți că putem extrage doar un număr limitat de tweet-uri per interogare din cauza limitelor ratei Twitter.

Să încercăm să extragem ultimele douăzeci de tweet-uri din contul de Twitter @NyTimes.

Conținutul contului de Twitter @NyTimes în momentul scrierii

Putem crea variabile pentru a stoca cantitatea de tweet-uri pe care dorim să le extragem (numără) și utilizatorul de la care vrem să le extragem (nume). Apoi putem apela funcția user_timeline cu acești doi parametri. Mai jos este codul actualizat (rețineți că ar fi trebuit să păstrați autentificarea și crearea obiectului API în partea de sus a codului).

 # Creating the API object while passing in auth information api = tweepy.API(auth) # The Twitter user who we want to get tweets from name = "nytimes" # Number of tweets to pull tweetCount = 20 # Calling the user_timeline function with our parameters results = api.user_timeline(id=name, count=tweetCount) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.text

Rezultatele noastre ar trebui să arate cam așa:

Conținutul cronologiei utilizatorului pentru @NyTimes

Aplicațiile populare ale acestui tip de date pot include:

  • Executarea analizei asupra anumitor utilizatori și modul în care aceștia interacționează cu lumea
  • Găsirea influențelor Twitter și analizarea tendințelor și a interacțiunilor acestora
  • Monitorizarea modificărilor în adepții unui utilizator

Exemplul 3: Găsirea de tweet-uri folosind un cuvânt cheie

Să facem un ultim exemplu: obținerea celor mai recente tweet-uri care conțin un cuvânt cheie. Acest lucru poate fi extrem de util dacă doriți să monitorizați subiectele menționate în mod special în lumea Twitter sau chiar să vedeți cum este menționată afacerea dvs. Să presupunem că vrem să vedem cum Twitter a menționat Toptal.

După ce ați căutat prin documentația Tweepy, funcția de search() pare să fie cel mai bun instrument pentru a ne îndeplini obiectivul.

Documentație pentru comanda de căutare

Cel mai important parametru aici este q — parametrul de interogare, care este cuvântul cheie pe care îl căutăm.

De asemenea, putem seta parametrul de limbă, astfel încât să nu primim niciun tweet dintr-o limbă nedorită. Să returnăm doar tweet-urile în limba engleză („en”).

Acum ne putem modifica codul pentru a reflecta modificările pe care vrem să le facem. Mai întâi creăm variabile pentru a stoca parametrii noștri (interogare și limba), apoi apelăm funcția prin obiectul API. Să tipărim și numele de ecran, al utilizatorului care a creat tweet-ul, în bucla noastră.

 # Creating the API object while passing in auth information api = tweepy.API(auth) # The search term you want to find query = "Toptal" # Language code (follows ISO 639-1 standards) language = "en" # Calling the user_timeline function with our parameters results = api.search(q=query, lang=language) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.user.screen_name,"Tweeted:",tweet.text

Rezultatele noastre ar trebui să arate cam așa:

Rezultatele căutării la căutarea Toptal

Iată câteva modalități practice în care puteți utiliza aceste informații:

  • Creați un grafic spațial despre locul unde compania dvs. este menționată cel mai mult în întreaga lume
  • Rulați o analiză de sentiment pe tweet-uri pentru a vedea dacă opinia generală a companiei dvs. este pozitivă sau negativă
  • Creați un grafic social al celor mai populari utilizatori care tweetează despre compania sau produsul dvs

Putem acoperi unele dintre aceste subiecte în articolele viitoare.

Concluzie

API-ul Twitter este extrem de util în aplicațiile de data mining și poate oferi informații vaste asupra opiniei publice. Dacă API-ul Twitter și analiza datelor mari este ceva care vă interesează în continuare, vă încurajez să citiți mai multe despre API-ul Twitter, Tweepy și regulile de limitare a ratei de la Twitter.

Am acoperit doar elementele de bază ale accesării și tragerii. API-ul Twitter poate fi folosit în problemele mari de date foarte complexe, implicând oameni, tendințe și grafice sociale prea complicate pentru ca mintea umană să le înțeleagă singură.

Înrudit : Analiza rețelelor sociale în R și Gephi: Săpătură în Twitter