Twitter Data Mining: Przewodnik po analizie Big Data przy użyciu Pythona
Opublikowany: 2022-03-11Big data jest wszędzie. Okres. W procesie prowadzenia odnoszącego sukcesy biznesu w dzisiejszych czasach, prawdopodobnie natkniesz się na to, czy ci się to podoba, czy nie.
Niezależnie od tego, czy jesteś biznesmenem, który próbuje nadrobić zaległości, czy geniuszem kodowania szukającym kolejnego projektu, ten samouczek zawiera krótki przegląd tego, czym jest big data. Dowiesz się, jakie to ma zastosowanie do Ciebie i jak możesz szybko zacząć korzystać z API Twittera i Pythona.
Co to są duże zbiory danych?
Big data to dokładnie to, na co wygląda — dużo danych. Sam pojedynczy punkt danych nie daje zbyt wiele informacji. Ale terabajty danych, w połączeniu ze złożonymi modelami matematycznymi i ogromną mocą obliczeniową, mogą stworzyć spostrzeżenia, których ludzie nie są w stanie uzyskać. Wartość, jaką Big Data zapewnia firmie, jest niematerialna i każdego dnia przekracza ludzkie możliwości.
Pierwszym krokiem do analizy big data jest samo zbieranie danych. Jest to znane jako „eksploracja danych”. Dane mogą pochodzić z dowolnego miejsca. Większość firm ma do czynienia z gigabajtami danych o użytkownikach, produktach i lokalizacji. W tym samouczku będziemy badać, w jaki sposób możemy wykorzystać techniki eksploracji danych do zbierania danych z Twittera, które mogą być bardziej przydatne, niż mogłoby się wydawać.
Załóżmy na przykład, że prowadzisz Facebooka i chcesz użyć danych z Messengera, aby zapewnić wgląd w to, jak możesz lepiej reklamować się swoim odbiorcom. Messenger ma 1,2 miliarda aktywnych użytkowników miesięcznie. W tym przypadku big data to rozmowy między użytkownikami. Gdybyś miał indywidualnie czytać rozmowy każdego użytkownika, byłbyś w stanie dobrze wyczuć, co lubi, i odpowiednio polecić mu produkty. Korzystając z techniki uczenia maszynowego znanej jako przetwarzanie języka naturalnego (NLP), możesz to zrobić na dużą skalę, a cały proces jest zautomatyzowany i pozostawiony maszynom.
To tylko jeden z niezliczonych przykładów tego, jak uczenie maszynowe i analityka big data mogą wnieść wartość do Twojej firmy.
Dlaczego dane z Twittera?
Twitter to kopalnia danych. W przeciwieństwie do innych platform społecznościowych, tweety prawie każdego użytkownika są całkowicie publiczne i można je ściągnąć. To ogromny plus, jeśli próbujesz uzyskać dużą ilość danych do przeprowadzenia analiz. Dane z Twittera są również dość specyficzne. Interfejs API Twittera umożliwia wykonywanie złożonych zapytań, takich jak pobieranie każdego tweeta na określony temat w ciągu ostatnich dwudziestu minut lub pobieranie nie retweetowanych tweetów określonego użytkownika.
Prostym zastosowaniem tego może być analiza tego, jak Twoja firma jest odbierana przez opinię publiczną. Możesz zebrać ostatnie 2000 tweetów, które wspominają o Twojej firmie (lub dowolnym terminie, który Ci się podoba) i uruchomić na nim algorytm analizy sentymentu.
Możemy również kierować reklamy do użytkowników, którzy mieszkają w określonej lokalizacji, która jest znana jako dane przestrzenne. Innym zastosowaniem tego może być mapowanie obszarów na świecie, w których Twoja firma była wymieniana najczęściej.
Jak widać, dane z Twittera mogą być dużymi drzwiami do spostrzeżeń opinii publicznej i sposobu, w jaki odbierają temat. To, w połączeniu z otwartością i hojnym ograniczaniem szybkości interfejsu API Twittera, może przynieść wspaniałe rezultaty.
Przegląd narzędzi
W tych przykładach użyjemy Pythona 2.7. W idealnym przypadku powinieneś mieć IDE do pisania tego kodu. Będę używał PyCharm - Community Edition.
Aby połączyć się z API Twittera, użyjemy biblioteki Pythona o nazwie Tweepy, którą za chwilę zainstalujemy.
Pierwsze kroki
Konto programisty na Twitterze
Aby korzystać z API Twittera, musimy utworzyć konto programisty w witrynie aplikacji Twittera.
- Zaloguj się lub załóż konto na Twitterze pod adresem https://apps.twitter.com/.
- Utwórz nową aplikację (przycisk w prawym górnym rogu)
- Wypełnij stronę tworzenia aplikacji unikalną nazwą, nazwą witryny (użyj witryny zastępczej, jeśli jej nie masz) oraz opisem projektu. Zaakceptuj regulamin i przejdź do następnej strony.
- Po utworzeniu projektu kliknij zakładkę „Klucze i tokeny dostępu”. Powinieneś teraz widzieć swój tajny klucz klienta i klucz klienta.
- Będziesz także potrzebować pary tokenów dostępu. Przewiń w dół i poproś o te tokeny. Strona powinna się odświeżyć i powinieneś mieć teraz token dostępu i klucz tajny tokena dostępu.
Wszystkie te informacje będą nam potrzebne później, więc pamiętaj o pozostawieniu tej karty otwartej.
Instalowanie tweepy
Tweepy to doskonale obsługiwane narzędzie umożliwiające dostęp do API Twittera. Obsługuje Python 2.6, 2.7, 3.3, 3.4, 3.5 i 3.6. Istnieje kilka różnych sposobów instalacji Tweepy. Najłatwiej jest użyć pip
.
Korzystanie z pip
Po prostu wpisz pip install tweepy
w swoim terminalu.
Korzystanie z GitHuba
Możesz postępować zgodnie z instrukcjami w repozytorium Tweepy na GitHub. Podstawowe kroki są następujące:
git clone https://github.com/tweepy/tweepy.git cd tweepy python setup.py install
Możesz tam również rozwiązać wszelkie problemy z instalacją.
Uwierzytelnianie
Teraz, gdy mamy gotowe niezbędne narzędzia, możemy zacząć kodować! Podstawa każdej aplikacji, którą dziś zbudujemy, wymaga użycia Tweepy do stworzenia obiektu API, za pomocą którego możemy wywoływać funkcje. Aby jednak utworzyć obiekt API, musimy najpierw uwierzytelnić się za pomocą naszych informacji programisty.
Najpierw zaimportujmy Tweepy i dodajmy własne informacje uwierzytelniające.
import tweepy consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1" consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh" access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi" access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"
Teraz czas na stworzenie naszego obiektu 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)
Będzie to podstawa każdej tworzonej przez nas aplikacji, więc upewnij się, że jej nie usuniesz.
Przykład 1: Twoja oś czasu
W tym przykładzie pobierzemy dziesięć najnowszych tweetów z Twojego kanału na Twitterze. Zrobimy to za pomocą funkcji home_timeline()
obiektu API. Następnie możemy zapisać wynik w zmiennej i przejść przez nią w pętli, aby wydrukować wyniki.
# 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
Wynik powinien wyglądać jak zbiór losowych tweetów, po których następuje adres URL do samego tweeta.

