Twitter Data Mining: Ein Leitfaden zur Big-Data-Analyse mit Python
Veröffentlicht: 2022-03-11Big Data ist überall. Zeitraum. Bei der Führung eines erfolgreichen Unternehmens in der heutigen Zeit werden Sie wahrscheinlich darauf stoßen, ob Sie es wollen oder nicht.
Egal, ob Sie ein Geschäftsmann sind, der versucht, mit der Zeit Schritt zu halten, oder ein Programmier-Wunderkind, das nach seinem nächsten Projekt sucht, dieses Tutorial gibt Ihnen einen kurzen Überblick darüber, was Big Data ist. Sie erfahren, wie es auf Sie anwendbar ist und wie Sie über die Twitter-API und Python schnell loslegen können.
Was ist Big Data?
Big Data ist genau das, wonach es sich anhört – viele Daten. Ein einzelner Datenpunkt allein kann Ihnen nicht viel Aufschluss geben. Aber Terabytes an Daten, kombiniert mit komplexen mathematischen Modellen und ungestümer Rechenleistung, können Erkenntnisse liefern, zu denen Menschen nicht in der Lage sind. Der Wert, den Big Data Analytics einem Unternehmen bietet, ist nicht greifbar und übertrifft täglich die menschlichen Fähigkeiten.
Der erste Schritt zur Big-Data-Analyse ist das Sammeln der Daten selbst. Dies wird als „Data-Mining“ bezeichnet. Daten können von überall her kommen. Die meisten Unternehmen verarbeiten Gigabyte an Benutzer-, Produkt- und Standortdaten. In diesem Tutorial untersuchen wir, wie wir Data-Mining-Techniken verwenden können, um Twitter-Daten zu sammeln, was nützlicher sein kann, als Sie vielleicht denken.
Angenommen, Sie betreiben Facebook und möchten Messenger-Daten verwenden, um Erkenntnisse darüber zu gewinnen, wie Sie Ihr Publikum besser ansprechen können. Messenger hat monatlich 1,2 Milliarden aktive Nutzer. In diesem Fall handelt es sich bei den Big Data um Gespräche zwischen Benutzern. Wenn Sie die Konversationen jedes Benutzers einzeln lesen würden, könnten Sie ein gutes Gefühl dafür bekommen, was ihnen gefällt, und ihnen entsprechende Produkte empfehlen. Mit einer maschinellen Lerntechnik, die als Natural Language Processing (NLP) bekannt ist, können Sie dies in großem Umfang tun, wobei der gesamte Prozess automatisiert und Maschinen überlassen wird.
Dies ist nur eines von unzähligen Beispielen, wie Machine Learning und Big Data Analytics Mehrwert für Ihr Unternehmen schaffen können.
Warum Twitter-Daten?
Twitter ist eine Goldgrube an Daten. Im Gegensatz zu anderen sozialen Plattformen sind die Tweets fast aller Benutzer vollständig öffentlich und abrufbar. Dies ist ein großes Plus, wenn Sie versuchen, eine große Datenmenge für die Durchführung von Analysen zu erhalten. Twitter-Daten sind auch ziemlich spezifisch. Mit der API von Twitter können Sie komplexe Abfragen durchführen, z. B. jeden Tweet zu einem bestimmten Thema innerhalb der letzten zwanzig Minuten abrufen oder die nicht retweeteten Tweets eines bestimmten Benutzers abrufen.
Eine einfache Anwendung könnte die Analyse sein, wie Ihr Unternehmen in der Öffentlichkeit ankommt. Sie könnten die letzten 2.000 Tweets sammeln, in denen Ihr Unternehmen (oder ein beliebiger Begriff) erwähnt wird, und einen Stimmungsanalysealgorithmus darüber ausführen.
Wir können auch gezielt Nutzer ansprechen, die an einem bestimmten Ort leben, was als räumliche Daten bezeichnet wird. Eine weitere Anwendung könnte darin bestehen, die Gebiete auf der Welt zu kartieren, in denen Ihr Unternehmen am häufigsten erwähnt wurde.
Wie Sie sehen können, können Twitter-Daten eine große Tür zu den Erkenntnissen der allgemeinen Öffentlichkeit und dazu sein, wie sie ein Thema aufnimmt. In Kombination mit der Offenheit und der großzügigen Ratenbegrenzung der API von Twitter kann dies zu starken Ergebnissen führen.
Werkzeugübersicht
Für diese Beispiele verwenden wir Python 2.7. Idealerweise sollten Sie eine IDE haben, in der Sie diesen Code schreiben können. Ich werde PyCharm - Community Edition verwenden.
Um eine Verbindung zur Twitter-API herzustellen, verwenden wir eine Python-Bibliothek namens Tweepy, die wir gleich installieren werden.
Einstieg
Twitter-Entwicklerkonto
Um die API von Twitter verwenden zu können, müssen wir ein Entwicklerkonto auf der Twitter-Apps-Site erstellen.
- Melden Sie sich an oder erstellen Sie ein Twitter-Konto unter https://apps.twitter.com/.
- Neue App erstellen (Schaltfläche oben rechts)
- Füllen Sie die Seite zur App-Erstellung mit einem eindeutigen Namen, einem Website-Namen (verwenden Sie eine Platzhalter-Website, wenn Sie keine haben) und einer Projektbeschreibung aus. Akzeptieren Sie die Allgemeinen Geschäftsbedingungen und fahren Sie mit der nächsten Seite fort.
- Nachdem Ihr Projekt erstellt wurde, klicken Sie auf die Registerkarte „Schlüssel und Zugriffstoken“. Sie sollten jetzt Ihr Verbrauchergeheimnis und Ihren Verbraucherschlüssel sehen können.
- Sie benötigen außerdem ein Paar Zugriffstoken. Scrollen Sie nach unten und fordern Sie diese Token an. Die Seite sollte aktualisiert werden, und Sie sollten jetzt über ein Zugriffstoken und ein Zugriffstokengeheimnis verfügen.
Wir werden diese alle später benötigen, also stellen Sie sicher, dass Sie diesen Tab geöffnet lassen.
Tweepy installieren
Tweepy ist ein hervorragend unterstütztes Tool für den Zugriff auf die Twitter-API. Es unterstützt Python 2.6, 2.7, 3.3, 3.4, 3.5 und 3.6. Es gibt verschiedene Möglichkeiten, Tweepy zu installieren. Der einfachste Weg ist die Verwendung von pip
.
Mit Pip
Geben Sie einfach pip install tweepy
in Ihr Terminal ein.
Verwenden von GitHub
Sie können den Anweisungen im GitHub-Repository von Tweepy folgen. Die grundlegenden Schritte sind wie folgt:
git clone https://github.com/tweepy/tweepy.git cd tweepy python setup.py install
Dort können Sie auch Installationsprobleme beheben.
Authentifizieren
Jetzt, da wir die notwendigen Werkzeuge bereit haben, können wir mit dem Programmieren beginnen! Die Basis jeder Anwendung, die wir heute erstellen werden, erfordert die Verwendung von Tweepy, um ein API-Objekt zu erstellen, mit dem wir Funktionen aufrufen können. Um das API-Objekt zu erstellen, müssen wir uns jedoch zunächst mit unseren Entwicklerinformationen authentifizieren.
Lassen Sie uns zunächst Tweepy importieren und unsere eigenen Authentifizierungsinformationen hinzufügen.
import tweepy consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1" consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh" access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi" access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"
Jetzt ist es an der Zeit, unser API-Objekt zu erstellen.
# 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)
Dies wird die Grundlage jeder von uns erstellten Anwendung sein, also stellen Sie sicher, dass Sie sie nicht löschen.
Beispiel 1: Ihre Zeitleiste
In diesem Beispiel ziehen wir die zehn neuesten Tweets aus Ihrem Twitter-Feed. Dazu verwenden wir die Funktion home_timeline()
des API-Objekts. Wir können das Ergebnis dann in einer Variablen speichern und es durchlaufen, um die Ergebnisse zu drucken.
# 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
Das Ergebnis sollte wie ein Haufen zufälliger Tweets aussehen, gefolgt von der URL zum Tweet selbst.

