Twitter Data Mining: Przewodnik po analizie Big Data przy użyciu Pythona

Opublikowany: 2022-03-11

Big 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.

Python wąż czyta Twitter

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.

  1. Zaloguj się lub załóż konto na Twitterze pod adresem https://apps.twitter.com/.
  2. Utwórz nową aplikację (przycisk w prawym górnym rogu)
    Lokalizacja przycisku do tworzenia aplikacji
  3. 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.
    Formularz tworzenia aplikacji
  4. Po utworzeniu projektu kliknij zakładkę „Klucze i tokeny dostępu”. Powinieneś teraz widzieć swój tajny klucz klienta i klucz klienta.
    Lokalizacja klucza i sekretu API Twittera
  5. 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.
    Formularz pokazujący tokeny 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.

Tweetuj treści i linki na terminalu

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:

Tweetuj, do którego linkuje pierwszy link do poprzedniego zdjęcia

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.

Niektóre atrybuty zwracane przez Twitter API

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.

Atrybuty użytkownika zwracane przez Twitter API

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.

Dokumentacja polecenia użytkownika osi czasu

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.

Zawartość konta @NyTimes na Twitterze w momencie pisania

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:

Zawartość osi czasu użytkownika dla @NyTimes

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.

Dokumentacja polecenia wyszukiwania

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:

Wyniki wyszukiwania podczas zapytania o Toptal

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ę.

Powiązane: Analiza sieci społecznościowych w R i Gephi: kopanie na Twitterze