Kliknięcie linku do tweeta często prowadzi do samego tweeta. Podążanie za linkiem z pierwszego tweeta dałoby nam następujący wynik:
Pamiętaj, że jeśli używasz tego przez terminal, a nie przez IDE, takie jak PyCharm, możesz mieć pewne problemy z formatowaniem podczas próby wydrukowania tekstu tweeta.
JSON stojący za wynikami
W powyższym przykładzie wydrukowaliśmy tekst z każdego tweeta za pomocą tweet.text
. Aby odwołać się do konkretnych atrybutów każdego obiektu tweet, musimy spojrzeć na JSON zwrócony przez Twitter API.
Wynik otrzymany z Twitter API jest w formacie JSON i zawiera sporo informacji. Dla uproszczenia ten samouczek koncentruje się głównie na atrybucie „tekst” każdego tweeta oraz na informacjach o tweeterze (użytkowniku, który utworzył tweeta). W powyższym przykładzie możesz zobaczyć cały zwrócony obiekt JSON tutaj.
Oto krótkie spojrzenie na niektóre atrybuty, jakie ma do zaoferowania tweet.
Jeśli chcesz znaleźć datę utworzenia tweeta, możesz wysłać zapytanie za pomocą print tweet.created_at
.
Możesz również zobaczyć, że każdy tweet zawiera informacje o tweeterze.
Aby uzyskać atrybuty „nazwa” i „lokalizacja” tweetera, możesz uruchomić print tweet.user.screen_name
i print tweet.user.location
.
Pamiętaj, że te atrybuty mogą być niezwykle przydatne, jeśli Twoja aplikacja jest zależna od danych przestrzennych.
Przykład 2: Tweety od określonego użytkownika
W tym przykładzie po prostu pobierzemy dwadzieścia ostatnich tweetów od wybranego przez nas użytkownika.
Najpierw przyjrzymy się dokumentacji Tweepy, aby zobaczyć, czy istnieje taka funkcja. Po odrobinie badań stwierdziliśmy, że funkcja user_timeline()
jest tym, czego szukamy.
Widzimy, że funkcja user_timeline()
ma kilka przydatnych parametrów, których możemy użyć, w szczególności id
(identyfikator użytkownika) i count
(ilość tweetów, które chcemy wyciągnąć). Pamiętaj, że możemy pobrać tylko ograniczoną liczbę tweetów na zapytanie ze względu na ograniczenia szybkości Twittera.
Spróbujmy pobrać ostatnie dwadzieścia tweetów z konta Twitter @NyTimes.
Możemy tworzyć zmienne do przechowywania ilości tweetów, które chcemy pobrać (count), oraz użytkownika, od którego chcemy je pobrać (imię). Następnie możemy wywołać funkcję user_timeline z tymi dwoma parametrami. Poniżej znajduje się zaktualizowany kod (należy pamiętać, że uwierzytelnianie i tworzenie obiektów API należy zachować na początku kodu).
# 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
Nasze wyniki powinny wyglądać mniej więcej tak:
Popularne zastosowania tego typu danych mogą obejmować:
- Przeprowadzanie analizy konkretnych użytkowników i ich interakcji ze światem
- Znajdowanie influencerów na Twitterze i analizowanie trendów i interakcji z ich obserwującymi
- Monitorowanie zmian w obserwujących użytkownika
Przykład 3: Znajdowanie tweetów za pomocą słowa kluczowego
Zróbmy ostatni przykład: pobieranie najnowszych tweetów zawierających słowo kluczowe. Może to być niezwykle przydatne, jeśli chcesz monitorować konkretnie wspomniane tematy w świecie Twittera, a nawet zobaczyć, jak pojawia się Twoja firma. Powiedzmy, że chcemy zobaczyć, jak Twitter wspomina Toptal.
Po przejrzeniu dokumentacji Tweepy, funkcja search()
wydaje się być najlepszym narzędziem do osiągnięcia naszego celu.
Najważniejszym parametrem jest tutaj q
— parametr zapytania, czyli słowo kluczowe, którego szukamy.
Możemy również ustawić parametr języka, aby nie otrzymywać żadnych tweetów z niechcianego języka. Zwróćmy tylko angielskie („en”) tweety.
Możemy teraz zmodyfikować nasz kod, aby odzwierciedlić zmiany, które chcemy wprowadzić. Najpierw tworzymy zmienne do przechowywania naszych parametrów (zapytanie i język), a następnie wywołujemy funkcję za pośrednictwem obiektu API. Wydrukujmy również w naszej pętli nazwę użytkownika, który utworzył tweeta.
# 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
Nasze wyniki powinny wyglądać mniej więcej tak:
Oto kilka praktycznych sposobów wykorzystania tych informacji:
- Stwórz przestrzenny wykres pokazujący, gdzie Twoja firma jest najczęściej wymieniana na świecie
- Przeprowadź analizę sentymentu na tweetach, aby sprawdzić, czy ogólna opinia o Twojej firmie jest pozytywna czy negatywna
- Twórz wykresy społecznościowe najpopularniejszych użytkowników, którzy tweetują o Twojej firmie lub produkcie
Niektóre z tych tematów możemy omówić w przyszłych artykułach.
Wniosek
API Twittera jest niezwykle przydatne w aplikacjach do eksploracji danych i może zapewnić szeroki wgląd w opinię publiczną. Jeśli bardziej interesujesz się interfejsem Twitter API i analizą big data, zachęcam do przeczytania więcej o Twitter API, Tweepy i wytycznych Twittera dotyczących ograniczania szybkości.
Omówiliśmy tylko podstawy dostępu i ciągnięcia. Interfejs API Twittera może być wykorzystany w bardzo złożonych problemach dotyczących dużych zbiorów danych, obejmujących ludzi, trendy i wykresy społecznościowe, które są zbyt skomplikowane, by ludzki umysł mógł je pojąć w pojedynkę.