Wenn Sie dem Link zum Tweet folgen, gelangen Sie häufig zum Tweet selbst. Dem Link aus dem ersten Tweet zu folgen, würde uns das folgende Ergebnis liefern:
Beachten Sie, dass Sie, wenn Sie dies über ein Terminal und nicht über eine IDE wie PyCharm ausführen, möglicherweise einige Formatierungsprobleme haben, wenn Sie versuchen, den Text des Tweets zu drucken.
Das JSON hinter den Ergebnissen
Im obigen Beispiel haben wir den Text von jedem Tweet mit tweet.text
. Um auf bestimmte Attribute jedes Tweet-Objekts zu verweisen, müssen wir uns das von der Twitter-API zurückgegebene JSON ansehen.
Das Ergebnis, das Sie von der Twitter-API erhalten, liegt im JSON-Format vor und enthält eine ganze Menge an angehängten Informationen. Der Einfachheit halber konzentriert sich dieses Tutorial hauptsächlich auf das „Text“-Attribut jedes Tweets und Informationen über den Tweeter (den Benutzer, der den Tweet erstellt hat). Für das obige Beispiel können Sie hier das gesamte zurückgegebene JSON-Objekt sehen.
Hier ist ein kurzer Blick auf einige Attribute, die ein Tweet zu bieten hat.
Wenn Sie das Datum finden möchten, an dem der Tweet erstellt wurde, würden Sie es mit print tweet.created_at
.
Sie können auch sehen, dass jedes Tweet-Objekt Informationen über den Hochtöner enthält.
Um die Attribute „name“ und „location“ des Hochtöners zu erhalten, könnten Sie print tweet.user.screen_name
und print tweet.user.location
.
Beachten Sie, dass diese Attribute äußerst nützlich sein können, wenn Ihre Anwendung von räumlichen Daten abhängt.
Beispiel 2: Tweets von einem bestimmten Benutzer
In diesem Beispiel ziehen wir einfach die letzten zwanzig Tweets von einem Benutzer unserer Wahl.
Zuerst untersuchen wir die Tweepy-Dokumentation, um zu sehen, ob eine solche Funktion existiert. Mit ein wenig Recherche stellen wir fest, dass die Funktion user_timeline()
das ist, wonach wir suchen.
Wir können sehen, dass die Funktion user_timeline()
einige nützliche Parameter hat, die wir verwenden können, insbesondere id
(die ID des Benutzers) und count
(die Anzahl der Tweets, die wir abrufen möchten). Beachten Sie, dass wir aufgrund der Ratenbegrenzungen von Twitter nur eine begrenzte Anzahl von Tweets pro Abfrage abrufen können.
Lassen Sie uns versuchen, die letzten zwanzig Tweets vom Twitter-Konto @NyTimes abzurufen.
Wir können Variablen erstellen, um die Anzahl der Tweets zu speichern, die wir abrufen möchten (Anzahl), und den Benutzer, von dem wir sie abrufen möchten (Name). Wir können dann die Funktion user_timeline mit diesen beiden Parametern aufrufen. Unten ist der aktualisierte Code (beachten Sie, dass Sie die Authentifizierung und API-Objekterstellung am Anfang Ihres Codes behalten sollten).
# 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
Unsere Ergebnisse sollten in etwa so aussehen:
Beliebte Anwendungen dieser Art von Daten können sein:
- Ausführen von Analysen zu bestimmten Benutzern und wie sie mit der Welt interagieren
- Suche nach Twitter-Influencern und Analyse ihrer Follower-Trends und -Interaktionen
- Überwachung der Änderungen in den Followern eines Benutzers
Beispiel 3: Suchen von Tweets anhand eines Schlüsselworts
Lassen Sie uns ein letztes Beispiel machen: Abrufen der neuesten Tweets, die ein Schlüsselwort enthalten. Dies kann äußerst nützlich sein, wenn Sie speziell erwähnte Themen in der Twitter-Welt überwachen oder sogar sehen möchten, wie Ihr Unternehmen erwähnt wird. Nehmen wir an, wir wollen sehen, wie Twitter Toptal erwähnt hat.
Nach Durchsicht der Tweepy-Dokumentation scheint die search()
Funktion das beste Werkzeug zu sein, um unser Ziel zu erreichen.
Der wichtigste Parameter hier ist q
– der Abfrageparameter, das ist das Schlüsselwort, nach dem wir suchen.
Wir können auch den Sprachparameter so einstellen, dass wir keine Tweets aus einer unerwünschten Sprache erhalten. Lassen Sie uns nur englische („en“) Tweets zurückgeben.
Wir können jetzt unseren Code ändern, um die gewünschten Änderungen widerzuspiegeln. Wir erstellen zuerst Variablen zum Speichern unserer Parameter (Abfrage und Sprache) und rufen dann die Funktion über das API-Objekt auf. Lassen Sie uns auch den Bildschirmnamen des Benutzers, der den Tweet erstellt hat, in unserer Schleife ausgeben.
# 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
Unsere Ergebnisse sollten in etwa so aussehen:
Hier sind einige praktische Möglichkeiten, wie Sie diese Informationen verwenden können:
- Erstellen Sie ein räumliches Diagramm darüber, wo Ihr Unternehmen weltweit am häufigsten erwähnt wird
- Führen Sie Stimmungsanalysen zu Tweets durch, um zu sehen, ob die Gesamtmeinung Ihres Unternehmens positiv oder negativ ist
- Erstellen Sie Social Graphs der beliebtesten Benutzer, die über Ihr Unternehmen oder Produkt twittern
Wir können einige dieser Themen in zukünftigen Artikeln behandeln.
Fazit
Die API von Twitter ist in Data-Mining-Anwendungen äußerst nützlich und kann umfassende Einblicke in die öffentliche Meinung geben. Wenn Sie sich weiter für die Twitter-API und Big-Data-Analysen interessieren, empfehle ich Ihnen, mehr über die Twitter-API, Tweepy und die Ratenbegrenzungsrichtlinien von Twitter zu lesen.
Wir haben nur die Grundlagen des Zugreifens und Ziehens behandelt. Die API von Twitter kann bei sehr komplexen Big-Data-Problemen eingesetzt werden, an denen Menschen, Trends und soziale Diagramme beteiligt sind, die für den menschlichen Verstand zu kompliziert sind, um sie allein zu erfassen.